Когда я пыталась разобраться в этих двух определениях, мне на глаза попалась эта статья. Она помогла мне расставить всё по полочкам, надеюсь, поможет и вам.
Верификация в тестировании ПО – процесс просмотра документации, дизайна, кода и программы для того, чтобы проверить, было ли программное обеспечение создано в соответствии с требованиями или нет. Основная цель процесса верификации – обеспечить качество приложения, дизайна, архитектуры и т.д. Процесс верификации включает в себя такие действия, как ревью, пошаговое руководство и инспекция.
Валидация в разработке ПО – динамический механизм тестирования и проверки того, действительно ли программный продукт соответствует точным потребностям заказчика или нет. Этот процесс помогает гарантировать, что ПО выполняет желаемое использование в подходящей среде. Процесс валидации включает в себя такие действия, как модульное тестирование, интеграционное тестирование, системное тестирование и пользовательское приемочное тестирование.
Ключевая разница:
Процесс верификации включает в себя проверку документации, дизайна, кода и программы, в то время как процесс валидации включает в себя тестирование и проверку самого продукта.
Верификация не требует исполнения кода, в то время как валидация требует.
Верификация использует такие методы, как ревью, пошаговое руководство, инспекцию и отладку, в то время как валидация использует такие методы, как тестирование чёрного ящика, белого ящика и нефункциональное тестирование.
Верификация проверяет, соответствует ли ПО спецификации, в то время как валидация проверяет, соответствует ли ПО требованиям и ожиданиям.
Верификация находит баги на раннем этапе цикла разработки, в то время как валидация находит баги, которые верификация не может.
Сравнивая валидацию и верификацию в тестировании ПО, процесс верификации нацелен на архитектуру ПО, дизайн, базу данных и др., в то время как процесс валидации нацелен на реальный программный продукт.
Верификация выполняется командой QA, в то время как валидация выполняется командой тестирования с командой QA.
Сравнивая тестирование верификации и валидации, процесс верификации предшествует процессу валидации, в то время как процесс валидации идет после процесса верификации.
Вот основное различие между тестированием верификации и валидации:
Верификация | Валидация |
Процесс верификации включает в себя проверку документов, дизайна, кода и программы | Это динамический механизм тестирования и валидации фактического продукта |
Не связано с выполнением кода | Всегда связано с выполнением кода |
Верификация использует такие методы, как ревью, пошаговые руководства, инспекции, отладку и т.д. | Используются такие методы, как тестирование черного ящика, тестирование белого ящика и нефункциональное тестирование |
Проверяется соответствие программного обеспечения спецификации | Проверяется, соответствует ли программное обеспечение требованиям и ожиданиям заказчика |
Обнаруживает баги на ранних стадиях цикла разработки | Может обнаружить баги, которые не может обнаружить верификация |
Цель - архитектура приложений и программного обеспечения, спецификация, полный дизайн, высокий уровень, дизайн базы данных и т.д. | Цель - это реальный продукт |
Команда контроля качества проводит проверку и убеждается, что программное обеспечение соответствует требованиям и спецификации | Валидация программного кода выполняется с привлечением команды тестирования |
Идет перед валидацией | Идет после верификации |
Примеры верификации и валидации.
А теперь давайте рассмотрим пример, объясняющий планирование проверки и валидации:
В области разработки ПО рассмотрите следующую спецификацию для теста на верификацию и теста на валидацию:
Кликабельная кнопка с именем Submet
Верификация включала бы проверку документа о дизайне и исправление орфографической ошибки.
В противном случае команда разработчиков создаст подобную кнопку:

Таким образом, теперь новая спецификация:
Кликабельная кнопка с именем Submit (Отправить)
Как только код готов, выполняется валидация. Тест на валидацию обнаружил:

Благодаря тесту на валидацию команда разработчиков сделает кнопку кликабельной.