Верификация и аттестация программ
Верификация и аттестация (валидация) – это методы, которые обеспечивают соответственно проверку и анализ правильности выполнения заданных функций и соответствия ПО требованиям заказчика, а также заданным спецификациям ПО [12–17]. Эти методы обозначены в стандарте ISO/IEC 12207 [18] как самостоятельные процессы ЖЦ и используются, начиная от этапа анализа требований и кончая проверкой правильности функционирования программного кода на заключительном этапе – тестировании.
Верификация – это проверка того, правильно ли система работает в соответствии с ее спецификацией и заданными требованиями заказчика, Этот процесс ЖЦ стандарта ISO/IEC 12207 позволяет сделать заключение о корректности сделанной системы.
Валидация
является методом проверки соответствия спроектированного ПО требованиям и потребностям заказчика и предполагает выполнение на этапах ЖЦ разного рода действий для получения корректных программ и систем:
– планирование процедур проверки и контроля проектных решений с помощью методик и просмотра хода разработки;
– повышения уровня автоматизации проектирования программ с использованием –CASE–систем [19];
– проверка правильности функционирования программ с помощью методик тестирования на наборах целевых тестов;
– структурирование системы на модули, их спецификации, реализация и использование их как повторных компонентов (reuse) [10, 20];
– адаптация продукта к условиям использования;
– управления проектом.
Валидация опирается на просмотры и инспекции промежуточных результатов на каждом этапе ЖЦ с целью анализа на соответствие их требованиям и тем самым позволяет подтвердить, что ПО имеет корректную реализацию начальных требований и условий к системе
Таким образом, основными особенностями методов верификации и валидации является проверка полноты, непротиворечивости и однозначности спецификаций требований к созданному ПО.
Верификация и валидация предполагают планирование этих процессов в целях распределения ресурсов и сосредоточения проверки на наиболее критичных элементах проекта, а именно:
– компонентов системы;
– интерфейса компонентов системы (программные, технические и информационные) и взаимодействий объектов (протоколов и сообщений) для функционирования в современных распределенных средах;
– средств доступа к БД и файлам, которые обеспечивают защиту от несанкционированного доступа к ним разных пользователей;
– документация на ПО;
– тестов и тестовых процедур;
– специальных средств защиты информации в системе.
По окончании проектирования приведенных элементов соответственно проводится:
– проверка правильности перевода отдельных компонентов в выходной код, а также описаний их интерфейсов, трассировки этих компонентов в соответствии с требованиями заказчика к функциям системы;
– анализ способов доступа к файлам или БД соответственно требований, принципов передачи данных и процедур манипулирования данными;
– проверка средств защиты на удовлетворение требованиям заказчика и правильности реализации.
По завершению процессов верификации и валидации создается комплект материалов отображающий правильность формирования требований, спецификация элементов системы, результатов проведения инспекций и тестирования программ.