Что такое фундаментальная теория тестирования?

«Что такое фундаментальная теория тестирования?» — вопрос из категории Основы тестирования, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Фундаментальная теория тестирования — это набор базовых принципов, которые лежат в основе процесса тестирования ПО. Она включает 7 ключевых аспектов:

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

Пример из практики: В одном из моих проектов мы обнаружили 8 критических дефектов в модуле импорта данных. Согласно принципу кластеризации, мы сфокусировали усилия на углубленном исследовательском тестировании этого модуля и нашли еще 15 проблем разной степени серьезности, в то время как другие, более стабильные модули, проверялись по регрессионному чек-листу.