Какими должны быть тестовые данные?
Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:
должна быть испытана каждая ветвь алгоритма;
очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах;
первый тест должен быть максимально прост, чтобы проверить, работает ли программа вообще;
арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;
количества элементов последовательностей, точность для итерационных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений;
минимизация вычислений не должна снижать надежности контроля;
тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации;
усложнение тестовых данных должно происходить постепенно.
Пример. Система тестов для задачи нахождения корней квадратного уравнения ax2 + bx + c = 0 :
Номер теста
|
| Проверяемый случай
|
| Коэффициенты
|
| Результаты
|
|
a
|
| b
|
| c
|
|
1
|
| d >0
|
| 1
|
| 1
|
| -2
|
| x1 = 1, x2 = - 2
|
|
2
|
| d=0
|
| 1
|
| 2
|
| 1
|
| Корни равны: x1 = - 1, x2 = - 1
|
|
3
|
| d < 0
|
| 2
|
| 1
|
| 2
|
| Действительных корней нет
|
|
4
|
| a=0, b=0, c=0
|
| 0
|
| 0
|
| 0
|
| Все коэффициенты равны нулю. х — любое число.
|
|
5
|
| a=0, b=0, c<>0
|
| 0
|
| 0
|
| 2
|
| Неправильное уравнение
|
|
6
|
| a=0, b<>0
|
| 0
|
| 2
|
| 1
|
| Линейное уравнение. Один корень: x = - 0,5
|
|
7
|
| a <> 0, b <> 0, с = 0
|
| 2
|
| 1
|
| 0
|
| x1 = 0, x2 = - 0,5
|
|
Содержание раздела