Ответ
QA (Quality Assurance, Обеспечение качества) и QC (Quality Control, Контроль качества) — это две взаимодополняющие дисциплины в жизненном цикле разработки ПО, направленные на достижение высокого качества продукта, но с разными фокусами и методами.
QA — это процессо-ориентированный, превентивный подход. Его цель — предотвратить дефекты путем улучшения и контроля процессов разработки.
- Что делает QA-инженер: Разрабатывает и внедряет процессы (например, стандарты кодирования, процедуры code review, стратегии тестирования, CI/CD-пайплайны).
- Пример из практики: Я внедрял практику проведения требований к тестированию (Test Basis Review) перед началом тест-дизайна, что позволило выявить и устранить двусмысленности в спецификациях на ранней стадии, сократив количество багов, связанных с неверной интерпретацией.
QC — это продукто-ориентированный, реактивный подход. Его цель — выявить дефекты в готовом артефакте (коде, сборке).
- Что делает QC-инженер (тестировщик): Непосредственно выполняет тестирование — пишет и запускает тест-кейсы, проводит ручные проверки, анализирует результаты, регистрирует баги.
- Пример из практики: На проекте мы использовали комбинацию ручного исследовательского тестирования новых функций и набора автоматизированных регрессионных тестов на Selenium для проверки критического пути основного сценария покупки. Это позволило быстро находить регрессии после каждого билда.
Итог: QA строит систему, которая минимизирует появление багов, а QC в рамках этой системы находит те баги, которые всё же просочились. Эффективная команда сочетает оба подхода.