Когда я пыталась разобраться в этих двух определениях, мне на глаза попалась эта статья. Она помогла мне расставить всё по полочкам, надеюсь, поможет и вам.

Верификация в тестировании ПО – процесс просмотра документации, дизайна, кода и программы для того, чтобы проверить, было ли программное обеспечение создано в соответствии с требованиями или нет. Основная цель процесса верификации – обеспечить качество приложения, дизайна, архитектуры и т.д. Процесс верификации включает в себя такие действия, как ревью, пошаговое руководство и инспекция.

Валидация в разработке ПО – динамический механизм тестирования и проверки того, действительно ли программный продукт соответствует точным потребностям заказчика или нет. Этот процесс помогает гарантировать, что ПО выполняет желаемое использование в подходящей среде. Процесс валидации включает в себя такие действия, как модульное тестирование, интеграционное тестирование, системное тестирование и пользовательское приемочное тестирование.

Ключевая разница:

  • Процесс верификации включает в себя проверку документации, дизайна, кода и программы, в то время как процесс валидации включает в себя тестирование и проверку самого продукта.

  •  Верификация не требует исполнения кода, в то время как валидация требует.

  • Верификация использует такие методы, как ревью, пошаговое руководство, инспекцию и отладку, в то время как валидация использует такие методы, как тестирование чёрного ящика, белого ящика и нефункциональное тестирование.

  • Верификация проверяет, соответствует ли ПО спецификации, в то время как валидация проверяет, соответствует ли ПО требованиям и ожиданиям.

  • Верификация находит баги на раннем этапе цикла разработки, в то время как валидация находит баги, которые верификация не может.

  •  Сравнивая валидацию и верификацию в тестировании ПО, процесс верификации нацелен на архитектуру ПО, дизайн, базу данных и др., в то время как процесс валидации нацелен на реальный программный продукт.

  • Верификация выполняется командой QA, в то время как валидация выполняется командой тестирования с командой QA.

  •  Сравнивая тестирование верификации и валидации, процесс верификации предшествует процессу валидации, в то время как процесс валидации идет после процесса верификации.

Вот основное различие между тестированием верификации и валидации:

Верификация

Валидация

Процесс верификации включает в себя проверку документов, дизайна, кода и программы

Это динамический механизм тестирования и валидации фактического продукта

Не связано с выполнением кода

Всегда связано с выполнением кода

Верификация использует такие методы, как ревью, пошаговые руководства, инспекции, отладку и т.д.

Используются такие методы, как тестирование черного ящика, тестирование белого ящика и нефункциональное тестирование

Проверяется соответствие программного обеспечения спецификации

Проверяется, соответствует ли программное обеспечение требованиям и ожиданиям заказчика

Обнаруживает баги на ранних стадиях цикла разработки

Может обнаружить баги, которые не может обнаружить верификация

Цель - архитектура приложений и программного обеспечения, спецификация, полный дизайн, высокий уровень, дизайн базы данных и т.д.

Цель - это реальный продукт

Команда контроля качества проводит проверку и убеждается, что программное обеспечение соответствует требованиям и спецификации

Валидация программного кода выполняется с привлечением команды тестирования

Идет перед валидацией

Идет после верификации

Примеры верификации и валидации.

А теперь давайте рассмотрим пример, объясняющий планирование проверки и валидации:

В области разработки ПО рассмотрите следующую спецификацию для теста на верификацию и теста на валидацию:

Кликабельная кнопка с именем Submet

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

В противном случае команда разработчиков создаст подобную кнопку:

Пример верификации
Пример верификации

Таким образом, теперь новая спецификация:

Кликабельная кнопка с именем Submit (Отправить)

Как только код готов, выполняется валидация. Тест на валидацию обнаружил:

Пример валидации
Пример валидации

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

Комментарии (6)


  1. 5-55
    01.10.2022 19:55
    +8

    Прочитал и эту статью и сравнения в поисковике - лично у меня складывается впечатление что разница высосана из пальца и больше похожа на перевод одного и того же действия, т.к. может ли быть ПО пройти верификацию но не валидацию и наоборот - т.е. примет его тот для кого ПО предназначено или нет.

    Сравнения понятий больше для умников, чтобы им было что либо сказать и выглядеть умными.


    1. MentalBlood
      01.10.2022 20:41

      Да в википедии же есть простое объяснение через "внутреннее"


      P.S. Насчет умников согласен


  1. smidmi
    01.10.2022 20:56
    +2

    Если загуглить, то 8 из 10 англоязычных ресурсов (при этом эти 8 из Индии) объясняют это так: верификация - статичное тестирование (тестирование документации, ревью кода и т.п.), валидация - динамическое тестирование (функционал и т.д.). На русскоязычных ресурсах, почти везде, объясняется примерно так: верификация - проверяем как реализованы требования, валидация - то ли мы сделали с точки зрения клиента (по сути проверяем требования на актуальность). Хорошее объяснение в англоязычной вики. Чем руководствоваться, дело каждого (зависит от рынка где работаете/будете работать).


    1. 5-55
      01.10.2022 22:47

      Тут вопрос только в том что работоспособен ли заказанный (и предварительно описанный) функционал, работает ли он стабильно или софт хрень, имеющая кучу ошибок студентов.

      Если же в коде есть части которые не относятся к функциональному заказанному коду - это либо трояны (и т.п.) или их нет. Для этого проводят экспертизу кода.


  1. kilobait3
    02.10.2022 10:28
    +1

    Автор в одну тему ударился.


  1. iggr63
    02.10.2022 17:54
    +1

    Добавлю свой камень в огород. Для комплексных систем (измерительная аппаратура) под верификацией подразумевается проверка соответствия заявленных параметров (спецификаций) компонент результатам их тестов по отдельности и в составе системы. Валидация же это процесс проверки удовлетворяет ли система требованиям к продукту.