# Верификация и валидация (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](https://www.softwaretestinghelp.com/test-documentation-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](https://www.softwaretestinghelp.com/what-is-verification-and-validation/)

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

* [В. В. Кулямин - Работа на тему “Методы верификации программного обеспечения”](https://www.ispras.ru/publications/methods_of_software_verification.pdf)
* [Форум тестировщиков: Verification & Validation - что это такое?](https://software-testing.ru/forum/index.php?/topic/979-verification-validation-chto-eto-takoe/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/obshee/verifikaciya-i-validaciya-verification-and-validation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
