Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:
· должна быть испытана каждая ветвь алгоритма;
· очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах;
· первый тест должен быть максимально прост, чтобы проверить, работает ли программа вообще;
· арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;
· количества элементов последовательностей, точность для итерационных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений;
· минимизация вычислений не должна снижать надежности контроля;
· тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации;
Усложнение тестовых данных должно происходить постепенно