Верификация и валидация. QA, QC и тестирование

В прошлом уроке мы научились различать ошибку, дефект и отказ и увидели, что тестирование и отладка (debugging) — это разные задачи с разными исполнителями. Тестирование — это одно конкретное действие внутри более широкой картины контроля качества, и вокруг него точно так же путаются несколько похожих слов: верификация, валидация, QA, QC. Разберёмся, что есть что, чтобы в разговоре с командой не путать эти понятия.

Чему научишься за этот урок:
— отличить верификацию (соответствие документу) от валидации (польза для пользователя) на конкретном примере;
— расположить QA, QC и тестирование по вложенности друг в друга;
— определить, какая из проверок нарушена в конкретной спорной ситуации.

Верификация: сделали ли мы систему правильно

Верификация отвечает на вопрос «сделали ли мы систему правильно» — то есть соответствует ли то, что получилось, тому, что было записано в требованиях или техническом задании, безотносительно того, была ли сама идея из требований хорошей. Если в документе написано «промокод состоит только из заглавных латинских букв и цифр», а разработчик реализовал именно такую проверку, верификация пройдена: реализация точно соответствует записанному требованию.

Валидация: сделали ли мы правильную систему

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

  ВЕРИФИКАЦИЯ                        ВАЛИДАЦИЯ
  соответствует ли документу?        решает ли задачу пользователя?

+---------------------------+     +---------------------------+
| поле "Отчество" есть и    |     | пользователи не понимают, |
| работает точно как в      |     | зачем оно нужно, и бросают|
| документе -> ДА           |     | регистрацию -> НЕТ        |
+---------------------------+     +---------------------------+

  формальное соответствие документу еще не значит пользу для человека

QA, QC и тестирование: три понятия разного масштаба

QA (Quality Assurance, обеспечение качества) — это про предотвращение проблем через процессы, ещё до того, как написана хоть строчка кода. Например: ревью технического задания командой, чтобы отсеять неясные и противоречивые формулировки заранее, — это QA.

QC (Quality Control, контроль качества) — это про проверку уже готового результата: смотрим на то, что получилось, и решаем, годится ли это для выпуска. QC шире, чем просто тестирование: сюда же относится, например, проверка кода коллегой перед выпуском.

Тестирование — это одна конкретная техника внутри QC, причём самая известная и заметная, но не единственная. Именно с ней мы работаем на этом курсе, но важно понимать её место: тестирование — это инструмент контроля качества, а контроль качества — лишь часть более широкого обеспечения качества.

  +---------------------------------------------+
  |  QA — обеспечение качества (процессы,        |
  |  предотвращение проблем ДО написания кода)   |
  |                                               |
  |   +---------------------------------------+  |
  |   |  QC — контроль качества               |  |
  |   |  (проверка уже ГОТОВОГО результата)   |  |
  |   |                                       |  |
  |   |    +-------------------------------+  |  |
  |   |    |  Тестирование — одна техника  |  |  |
  |   |    |  внутри QC, самая известная   |  |  |
  |   |    +-------------------------------+  |  |
  |   +---------------------------------------+  |
  +---------------------------------------------+

Практика на полигоне

Возьмём похожую ситуацию на нашем полигоне: в документе с требованиями к промокодам записано — «промокод принимается только в виде заглавных латинских букв и цифр». Разработчик реализовал ровно это правило, и внутренняя проверка подтвердила: код работает точно по документу. Но на практике пользователи получают промокоды в email-рассылках, где буквы иногда напечатаны вперемешку — заглавными и строчными («Sale2024»), — и просто копируют текст как есть. Полигон отклоняет такой промокод как неверный, хотя по сути это тот же код, и часть покупок из-за этого срывается.

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

Контрольный вопрос. Верификация отвечает на вопрос:

АСделали ли систему правильно — то есть так, как записано в требованиях
БСделали ли систему, которая реально нужна и полезна пользователю
ВНасколько быстро работает система под нагрузкой

Подсказка: Смотри на слово «документ»: с чем именно идёт сверка.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Валидация отвечает на вопрос:

АСделали ли правильную систему — то есть ту, что решает реальную задачу пользователя
БСоответствует ли код техническому заданию слово в слово
ВУспели ли уложиться в срок разработки

Подсказка: Речь о пользе для живого пользователя, а не о сверке с документом.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Форма регистрации на нашем учебном полигоне точно соответствует документу с требованиями — обязательное поле «Отчество» есть и работает как описано. Но часть пользователей не понимает, зачем оно нужно, и бросает регистрацию. Что здесь нарушено?

АВалидация: сама задумка с этим полем не решает задачу пользователя
БВерификация: реализация не совпадает с документом
ВНичего не нарушено, всё в порядке

Подсказка: Реализация полностью совпадает с документом — проблема не в сверке с бумагой.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Что из перечисленного — пример QA (обеспечение качества)?

АРевью технического задания командой ещё до начала написания кода
БПроверка уже собранного билда перед выпуском
ВПрогон конкретных тестовых сценариев на готовой функции

Подсказка: QA работает на самом раннем этапе — до появления кода.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Что из перечисленного — пример QC (контроль качества)?

АПроверка уже готового результата на соответствие ожиданиям перед выпуском
БОбсуждение требований на этапе постановки задачи
ВВыбор языка программирования для нового модуля

Подсказка: QC работает с уже готовым результатом, а не с идеей на бумаге.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Как называется техника внутри QC — самая известная и заметная, но не единственная, которую вы осваиваете на этом курсе? Ответь одним словом.

Подсказка: Это то, чем занимается тестировщик.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. На нашем учебном полигоне документ требует: «промокод принимается только в виде заглавных латинских букв и цифр». Разработчик реализовал ровно такую проверку, и это подтверждено сверкой с документом. Какая из двух проверок здесь пройдена? Ответь одним словом.

Подсказка: Речь о сверке с документом, а не о реальном опыте пользователей.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. Пользователи копируют промокод из рассылки, где буквы напечатаны вперемешку («Sale2024»), полигон такой промокод отклоняет, и часть покупок срывается — хотя по документу проверка реализована верно. Это указывает на нарушение верификации или валидации? Ответь одним словом.

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

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. Опишите в 2-3 предложениях, что именно стоит изменить в документе с требованиями к промокоду на нашем полигоне, чтобы валидация в будущем проходила успешно (не «переделать код», а что именно должно измениться в понимании задачи).

Критерий приёмки: принято, если предложено изменить само требование с учётом реального поведения пользователей — например, принимать промокод независимо от регистра букв (приводить к одному регистру перед сравнением), а не оставлять строгую сверку с точным регистром.

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

✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.

Онлайн-проверка ответа появится позже

Задание. В компании ввели правило: любое техническое задание перед началом разработки обязательно проходит ревью двух инженеров, которые ищут неясные и противоречивые формулировки. Как называется эта практика в терминах из урока? Ответь одним словом (используй аббревиатуру).

Подсказка: Это происходит до того, как написана хоть строчка кода, — на уровне процесса, а не готового результата.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Как соотносятся по объёму QA, QC и тестирование?

АQA шире QC, а QC шире тестирования
БВсе три — разные названия одного и того же
ВТестирование шире и QA, и QC

Подсказка: Вспомни, что предотвращение проблем работает на самом раннем этапе, а тестирование — лишь одна из техник внутри контроля готового результата.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Что дальше

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

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева