Ответ
QA (Quality Assurance, Обеспечение качества) и QC (Quality Control, Контроль качества) — это взаимодополняющие, но разные подходы к качеству в разработке ПО.
| Аспект | Quality Assurance (QA) | Quality Control (QC) |
|---|---|---|
| Фокус | Процесс. Предотвращение дефектов через улучшение процессов разработки и тестирования. | Продукт. Выявление дефектов в готовом артефакте (коде, сборке). |
| Цель | Создать условия, при которых баги не возникают. | Найти баги, которые уже есть в продукте. |
| Подход | Проактивный (упреждающий). | Реактивный (исправляющий). |
| Деятельность | Планирование, создание стандартов, внедрение методологий (Agile, DevOps), аудит процессов, выбор инструментов. | Непосредственное тестирование: ручное, автоматизированное, нагрузочное; ревью кода; инспекции. |
| Временные рамки | На протяжении всего жизненного цикла разработки (SDLC). | Преимущественно на этапе тестирования готового функционала. |
Практические примеры:
-
QA (обеспечение качества):
- Внедрение практики Code Review для повышения качества кода.
- Настройка CI/CD-пайплайна с автоматическим запуском тестов.
- Проведение ретроспектив для анализа и улучшения рабочих процессов.
- Создание чек-листов и стандартов для тестирования.
-
QC (контроль качества):
- Ручное тестирование новой функциональности по тест-кейсам.
- Запуск набора регрессионных автотестов перед релизом.
- Проверка вёрстки на соответствие макетам.
- Нагрузочное тестирование API с помощью JMeter.
Простая аналогия: Пекарня.
- QA — это рецепты, обучение пекарей, контроль закупки ингредиентов, чистотой цеха (процессы).
- QC — это проверка каждого испеченного пирога на вес, вкус и внешний вид (продукт).