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 это одна из базовых тем. Она важна не только для собеседований, но и для повседневной работы: чем точнее ты понимаешь термины, тем легче общаться с командой и объяснять свою роль.