Какими должны быть тестовые данные?
Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:
- должна быть испытана каждая ветвь алгоритма;
- очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах;
- первый тест должен быть максимально прост, чтобы проверить, работает ли программа вообще;
- арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;
- количества элементов последовательностей, точность для итерационных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений;
- минимизация вычислений не должна снижать надежности контроля;
- тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации;
- усложнение тестовых данных должно происходить постепенно.
Пример. Система тестов для задачи нахождения корней квадратного уравнения 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
|