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