7 принципов тестирования программного обеспечения: основы QA
Принципы тестирования программного обеспечения — это семь фундаментальных правил, сформулированных ISTQB. Они служат базой для выстраивания зрелого процесса обеспечения качества (QA) и помогают избежать типичных ошибок.
Оглавление
7 принципов тестирования
Основы тестирования опираются на семь ключевых утверждений, которые помогают правильно организовать процесс проверки:
- Тестирование демонстрирует наличие дефектов. Оно может показать, что в программе есть ошибки, но не способно доказать их полное отсутствие. Тестирование лишь снижает вероятность наличия скрытых дефектов.
- Исчерпывающее тестирование невозможно. Протестировать все возможные комбинации входных данных и путей выполнения технически нереализуемо. Для выбора наиболее важных проверок необходимо использовать анализ рисков и приоритизацию.
- Раннее тестирование экономит время и деньги. Дефекты, найденные на ранних этапах жизненного цикла разработки (например, при анализе требований), исправляются значительно дешевле и быстрее, чем на поздних стадиях.
- Скопление дефектов. Ошибки в программном обеспечении обычно распределяются неравномерно и имеют тенденцию концентрироваться в определенных модулях или функциональных областях (принцип Парето).
- Парадокс пестицида. Если одни и те же тесты выполнять многократно, они перестают находить новые баги. Тестовые сценарии необходимо регулярно пересматривать и обновлять.
- Тестирование зависит от контекста. Подход к тестированию определяется спецификой продукта: банковское ПО тестируется иначе, чем мобильная игра или веб-сайт.
- Заблуждение об отсутствии ошибок. Даже если система не содержит багов, это не гарантирует ее успеха. Продукт может быть технически идеальным, но не соответствовать потребностям пользователей или бизнес-целям.
Отличие QA от QC и тестирования
Важно различать понятия QA (Quality Assurance) и QC (Quality Control).
- QA отвечает за качество всего процесса разработки и предотвращение дефектов.
- QC фокусируется на контроле качества итогового продукта через поиск ошибок.
Тестирование является частью QC и представляет собой процесс исследования приложения с целью обнаружения ошибок и оценки его соответствия требованиям.
Значение теории в работе QA-инженера
Для эффективной работы QA-инженер должен не только знать виды тестов (функциональные, нефункциональные, регрессионные), но и понимать фундаментальную теорию. Это позволяет выстраивать стратегию проверок осознанно, а не хаотично.
FAQ
Может ли тестирование доказать полное отсутствие ошибок?
Нет. Согласно первому принципу тестирования, проверки могут продемонстрировать наличие дефектов, но не способны доказать их полное отсутствие. Тестирование лишь снижает вероятность того, что в ПО остались скрытые ошибки.
Что такое парадокс пестицида?
Это явление, при котором многократное выполнение одних и тех же тестов перестает находить новые баги. Чтобы поддерживать эффективность проверок, тестовые сценарии необходимо регулярно пересматривать и обновлять.