Когда начинаешь изучать теорию тестирования, то рано или поздно сталкиваешься с такими терминами как верификация и валидация.
В Интернете очень сложно найти четкое обозначение этих терминов, а также критерии их отличия (и это несмотря на то, что вопросы об этих понятиях очень часто звучат на собеседованиях при отборе кандидатов на вакантное место QA-специалиста).
Далее в статье мы постараемся разобраться в этих терминах и понять разницу между ними.
Понятие верификации ПО
В сфере информационных технологий верификация считается более общим понятием, чем тестирование. Ее цель – это достижение определенных гарантий того, что верифицируемый объект (ПО) полностью соответствует требованиям, полностью реализован и может удовлетворить все критерии проектной спецификации и обговорённые стандарты качества.
Любой процесс верификации включает в себя инспекции, проверку программного кода, анализ итогов тестирования, формирование анализов и отчетной документации, где будут детально расписаны все проблемы определенного проекта.
Таким образом, в сфере тестирования ПО есть общепринятый постулат о том, что процесс проверки является неотъемлемой частью верификации.
Верификация – это традиционно внутренний процесс менеджмента качества ПО, который обеспечивает согласие с установленными правилами, стандартами или разработанной спецификацией.
Пример типичной верификации: процесс проведения тестирования системного компонента. Оперируя определенными требованиями, мы проводим процесс тестирования и документируем, соблюдены ли требования. В конце верификации мы получаем ответ на вопрос: «Отвечает ли продукт завалидированным требованиям?».
Понятие валидации ПО
В работе с программным обеспечением валидацией считается специфический процесс, целью которого является доказательство того, что во время функционирования системы достигаются результаты, изначально запланированные для ее непосредственного использования. Другими словами, валидация – это проверка соответствия созданной системы тому ожиданию, которое озвучил клиент.
Если взглянуть на эти процессы с точки зрения вопроса, на который они могут дать ответ, то в случае верификации это: что было сделано; отвечает ли система озвученным клиентским ожиданиям? А валидация – сделано именно то, что требовалось или всецело ли данная система соответствует тем ожиданиям клиента, что были ранее озвучены?
Различия между верификацией и валидацией
Верификация | Валидация |
---|---|
По факту отвечает на вопрос, правильно ли создается и тестируется ПО и все ли требования учитываются при этом. | Отвечает на вопрос, создается ли продукт правильно с точки зрения ожиданий клиента. |
В процессе верификации убеждаемся в том, что весь созданный функционал приложения работает корректно и логически верно. | При процессе валидации убеждаемся в том, что продукт полностью соответствует поведению, которое от него ожидается и то, что клиент знает о наличии подобного функционала. |
В структуру верификации входят такие компоненты, как сверка завалидированным требованиям, технической документации и корректное выполнения программного кода на любом этапе создания и тестирования ПО. | Валидация, по своей сути, в большей степени включает в себя общую оценку ПО и может основываться исключительно на субъективном мнении касательно правильности работы приложения или его компонентов. |
Использование верификации и валидации на практике
Представим, что у нас есть сайт. Для входа на страницу веб-сайта, пользователю необходимо выполнить регистрацию или же войти в систему под своим аккаунтом.
Итак, есть определенная форма с полями, которые необходимо заполнить.
Для начала выполним верификацию:
- Проверим наличие полей. Все поля должны быть валидными и соответствовать требованиям спецификации. Их количество, отображение и особенности определяются дизайнерами, которые создают макеты. Необходимые данные вносятся в техническое задание, а в случае отсутствия такового – необходимо иметь доступы к созданным макетам.
При выполнении верификации необходимо понимать, что все поля изначально рабочие, и в них можно занести данные, согласно отображенным обозначениям и наименованиям.
После этого происходит валидация:
- В процессе валидации проверяются вводимые данные в поля информации, а также их соответствие утвержденной спецификации.
Теперь рассмотрим пример на основе формы входа/регистрации в рамках популярной социальной сети Facebook.
Допустим, у нас есть спецификация и наличие группы полей на целевой странице ей всецело соответствует. Исходя из этого факта, верификация уже прошла успешно.
Дальше нашей задачей является проверка валидации. Чтобы долго не затягивать этот процесс, изначально введем неверную информацию в поля ввода данных.
Как мы видим на скриншоте, введенная информация не прошла валидацию и система не пустила нас дальше, что и нужно было протестировать.
Какие итоги из всего вышенаписанного можно сделать?
- При валидации тестируется полная работоспособность отмеченной функциональности.
- При верификации проверяется наличие в продукте этой логики (параметров взаимодействия компонентов).
Оставить комментарий