Что такое верификация и валидация в тестировании
Что проверяют
Различаете ли вы два разных вопроса: «делаем ли мы продукт правильно» и «делаем ли мы правильный продукт». За формулировкой стоит зрелость тестировщика: один прогоняет тест-кейсы по спецификации, другой умеет поймать дефект ещё в требованиях и задать вопрос, нужна ли эта функция пользователю.
Как отвечать
Верификация проверяет соответствие продукта заявленным требованиям, спецификациям и стандартам. Валидация проверяет, решает ли готовый продукт реальную задачу пользователя.
К верификации относятся ревью требований и дизайна, статический анализ, трассировка требований к тестам, юнит-, интеграционные и системные проверки против спецификации. К валидации относятся приёмочное и пользовательское тестирование, юзабилити-сессии, бета, анализ поведения пользователей после релиза.
Хороший пример сразу показывает разницу. Требование говорит: пароль не короче восьми символов. Тесты подтверждают, что короткий пароль не принимается, верификация пройдена. На проде выясняется, что регистрация вообще не нужна, вход идёт по ссылке из письма, и валидация провалена при идеально выполненной спецификации.
Стоит добавить, что оба процесса идут параллельно на всех этапах, а не один за другим, и что стоимость дефекта растёт от требований к продакшену, поэтому верификация начинается с ревью документа, а не с запуска тестов.
Где спотыкаются
Отдают верификации только работу с документами, а всё выполнение тестов записывают в валидацию. Любой тест, который сверяет поведение со спецификацией, это верификация, включая автотесты и проверку API по контракту.
Жёстко разносят их по фазам: сначала разработка и верификация, потом тестирование и валидация. Это описание водопада. В итеративной работе валидация начинается с прототипа и повторяется на каждом инкременте, иначе команда полгода безупречно делает ненужное.
Не могут привести пример, где всё по требованиям, но продукт провалился. Без такого примера ответ звучит как заученное определение, а интервьюер спрашивает именно ради него.