Стр: 29/301
2.1.3.
Основные принципы тестирования
Представленные в данной главе принципы тем или иным образом отражены
во всём остальном материале книги, но поскольку нередко на собеседованиях от
начинающих тестировщиков требуют именно «перечислить и объяснить принципы
тестирования
49
», здесь мы кратко рассмотрим их все вместе.
Тестирование показывает наличие дефектов, а не их отсутствие
Очень сложно обнаружить нечто, относительно чего мы не знаем — ни «где
оно», ни «как оно выглядит», ни даже «существует ли оно вообще». Это отчасти
напоминает попытки «вспомнить, не забыл ли я что-то».
В силу того факта, что не существует физической возможности проверить
поведение сложного программного продукта во всех возможных ситуациях и усло-
виях, тестирование не может гарантировать, что в той или иной ситуации, при сте-
чении тех или иных обстоятельств дефект не возникнет.
Что тестирование может — так это использовать колоссальный набор техник,
подходов, инструментов и решений для того, чтобы проверить наиболее вероят-
ные, востребованные ситуации и обнаружить дефекты при их возникновении.
Такие дефекты будут устранены, что ощутимо повысит качество продукта, но
по-прежнему не гарантирует от возникновения проблем в оставшихся, не проверен-
ных ситуациях и условиях.
Исчерпывающее тестирование невозможно
Исчерпывающее тестирование
{91}
в теории призвано проверить приложение
«со всеми возможными комбинациями всех возможных входных данных во всех
возможных условиях выполнения». Но как только что было подчёркнуто в предыду-
щем принципе — это невозможно физически.
Как будет показано в главе 2.7.2
{237}
(«Классы эквивалентности и граничные
условия») даже для одного простого поля для ввода имени пользователя может
существовать порядка 2.4
32
позитивных проверок и бесконечное количество нега-
тивных проверок.
Потому в силу законов физики нет ни малейшего шанса протестировать про-
граммный продукт полностью, «исчерпывающе».
Однако, из этого не следует, что тестирование как таковое не является эф-
фективным. Вдумчивый анализ требований, учёт рисков, расстановка приоритетов,
анализ предметной области, моделирование, работа с конечными пользователями,
применение специальных техник тестирования — эти и многие другие подходы поз-
воляют выявить те области или условия эксплуатации продукта, которые требуют
особенно тщательной проверки.
И поскольку здесь объём работы несоизмеримо меньше — такое тестирова-
ние уже не просто возможно, но и выполняется на каждодневной основе.
Достарыңызбен бөлісу: |