Верификация и валидация

Как различать verification и validation на практике и почему продукту почти всегда нужны оба типа проверки.

Обновлено:

Содержание

Verification и validation часто объясняют фразами “build the product right” и “build the right product”. Это полезное сокращение, но на практике важно понимать глубже: verification проверяет соответствие спецификации и правилам, а validation — соответствие реальной пользовательской и бизнес-потребности.

Короткое различие

  • →Verification отвечает на вопрос: сделали ли мы систему правильно относительно заданных требований, контрактов и правил.
  • →Validation отвечает на вопрос: решает ли эта система правильную задачу для пользователя и бизнеса.

Где обычно работает verification

  • →Ревью требований, схем, API contracts, тестовой документации и acceptance criteria.
  • →Проверка соответствия реализации согласованной логике, макетам, правилам расчёта и ограничениям.
  • →Статический анализ, code review, contract testing и формальные технические проверки.

Где обычно работает validation

  • →Проверка пользовательских сценариев в реальном контексте использования.
  • →Оценка того, достигает ли фича своей бизнес-цели, а не просто соответствует формальному тексту требований.
  • →Исследовательское тестирование, usability checks, пилотные релизы, обратная связь пользователей и продуктовые метрики.

Типовой пример

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

Частые ошибки

  • →Считать, что прохождение test cases автоматически означает, что продукт нужен и удобен.
  • →Путать соответствие требованиям с соответствием реальной пользовательской ценности.
  • →Не проверять допущения в требованиях и полагаться на них как на абсолютную истину.
  • →Уделять всё внимание validation и игнорировать техническую дисциплину verification, либо наоборот.

Практический вывод простой: verification защищает от технически неправильной реализации, validation — от технически правильной, но продуктово бесполезной. Сильное тестирование умеет работать на обоих уровнях.