Верификация и валидация: в чём разница

Верификация и валидация: в чём разница Полезное

Верификацию и валидацию часто путают. Если коротко: верификация отвечает на вопрос «продукт сделан правильно?» (соответствует требованиям), а валидация — «сделан ли правильный продукт?» (решает ли он реальную задачу пользователя). В этой статье разберём оба понятия, покажем разницу на сквозном примере и объясним, почему это не два последовательных этапа, а два взаимодополняющих процесса, которые идут по всему жизненному циклу.

Что такое верификация

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

Что такое валидация

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

Чем отличаются: сравнение

V&V (verification & validation) — это два взаимодополняющих процесса проверки с разными целями. Они повторяются на разных уровнях продукта и в разные фазы жизненного цикла. Сравнивать их удобнее не по «этапам», а по нескольким признакам:

Признак Верификация Валидация
Вопрос «правильно ли сделали?» «то ли сделали?»
Эталон требования, спецификация реальная потребность, условия эксплуатации
Объект компонент/система против документации сценарий/продукт против ожиданий
Участники разработчики, инженеры, ревьюеры аналитики, владелец продукта, пользователи
Когда может проводиться на протяжении жизненного цикла на протяжении жизненного цикла

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

Сквозной пример: калькулятор доставки

  1. До разработки: аналитик проводит интервью и показывает прототип — выясняется, что пользователь ждёт стоимость доставки до оформления заказа. Это ранняя валидация потребности.
  2. Требование фиксируется; команда пишет код и проверяет его по требованию — верификация.
  3. На готовом сценарии пользователь снова проверяет, что цена видна вовремя, — повторная валидация.

Если бы команда только верифицировала формулу из ТЗ, но не валидировала потребность, продукт мог бы точно соответствовать спецификации и всё равно не решать задачу. Ошибка была бы не в коде, а в требованиях — поймать её можно только валидацией. В V&V участвует не только тестировщик: аналитик валидирует потребность, команда верифицирует реализацию, пользователь проверяет сценарий.

Выводы

  • Верификация — проверка того, что продукт соответствует заданным требованиям и спецификации («сделали правильно?»), а валидация — проверка того, что продукт решает реальную задачу пользователя («сделали правильное?»).
  • Главное отличие — эталон сравнения: у верификации это требования и документация, у валидации — реальная потребность пользователя и условия эксплуатации.
  • Верификация и валидация (V&V) — не два последовательных этапа, а взаимодополняющие процессы, которые повторяются на разных уровнях продукта по всему жизненному циклу; валидацию можно проводить рано — на сценариях, макетах и прототипах.
  • Тип теста сам по себе не определяет, верификация это или валидация: системный тест может проверять требование, а демонстрация макета — валидировать ожидание пользователя; решает эталон сравнения, а не название уровня тестирования.
  • Продукт может пройти верификацию и провалить валидацию: если требования были неверны, точное соответствие спецификации не решает задачу пользователя, и такую ошибку ловит только валидация.
  • В V&V участвует не только тестировщик: аналитик и пользователи валидируют потребность и сценарий, разработчики и ревьюеры верифицируют реализацию; оба процесса относятся к обеспечению качества (QA).

Профессию тестировщика и практику V&V системно разбирают на курсах Otus по тестированию ПО — формат можно посмотреть на бесплатных открытых уроках Otus. Подробнее о профессии — в разделе курсов по тестированию.

FAQ

Чем отличается верификация от валидации простыми словами? Верификация — «сделали правильно» (по спецификации), валидация — «сделали правильное» (то, что нужно пользователю).

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

К чему относятся верификация и валидация? К обеспечению качества (QA), их обозначают вместе как V&V; в них участвуют аналитики, разработчики, владельцы продукта и пользователи.

Смежные темы в журнале: Тестирование: характеристики, виды, особенности, Всё, что нужно знать о модульном тестировании.

OTUS Журнал
Скидка 15% 1-6 сентября на курсы (popup)