Глава 6 247
В то время как SQA в большей степени акцентирует внимание на проверке
соблюдения стандартов и действенности процессов, V&V сосредотачивается на
технических аспектах разработки, отраженных в документах или компонентах ПС
(договоре, исходных требованиях, проекте, коде, интегрированной ПС).
Цель V&V – проверить и подтвердить, что требования, предъявляемые к ПС,
являются полными, точными, согласованными, корректно установленными и тес-
топригодными, а программные рабочие продукты - корректно их реализуют.
Процессы V&V оценивают элементы программного обеспечения в контек-
сте системы, частью которой оно является, с учетом требований со стороны опе-
рационного окружения (среды эксплуатации), технических средств (hardware), ин-
терфейсов, обслуживающего персонала системы и непосредственных пользовате-
лей программных продуктов.
Состав объектов проверки, критериев проверки, задач V&V, а также интен-
сивность и тщательность выполнения процессов V&V определяется уровнем цело-
стности разрабатываемой системы (уровнями критичности ее компонентов).
Связь и отличие процессов верификации и валидации. Суть отличий про-
цессов верификации и валидации удобнее сформулировать применительно к кас-
кадной модели ЖЦ и традиционным стадиям разработки программного обеспече-
ния систем (определение концепции, анализ требований, проектирование, реализа-
ция (построение), интеграция и тестирование, ввод в действие (инсталляция)).
Верификация означает проверку соответствия конкретных выходных рабочих
продуктов каждой стадии требованиям к ним, установленным на предыдущей ста-
дии. Оценивается корректность, полнота и точность реализации требований, а так-
же приверженность действующим стандартам и нормам передовой практики. Ве-
рификация выполняется с целью своевременного обнаружения и устранения допу-
щенных ошибок и обеспечения руководства проекта объективными сведениями,
необходимыми для управления риском проекта. Результаты верификации служат
базисом для оценки завершенности текущей стадии и принятия решения о переходе
к следующей стадии проекта.
Валидация означает подтверждение того, что (те же) рабочие продукты ПО
удовлетворяют системным требованиям, делегированным ПО (то есть, той части
требований к системе, которая будет реализована программными продуктами), и
отвечают потребностям системы (например, алгоритмы корректно моделируют фи-
зические законы системы; или, модели данных, функций, состояний и процессов
адекватны деловым процессам банковской системы).
Если бы исходные требования к программному обеспечению системы полно-
стью охватывались в начале проекта и были неизменны (что и предполагается при
выборе каскадной модели разработки), процесс валидации можно было бы связы-
вать только с исходными требованиями, тестами и конечным программным про-
дуктом. В этом случае было бы оправданным бытующее мнение о том, что валида-
ция отождествляется с тестированием при приемочных испытаниях. Однако, на
практике, требования изменяются по ходу разработки. Да и современные CASE-
среды позволяют сохранять и «тестировать» (трассировать к исходным требовани-
ям) промежуточные продукты разработки.
Таким образом, и верификация, и валидация необходимы и возможны на всех
стадиях создания ПО. Вопрос состоит только в правильном оценивании уровня це-
лостности ПО и надлежащего объема V&V.