Тестирование и отладка IППП

Тестирование - процесс многократного выполнения программы с целью выявления ошибок. Отладка – исправление ошибок, найденных с помощью тестирования. При тестировании должны использоваться следующие принципы:

1) необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;

2) следует по возможности избегать тестирования программы ее автором, т.к. кроме уже указанной объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречит человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);

3) по тем же соображениям организация – разработчик программного обеспечения не должна «единолично» его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

4) должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;

5) необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

6) при анализе результатов каждого теста необходимо проверить, не делает ли программа того, что она не должна делать;

7) следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

8) тестирование не должно планироваться исходя из предположения, что в программе не будутобнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы),

9) следует учитывать так называемый «принцип скопления ошибок»: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

10) следует всегда помнить, что тестирование – творческий процесс, а не относиться к нему как к рутинному занятию.

Тестирование данного ПИ производилось с помощью детерминированного метода тестирования. Этот метод включает в себя структурное тестирование (тестирование ПИ как «белого ящика», т.е. предполагает детальное изучение логики программы и подбор входных данных, которые обеспечат выполнение максимально возможного количества маршрутов, логических ветвлений, циклов), функциональное тестирование (тестирование ПИ как «черного ящика», т.е. тестирование по «входу – выходу»), не вникая в логику программы.

Но даже если предположить, что удалось достичь полного структурного –тестирования некоторой программы, в ней тем не менее могут содержаться ошибки, т.к.

1) программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;

2) не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других – с ошибкой).

Тестирование начинается с тестирования входных данных. Один из методов – анализ граничных значений (предполагает исследование ситуаций, возникающих на границах и вблизи границ эквивалентных разбиений), например при вводе разряда. При вводе разряда безработного больше, чем 18 выдается сообщение об ошибке, то же самое при вводе требуемого разряда для «Вакансий».

Тестирование ПИ как «белого ящика» осуществляется следующим образом: подбирается полный набор входных данных (правильных и неправильных), рассчитываются вручную выходные данные и они сравниваются с данными, полученными при расчете в ПИ. Данным методом были протестированы все имеющиеся расчеты ПИ.

Пример тестирования методом «белого ящика» расчета начисления пособия:

Входные данные:

Средняя заработная плата на предыдущем месте работы за 2 месяца – 180 руб.

Размер пособия:

Первые 3 месяца – 75% от з/п.

Следующие 4 месяца - 60% от з/п,

В дальнейшем – 45%от з/п, но во всех случаях не ниже минимальной заработной платы.

Расчет выходных данных вручную:

Первые З месяца – 135 руб.

Следующие 4 месяца – 96 руб.

В дальнейшем – 83 руб., т.к. 45% от з/п составили 72 руб., а это ниже минимальной заработной платы, поэтому безработному будет выплачиваться пособие в размере минимальной заработной платы (согласно закону).

Сравнение выходных данных, полученных при ручном расчете и данных, рассчитанных ПИ показало, что методика расчета верна.                                                    

Покрытие условий показано в таблице 7.

Таблица 7.

Путь Параметры Результат
abecin Ввод данных о безработном Данные занесены в таблицу
abcjn Ввод данных о вакансии Данные занесены в таблицу
abdot Вывод данных о безработном Вывод характеристик безработного
abdpt Вывод данных о вакансии Вывод характеристик вакансии
abehut Вызов справки о программе Вывод документа Word
abehvt Вызов помощи Вывод документа Word
abfwyt Вызов запроса на поиск кандидатуры Вывод диалогового окна, затем вывод данных о безработных
abfxzt Вызов запроса на поиск вакансии Вывод диалогового окна, затем вывод данных о вакансиях
abg Выход Выход из базы данных

 

При вводе неправильных входных данных система выдает сообщение об ошибке ввода. Блок-схема ППП представлена на рис. 3.


Вывод: тестирование показало, что все компоненты ППП работают нормально.

 


Метод эквивалентных разбиений показан на примере таблицы "Безработные":

Таблица 8.

Входное значение   Тип   Правильный класс эквивалентности   Неправильный класс эквивалентности  
Код безработного Счетчик   1) (0, ¥)   2) (-¥, 0]  
Фамилия   Текстовый   3) Текст без цифр   4) Любой другой текст, не должно быть пустым (Is Not Null)
Имя   Текстовый   5) Текст без цифр   6) Любой другой текст, не должно быть пустым (Is Not Null)
Отчество   Текстовый   7) Текст без цифр   8) Любой другой текст  
Пол Текстовый 9) Муж. или Жен. 10) Все остальные слова и выражения  
Серия паспорта Текстовый 11) Ввод по маске: __-__ № ________ 12) Ввод как-либо по-другому, не должно быть пустым (is Not Null)
Профессия   Текстовый   13) Текст без цифр   14) Любой другой текст  
Разряд   Числовой   15) [1,18]   16) (- ¥,1) È (18, ¥)  
Стаж   Числовой   17) [0,50]   18) (- ¥,0) È (50, ¥)  
Образование   Текстовый   19) Выражения: -среднее неполное -среднее полное -средне - специальное -средне - техническое -незаконченное высшее -высшее -аспирантура -без образования 20) Все остальные слова и выражения  
Последнее место работы   Текстовый   21) Текст (название предприятия)   22) Любой другой текст  
Город проживания Текстовый   23) Текст без цифр   24) Любой другой текст  
Адрес   Текстовый   25) Маска ввода: уп. _________ - д-кв. ______   2б) Ввод как либо по - другому
Возраст Числовой 27)[14,80] 28) (- ¥,14) È (80, ¥)
Семейное положение   Текстовый   29) Выражения: -холост (не замужем) -женат (замужем) -разведен (разведена)   30) Все остальные слова и выражения  
Направлен на:   Текстовый   31) Текст (название предприятия)   32) Любой другой текст  
Код курсов Числовой 33) (0, ¥) 34) (- ¥,0]
Код договора Числовой 35) (0, ¥) 34) (- ¥,0]  
Дата заключения договора Дата/время   37) Ввод по маске: ММ\ЧЧ\ГГ Вводится автоматически 38) Любые другие комбинации букв и цифр  

 

