Введение

Процесс в управлении программными проектами, тестировании программного обеспечения и разработке программного обеспечения.

В управлении программными проектами, тестировании программного обеспечения и разработке программного обеспечения, верификация и валидация (V&V) – это процесс проверки соответствия программной системы спецификациям и требованиям, чтобы она выполняла свою целевую функцию. Это также может называться контролем качества программного обеспечения. Как правило, ответственность за это лежит на тестировщиках программного обеспечения в рамках жизненного цикла разработки программного обеспечения. Говоря простыми словами, верификация программного обеспечения отвечает на вопрос: "Если мы решили разработать X, достигает ли наше программное обеспечение поставленных целей без ошибок и недочетов?". С другой стороны, валидация программного обеспечения отвечает на вопрос: "Было ли создание X правильным решением? Соответствует ли X высоким требованиям?".

Проверка программного обеспечения

Это подразумевает проверку соответствия спецификациям путем запуска программного обеспечения, но это невозможно (например, как можно узнать, правильно ли реализованы архитектура, дизайн и т.д., просто запустив программу?). Только путем анализа сопутствующей документации можно сделать вывод о соответствии спецификациям.

Валидация программного обеспечения

Валидация программного обеспечения проверяет, соответствует ли программный продукт предполагаемому использованию (проверка верхнего уровня), то есть удовлетворяет ли он потребностям пользователей, а не требованиям, зафиксированным в спецификациях, или потребностям только тех, кто будет эксплуатировать программное обеспечение. Валидация учитывает потребности всех заинтересованных сторон (таких как пользователи, операторы, администраторы, менеджеры, инвесторы и т.д.). Существует два способа выполнения валидации программного обеспечения: внутренний и внешний. Внутренняя валидация предполагает, что цели заинтересованных сторон были правильно поняты и точно и полно отражены в требованиях. Если программное обеспечение соответствует спецификации требований, оно считается внутренне валидированным. Внешняя валидация проводится путем опроса заинтересованных сторон для определения соответствия программного обеспечения их потребностям. Различные методологии разработки программного обеспечения предусматривают разные уровни вовлечения и обратной связи от пользователей и заинтересованных сторон, поэтому внешняя валидация может быть как разовым событием, так и непрерывным процессом. Успешная финальная внешняя валидация происходит, когда все заинтересованные стороны принимают программный продукт и подтверждают, что он удовлетворяет их потребности. Для такой финальной внешней валидации требуется проведение приемочных испытаний – динамического тестирования. Однако можно также проводить внутренние статические тесты для проверки соответствия программного обеспечения спецификации требований, но это относится к области статической верификации, поскольку программное обеспечение не выполняется.

История

ISVV берет начало в применении IV&V (независимой проверки и валидации) к программному обеспечению. Первое известное применение ISVV относится к началу 1970-х годов, когда армия США профинансировала первую значительную программу, связанную с IV&V для системы противоракетной обороны Safeguard. Другой пример – программа IV&V NASA, созданная в 1993 году. К концу 1970-х годов IV&V быстро набирал популярность. Постоянный рост сложности, масштаба и важности программного обеспечения привел к увеличению спроса на IV&V применительно к программному обеспечению. В то же время IV&V (и ISVV для программных систем) укрепились и теперь широко используются такими организациями, как Министерство обороны, FAA и NASA. IV&V упоминается в DO 178B, ISO/IEC 12207 и формализован в IEEE 1012.

В ESA

Первоначально в 2004-2005 годах европейский консорциум во главе с Европейским космическим агентством, в состав которого входили DNV, Critical Software SA, Terma и CODA SciSys plc, создал первую версию руководства, посвященного ISVV, под названием "Руководство ESA по независимой проверке и валидации" при поддержке других организаций. В этом руководстве рассматриваются методологии, применимые ко всем этапам разработки программного обеспечения в части ISVV. В 2008 году Европейское космическое агентство выпустило вторую версию, получив отзывы от множества заинтересованных сторон в европейской космической отрасли, занимающихся ISVV, а также промышленных и административных органов. Например, FDA требует валидации версий программного обеспечения и патчей.