|
Очень простую для тестирования задачу представляет проверка модуля, вычисляющего длину диагонали параллелепипеда, который показан на рис. 5.4. Длина диагонали в данном случае равна VV(А2+С2)2+В>.
Необходимо сформировать тестовые данные.для нормальных, экстремальных и исключительных условий. Соответствующий контрольный пример приведен ниже.
|
Номер теста
|
Стороны параллелепипеда
|
Примечания
|
|
1.
|
|
1 1
|
Хороший начальный тест
|
|
2.
|
|
2 3
|
Проверка в нормальных условиях
|
|
3.
|
|
0 0
|
Результат должен быть равен нулю
|
|
4.
|
|
1 2
|
Не параллелепипед. Что произойдет?
|
|
5.
|
|
0 3
|
Не параллелепипед. Что произойдет? -
|
|
6.
|
|
1 0
|
Не параллелепипед. Что произойдет?
|
|
7.
|
|
-6 3
|
Неверные данные
|
В двух первых случаях программа проверяется в нормальных условиях функционирования. Тесты 3-7 относятся к экстремальным и исключительным условиям. Если при прогонке всех семи тестов программа выдает правильные результаты, у нас есть все основания полагать, что модель работает верно. Можно было бы дополнительно проверить поведение программы при поступлении на вход больших и малых чисел. И хотя никогда нельзя со стопроцентной уверенностью гарантировать, что программа будет работать в любых ситуациях, в данном случае можно с высокой вероятностью считать, что это действительно будет так.
 Рис. 5.4.
В качестве второго примера тестирования рассмотрим задачу нахождения корней квадратного уравнения ах2+Ьх-\-с=0. Предназначенная для решения этого уравнения программа считывает коэффициенты а, Ъ и с и для вычисления двух корней использует формулу _
__— Ь ± Уь2 — 4ас х~ 25
В этом примере мы имеем немного больше проверок, чем в первом. Если при проверке всех девяти условий программа выдает
|
Номер теста
|
Коэффициенты
|
Примечания
|
|
1.
|
|
|
—2
|
Хороший начальный тест
|
|
2.
|
|
|
0,25
|
Проверка в нормальных условиях
|
|
3.
|
|
|
|
Что произойдет здесь?
|
|
4.
|
|
|
|
Должен получиться только один корень
|
|
5.
|
|
|
|
Все должно быть в порядке
|
|
6.
|
|
|
|
Комплексные корни
|
|
7.
|
|
|
|
Неправильное уравнение
|
|
8.
|
|
|
|
Должен быть один корень
|
|
9.
|
|
|
|
Должно быть два корня
|
правильные результаты, мы имеем все основания надеяться, что она будет работать правильно и в других ситуациях.
Здесь уместно сделать два замечания. Во-первых, мы рассмотрели подпрограммы, тестирование которых не вызывает никаких трудностей. Если вы будете применять модульное программирование, ваши программы тоже можно будет делать простыми. Во-вторых, проведенное нами тестирование было целенаправленным и систематизированным, так как случайный выбор чисел привел бы к большим трудностям в определении ручным способом результатов, которых следует ожидать при прогоне тестов. Кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации. Лучше всего преднамеренно подбирать такие данные, которые позволили бы проверить все возможные при функционировании программы ситуации. Только доскональная проверка программы может считаться хорошим тестированием.
⇐5.10. Тестовые данные || Оглавление || 5.12. Тестирование программ математических вычислений⇒
цены на запчасти шевроле лачетти упали на половину |