QA, QC, Testing, Verification, Validation: в чем разница

Разбираем базовые термины QA без путаницы: чем отличается QA от QC, что такое testing, verification и validation, и как объяснять это на собеседовании и в реальной работе.

Обновлено:

Содержание

QA, QC, Testing, Verification, Validation: в чем разница

Одна из самых частых проблем у начинающих QA-инженеров — путаница в базовых терминах. На собеседованиях, в курсах и в командах слова QA, QC, testing, verification и validation часто используют вперемешку. Из-за этого кажется, что все они означают одно и то же. На самом деле это не так.

В этой статье разберем разницу простым языком и на практических примерах.

Почему эти термины часто путают

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

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

В-третьих, многие начинают знакомство с профессией именно через тестирование, поэтому автоматически считают, что QA = testing. Это удобное упрощение, но не совсем точное.

Что такое Testing

Testing — это непосредственно процесс проверки продукта с целью найти дефекты и убедиться, что система работает так, как ожидается.

Проще говоря, testing — это практическая деятельность: открыть форму, отправить запрос, проверить ответ, сравнить expected и actual result, найти ошибку, оформить баг.

Если говорить совсем кратко, testing отвечает на вопрос: Работает ли продукт так, как должен?

Пример: у тебя есть форма логина. Ты вводишь корректный логин и пароль, нажимаешь кнопку входа и проверяешь, вошел ли пользователь в систему. Это testing.

Что такое QC

QC — это Quality Control, то есть контроль качества. QC шире, чем просто ручное выполнение тестов, но все еще в основном сфокусирован на самом продукте и на поиске проблем в нем.

QC может включать тестирование, проверку требований, ревью тестовой документации, анализ дефектов и контроль качества перед релизом.

Если testing — это конкретная активность, то QC — это более широкий набор действий, направленных на контроль качества результата.

  • →Testing — это часть QC.
  • →QC — это контроль качества продукта.

Что такое QA

QA — это Quality Assurance, то есть обеспечение качества. QA смотрит не только на продукт, но и на процесс, который приводит к качеству.

QA отвечает на вопрос: Как выстроить процесс так, чтобы ошибок было меньше?

Это уже не только про поиск дефектов после разработки, но и про предотвращение проблем заранее.

QA может включать участие в уточнении требований, улучшение процессов разработки и тестирования, определение quality gates, внедрение checklist и standards, анализ причин дефектов, улучшение коммуникации между analyst, dev и QA, работу с метриками качества.

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

Что такое Verification

Verification — это проверка того, что продукт создается правильно по заданным требованиям и спецификациям.

Ключевой вопрос verification: Правильно ли мы строим продукт?

Обычно verification связано с анализом артефактов до выполнения системы: требований, дизайна, схем, документации, тест-кейсов, кода через review.

  • →проверка, что требование непротиворечивое
  • →review спецификации API
  • →проверка, что тест-кейсы покрывают acceptance criteria
  • →code review

Verification часто не требует запуска приложения.

Что такое Validation

Validation — это проверка того, что мы создали именно тот продукт, который нужен пользователю и бизнесу.

Ключевой вопрос validation: Правильный ли продукт мы вообще строим?

Validation чаще связано с реальным поведением системы: тестированием готового функционала, UAT, проверкой сценариев пользователя, сравнением с бизнес-ожиданиями.

Пример: по требованиям все сделано корректно, но пользователю неудобно использовать сценарий оплаты. Значит, с точки зрения validation продукт может не решать задачу бизнеса так, как нужно.

Простая формула, которую удобно запомнить

  • →Testing — проверяем продукт.
  • →QC — контролируем качество продукта.
  • →QA — обеспечиваем качество через процессы.
  • →Verification — правильно ли строим продукт.
  • →Validation — тот ли продукт строим.

Еще одна популярная формулировка: Verification — Are we building the product right? Validation — Are we building the right product?

Пример на одном кейсе

Представим, что команда делает регистрацию пользователя.

  • →Verification: проверили требования к регистрации и сделали review тест-кейсов.
  • →Testing: ввели валидные и невалидные данные, проверили ошибки валидации и отправку формы.
  • →QC: организовали проверку качества всей фичи перед релизом и убедились, что критичных дефектов нет.
  • →Validation: посмотрели, действительно ли регистрация удобна и решает задачу пользователя.
  • →QA: проанализировали, почему в регистрации регулярно всплывают дефекты, и улучшили процесс работы с требованиями.

Частые ошибки новичков

Первая ошибка: считать, что QA и testing — это одно и то же. На практике тестировщик может выполнять testing, но QA как область шире.

Вторая ошибка: путать verification и validation. Запомни: verification — про соответствие требованиям; validation — про соответствие потребности пользователя и бизнеса.

Третья ошибка: считать, что качество создается только на этапе тестирования. На самом деле чем раньше команда думает о качестве, тем дешевле исправлять ошибки.

Вывод

Если упростить до одной логики: testing ищет проблемы в продукте; QC контролирует качество продукта; QA выстраивает процесс, который помогает делать качественный продукт; verification проверяет корректность реализации относительно требований; validation проверяет, нужен ли результат пользователю и бизнесу.

Для начинающего QA это одна из базовых тем. Она важна не только для собеседований, но и для повседневной работы: чем точнее ты понимаешь термины, тем легче общаться с командой и объяснять свою роль.