Верификация и валидация (Verification and Validation)

Верификация (verification): Доказанное объективными результатами исследования подтверждение того, что определенные требования были выполнены. (ISO 9000)

Валидация (validation): Доказанное объективными результатами исследования подтверждение того, что требования для ожидаемого конкретного использования приложения были выполнены. (ISO 9000)

Верификация - это подтверждение путем представления объективных доказательств выполнения данным рабочим элементом установленных требований. (ГОСТ 56920)

Валидация демонстрирует, что рабочий элемент может использоваться пользователями для решения определенных ими задач. (ГОСТ 56920)

Верификация - это проверки, выполняемые в процессе разработки ПО для ответа на вопрос: “правильно ли мы разрабатываем продукт?”. Это в т.ч. включает проверку документации: requirements specification, design documents, database table design, ER diagrams, test cases, traceability matrix и т.д. Верификация гарантирует, что ПО разрабатывается в соответствии со стандартами и процессами организации, полагаясь на reviews и статические методы тестирования (т.е. без запуска ПО, но, например, с unit/integration tests). Верификация является превентивным подходом (Preventative approach).

Этап верификации

Действующие лица

Описание

На выходе

Review бизнес / функциональных требований

Команда разработки / клиент для бизнес-требований

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

Завершенные требования, которые готовы к использованию на следующем этапе - дизайне

Review дизайна

Команда разработки

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

Дизайн готов к имплементации

Прохождение кода (Code Walkthrough)

Отдельный разработчик

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

Код готов к unit testing

Проверка кода (Code Inspection)

Команда разработки

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

Код готов к тестированию

Test Plan Review (внутренней командой QA)

QA команда

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

Test plan готов к передаче внешним командам (Project Management, Business Analysis, development, Environment, client, etc.)

Test Plan Review (внешнее)

Project Manager, Business Analyst, and Developer

Формальный анализ test plan, чтобы убедиться, что график и другие соображения команды QA соответствуют другим командам и всему проекту

Подписанный или утвержденный test plan, на котором будет основываться деятельность по тестированию

Test documentation review (Peer review)

Члены команды QA

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

Документация по тестированию готова к передаче внешним командам

Test documentation final review

Business Analyst and development team.

A test documentation review чтобы убедиться, что test cases охватывают все бизнес-условия и функциональные элементы системы

Тестовая документация готова к выполнению

Валидация - это процесс оценки конечного продукта, чтобы проверить, соответствует ли он потребностям бизнеса и ожиданиям клиентов, т.е. отвечает на вопрос: “правильный ли мы разработали продукт?”. Валидация является динамическим тестированием, т.е. происходит с помощью выполнения кода и прогона тестов на нём (UAT/CAT, usability, всё что угодно). Валидация является реактивным подходом (Reactive approach).

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

Источник: Exact Difference Between Verification And Validation With Examples

Доп. материал:

Last updated