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