Тест показал, что при вводе правильного класса эквивалентности система продолжает работать (в данном случае ввод дальнейшей информации продолжается), а при вводе неправильного класса – вызывает сообщение об ошибке, т.е. система выдает ожидаемый результат.

Метод функциональных диаграмм представлен в таблице 9.

Таблица 9.

Выходные условия Правильный класс Неправильный класс
Код безработного 50 Данные занесены в таблицу 51 Вывод сообщения
Фамилия Данные занесены в таблицу Вывод сообщения
Имя Данные занесены в таблицу Вывод сообщения
Отчество Данные занесены в таблицу Вывод сообщения
Пол Данные занесены в таблицу Вывод сообщения
Серия паспорта Данные занесены в таблицу Вывод сообщения
Профессия Данные занесены в таблицу Вывод сообщения
Разряд Данные занесены в таблицу Вывод сообщения
Стаж Данные занесены в таблицу Вывод сообщения
Образование Данные занесены в таблицу Вывод сообщения
Последнее место работы Данные занесены в таблицу Вывод сообщения
Город проживания Данные занесены в таблицу Вывод сообщения
Адрес Данные занесены в таблицу Вывод сообщения
Возраст Данные занесены в таблицу Вывод сообщения
Семейное положение Данные занесены в таблицу Вывод сообщения
Направлен на: Данные занесены в таблицу Вывод сообщения
Код курсов Данные занесены в таблицу Вывод сообщения
Код договора Данные занесены в таблицу Вывод сообщения
Дата заключения договора Данные занесены в таблицу Вывод сообщения

 

Экранные формы выводимых сообщений при ошибке представлены в Приложении 6.

Таблица тестов:

Таблица 10.

Причина 1 1 - 19 1 -
  2 0 1 20 0 1
  3 1 - 21 1 -
  4 0 1 22 0 1
  5 1 - 23 1 -
  6 0 1 24 0 1
  7 1 - 25 1 -
  8 0 1 26 0 1
  9 1 - 27 I -
  10 0 1 28 0 1
  11 1 - 29 1 -
  12 0 1 30 0 1
  13 1 - 31 1 -
  14 0 1 32 0 1
  15 1 - 33 1 -
  16 0 1 34 0 1
  17 1 - 35 1 -
  18 0 1 36 0 1
Следствие 50 1 50 1
  51 1 51 1

 

 



III. Результаты.

 





Варианты расчетов с использованием ППП.

 

В данном ППП осуществляется расчет размера пособия в зависимости от размера заработной платы. Эта процедура реализована в таблице «Пособия».

Структура таблицы:

Таблица 11

Код пособия Счетчик Длинное целое. Последовательные значения Совпадения не допускаются
Код безработного Числовой Длинное целое (выбор из списка таблицы «Безработные)
Зарплата Числовой Длинное целое
Размер пособия Числовой Длинное целое
Начало выплаты Дата/время Краткий формат даты
Конец выплаты Дата/время Краткий формат даты

 

Если код безработного в данную таблицу занесен первый раз - пособие только начинает выплачиваться, то «Начало выплаты» пользователь устанавливает сам, а «Конец выплаты» устанавливается сроком через 3 месяца Размер пособия при этом высчитывается 75% от заработной платы. Дату «Конца выплаты» можно изменить, например при устройстве безработного на работу или других причинах. Далее происходит автоматический ввод информации в таблицу. Вторая запись будет такой - при вводе «Код безработного» (фиксируется, что ввод осуществляется второй раз ), «Размер пособия» - 60% от зарплаты, дата «Начало выплаты» - занесутся данные предыдущей записи поля «Конец выплаты» и плюс 1 день, дата «Конец выплаты» - занесутся данные, установленные сроком через 4 месяца от начала выплаты уже новой суммы. Третья запись – при вводе «Код безработного» (фиксируется, что ввод осуществляется третий раз), «Размер пособия» - 40% от заработной платы, если эта сумма меньше установленной законодательством минимальной заработной платы, то «Размер пособия» - будет установлен равный минимальной заработной плате. «Начало выплаты» - дата предыдущей записи поля «Конец выплаты» плюс 1 день, «Конец выплаты» вводится пользователем, т.к.выплата данного пособия не ограничена.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: