В чем разница между Quality Assurance (QA) и Quality Control (QC)?

«В чем разница между Quality Assurance (QA) и Quality Control (QC)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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 — это проверка каждого испеченного пирога на вес, вкус и внешний вид (продукт).