/
Блог
/
Код
/

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

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

28 июня 2024 г.
2 минуты
2

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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Анастасия Уминская

год назад

2