Лекции по информатике
1d622a11

Какими должны быть тестовые данные?


Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:

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

    Все коэффициенты равны нулю. x — любое число

    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, c = 0

    2

    1

    0

    x1 = 0,   x2 = -0.5



    Содержание раздела