Ответ
Фундаментальная теория тестирования — это набор базовых принципов, которые лежат в основе процесса тестирования ПО. Она включает 7 ключевых аспектов:
- Тестирование показывает наличие дефектов, но не их отсутствие. Мы можем доказать, что баги есть, но не можем гарантировать их полное отсутствие.
- Исчерпывающее тестирование невозможно. Из-за ограничений по времени, бюджету и бесконечного числа комбинаций входных данных мы всегда тестируем выборочно.
- Раннее тестирование. Вовлечение QA-инженеров на этапах анализа требований и дизайна позволяет выявлять дефекты дешевле и быстрее.
- Кластеризация дефектов. Опыт показывает, что большинство багов сосредоточено в небольшом количестве модулей (например, в модуле оплаты или интеграции со сторонним API).
- Парадокс пестицида. Если повторять одни и те же тест-кейсы, они со временем перестают находить новые дефекты. Необходимо регулярно ревьюить и обновлять тестовое покрытие.
- Тестирование зависит от контекста. Подходы к тестированию банковского приложения, мобильной игры или медицинского устройства будут кардинально различаться.
- Заблуждение об отсутствии ошибок. Продукт может не иметь критических багов, но при этом не соответствовать ожиданиям пользователей или бизнес-требованиям.
Пример из практики: В одном из моих проектов мы обнаружили 8 критических дефектов в модуле импорта данных. Согласно принципу кластеризации, мы сфокусировали усилия на углубленном исследовательском тестировании этого модуля и нашли еще 15 проблем разной степени серьезности, в то время как другие, более стабильные модули, проверялись по регрессионному чек-листу.