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

Ответ

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

Ответ 18+ 🔞

Давай разложим эту хуйню по полочкам, а то народ путается, как слепой кот в сортире. QA и QC — это как два брата-близнеца, но один думает, как не накосячить, а второй ищет, где уже накосячили.

Смотри, таблица, чтоб глаза не разбегались:

Штука Quality Assurance (QA) Quality Control (QC)
Куда смотрит На процессы. Чтоб всё текло, как по маслу, и баги даже не думали рождаться. На продукт. Берёт готовую фигню и выискивает в ней косяки.
Чего хочет Создать такой мир, где баги просто физически не могут появиться. Утопия, блядь. Найти и тыкнуть носом во все баги, которые уже успели вылезти.
Как работает Проактивно. Бегает впереди паровоза и стелет соломку. Реактивно. Приходит, когда уже всё готово, и начинает тыкать палкой.
Чем занимается Планирует, пишет стандарты, внедряет всякие Agile/DevOps, проводит аудиты — в общем, мозговой штурм. Тестирует вручную, пишет и гоняет автотесты, долбит нагрузкой, ревьюит код — работа ручками.
Когда орет На протяжении всего цикла разработки, от идеи до помойки. В основном на этапе тестирования, когда уже есть что ломать.

Примеры из жизни, чтоб вообще всё встало на свои места:

  • QA (Обеспечение качества, он же стратег):

    • Внедряет Code Review, чтоб код не выглядел как пёс лапой написал. Это ж профилактика, ёпта!
    • Настраивает CI/CD-пайплайн, который сам всё собирает и тесты гоняет. Чтоб не забыли, блядь.
    • Проводит ретроспективы, где все орут друг на друга, а в итоге процесс чуть-чуть улучшается.
    • Пишет чек-листы и стандарты, чтоб тестировщики не тестировали кто во что горазд.
  • QC (Контроль качества, он же сапёр):

    • Ручное тестирование новой фичи. Тыкает во все кнопки, включая те, в которые тыкать не надо.
    • Запускает регрессионные автотесты перед релизом. Автомат проверит, не развалили ли мы то, что работало вчера.
    • Сверяет вёрстку с макетом. "А почему тут отступ на два пикселя больше, а, дизайнер, сука?"
    • Гоняет нагрузку на JMeter, чтоб понять, выдержит ли сервак, когда на него набегут все пользователи разом.

Аналогия про пекарню, окончательно добивающая:

  • QA — это шеф-повар, который пишет рецепты, закупает качественную муку, следит, чтобы печи не дымили, а пекари мыли руки. Процессы, блядь.
  • QC — это контролёр, который хватает каждый испечённый каравай, стучит по нему, нюхает, отламывает кусок и смотрит, не гнилой ли он внутри. Продукт.

Короче, без QA будет бардак, в котором даже искать баги неудобно. А без QC можно наделать такого, что пользователи тебя самого в печь отправят. Работают в паре, как тапёр и пианист.