Тестовые данные должны обеспечить
проверку всех возможных условий
возникновения ошибок:
должна быть испытана каждая ветвь
алгоритма;
очередной тестовый прогон должен
контролировать нечто такое, что еще не
было проверено на предыдущих прогонах;
первый тест должен быть максимально
прост, чтобы проверить, работает ли
программа вообще;
арифметические операции в тестах должны
предельно упрощаться для уменьшения
объема вычислений;
количества элементов
последовательностей, точность для
итерационных вычислений, количество
проходов цикла в тестовых примерах
должны задаваться из соображений сокращения
объема вычислений;
минимизация вычислений не должна
снижать надежности контроля;
тестирование должно быть целенаправленным
и систематизированным, так как
случайный выбор исходных данных привел
бы к трудностям в определении ручным
способом ожидаемых результатов; кроме
того, при случайном выборе тестовых
данных могут оказаться непроверенными
многие ситуации;
усложнение тестовых данных должно
происходить постепенно.
Пример. Система тестов для задачи
нахождения корней квадратного уравнения ax2
+ bx + c = 0 :