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