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