В чём разница между валидацией и верификацией

Читать в полной версии →

Перед релизом новой версии приложения или передачей разработанного решения клиенту тестировщики тщательно проверяют, соответствует ли результат изначальным требованиям. Для этого они используют процедуры валидации и верификации. Что это такое и в чём разница? Давайте разберемся!

Что такое верификация

Всё начинается с просмотра проектной документации, дизайна, кода и архитектуры решения и баз данных — верификации. Проверка помогает определить степень соответствия продукта требованиям заказчика и гарантировать его качественное исполнение. Верификация отвечает на вопрос: «Правильно ли команда делает продукт?»

В ходе верификации тестировщики:

  1. Анализируют требования, чтобы точнее описать бизнес-процессы и внести необходимые изменения в разработку ПО. Для этого тестировщики выбирают один или несколько методов анализа, например UML (унифицированный язык моделирования), диаграммы Ганта, технику блок-схем, анализ расхождений и др.
  2. Используют статические методы анализа кода для выявления ошибок, недочетов и потенциально уязвимых мест исходного кода программ без его исполнения. Специальные статические анализаторы проверяют соответствие исходного кода принятому в компании стандарту — контролируют использование пробелов, оценивают согласованность текста программы с нормами кодирования и т. д. Они исследуют труднодоступные фрагменты кода, чтобы обнаружить скрытые ошибки, которые могут проявить себя только через несколько лет. Статические методы позволяют считать метрики тестирования и контролировать динамику плотности ошибок во времени — это дает возможность оценить успешность внедрения изменений в проекте.
  3. Проводят аудит проекта и процессов разработки, чтобы определить эффективность менеджмента проекта. Они проверяют, как выбранные способы контроля влияют на соответствие ПО заявленной цели использования и установленным заказчиком требованиям.
  4. Проводят ревью кода для контроля его качества и обмена опытом. Разработчики систематически передают реализованные задачи на оценку другим специалистам в команде. Это позволяет изучить изменения в коде, обнаружить потенциальные проблемы, улучшить читаемость и качество кода.

Пример: на макетах обнаружена Интерактивная кнопка с надписью «Скачеть».

Проверка дизайна и орфографии — часть процесса верификации.

Результат: интерактивная кнопка с надписью «Скачать» в новой спецификации.

Что такое валидация

Когда вы удостоверились, что команда разрабатывает правильное решение, можно переходить к его валидации — динамическому тестированию программного продукта. Это выполнение кода не только проверяет решение на его соответствие потребностям заказчика, но и помогает гарантировать, что продукт будет правильно работать в подходящей среде. Валидация отвечает на вопрос: «Правильный ли продукт делает команда?»

Процесс включает в себя:

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

Верификация и валидация: пять ключевых различий

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

На курсе «QA-инженер по тестированию: с нуля до автоматизатора» вы полностью погрузитесь в процессы тестирования программных решений и детально изучите механизмы валидации и верификации в теории и на практике.