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