Многие сталкивались на собеседованиях с задачей о треугольнике.
Необходимо написать набор тестов с конкретными наборами данных для тестирования относительно простой программы.
Вот описание программы:
Программа читает три целых значений из входного окна. Три значения представляют собой длины сторон треугольника. После ввода трех данных программа выводит сообщение о том, является ли треугольник разносторонним, равнобедренным или равносторонним.
Помните, что треугольник разносторонний это когда нет двух равных сторон, в то время как равнобедренный треугольник с двумя равными сторонами, а равносторонний треугольник имеет три стороны равной длины. Кроме того, углы противоположной стороны у равнобедренного треугольника также равны (также следует, что стороны против равных углов треугольника равны), и все углы равностороннего треугольника равны.
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. У вас есть как минимум три теста из категории 7 такие, что вы сделали все три перестановки, где длина одной стороны равна сумме длин двух других сторон (например, 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. У вас есть по крайней мере один тест указанием нецелых значений (например, 2.5, 3.5, 5.5)?
13. У вас есть по крайней мере один тест указав неверное число значений (например, два вместо трех целых чисел)?
14. Для каждого теста вы укажите ожидаемые результаты от программы в дополнение к входной ценностей?
из книги The Art of Software Testing.