Тестирование не может полностью доказать правильность программы по нескольким причинам:
- Исчерпывающее тестирование недостижимо. 23 Невозможно учесть все возможные сценарии и предвидеть все возможные ошибки. 2
- Количество всех возможных комбинаций входных данных слишком велико. 1 Его нельзя проверить полностью. 1
- Пользовательский интерфейс программы обычно слишком сложен для полного тестирования, так как включает все возможные комбинации действий пользователя и его перемещений по программе. 1
- Невозможно выявить все ошибки проектирования. 1 Например, если программа разработана по неверной спецификации. 1
Тестирование может выявить присутствие ошибок, но не может доказать в полной мере, что дефектов нет. 2 Сколько бы успешных тестов ни провели, нельзя утверждать, что нет таких тестов, которые бы не нашли ошибку. 2