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

Draft

Как различать 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 — от технически правильной, но продуктово бесполезной. Сильное тестирование умеет работать на обоих уровнях.