Следующий шаг состоит в оценке эффективности Вашей проверки. Оказывается, что программу труднее написать, чем это могло показаться вначале. Были изучены различные версии данной программы, и составлен список общих ошибок. Оцените Ваш набор тестов, попытавшись с его помощью ответить на приведенные ниже вопросы. За каждый ответ "да" присуждается одно очко.

  1. Составили ли Вы тест, который представляет правильный неравносторонний треугольник? (Заметим, что ответ "да" на тесты со значениями 1,2,3, и 2,5,10 не обоснован, так как не существует треугольников, имеющих такие стороны.)
  2. Составили ли Вы тест, который представляет правильный равносторонний треугольник?
  3. Составили ли Вы тест, который представляет правильный равнобедренный треугольник? (Тесты со значениями 2,2,4 принимать в расчет не следует.)
  4. Составили ли Вы, по крайней мере, три теста, которые представляют правильные равнобедренные треугольники, полученные как перестановки двух равных сторон треугольника (например, 3,3,4; 3,4,3, и 4,3,3)?
  5. Составили ли Вы тест, в котором длина одной из сторон треугольника принимает нулевое значение?
  6. Составили ли Вы тест, в котором длина одной из сторон треугольника принимает отрицательное значение?
  7. Составили ли Вы тест, включающий три положительных целых числа, сумма двух из которых равна третьему? (Другими словами, если программа выдала сообщение о том, что числа 1,2,3 представляют собой стороны неравностороннего треугольника, то такая программа содержит ошибку.)
  8. Составили ли Вы, по крайней мере, три теста с заданными значениями всех трех перестановок, в которых длина одной стороны равна сумме длин двух других сторон (например, 1,2,3; 1,3,2 и 3,1,2)?
  9. Составили ли Вы тест из трех целых положительных чисел, таких, что сумма двух из них меньше третьего числа (то есть 1,2,4 или 12,15,30)?
  10. Составили ли Вы, по крайней мере, три теста из категории 9, в которых Вами испытаны все три перестановки (например: 1,2,4; 1,4,2 и 4,1,2)?
  11. Составили ли Вы тест, в котором все стороны треугольника имеют длину, равную нулю (то есть 0,0,0)?
  12. Составили ли Вы, по крайней мере, один тест, содержащий нецелые значения?
  13. Составили ли Вы хотя бы один тест, содержащий неправильное число значений (например, два, а не три целых числа)?

    Конечно, нет гарантий, что с помощью набора тестов, который удовлетворяет вышеперечисленным условиям, будут найдены все возможные ошибки. Но поскольку вопросы 1-13 представляют ошибки, имевшие место в различных версиях данной программы, адекватный тест для нее должен их обнаруживать.

    Отметим, что опытные профессиональные программисты набирают в среднем только 7-8 очков из 14 возможных.

    Выполненное упражнение показывает, что тестирование даже тривиальных программ, подобных приведенной, - не простая задача.