Верификация и проверка программного обеспечения

редактировать

В управлении проектами программного обеспечения, тестирование программного обеспечения и программное обеспечение инженерная, проверка и валидация (VV ) - это процесс проверки того, что программная система соответствует спецификациям и соответствует своему назначению. Это также может называться контроль качества программного обеспечения. Обычно это входит в обязанности тестировщиков программного обеспечения в рамках жизненного цикла разработки программного обеспечения. Проще говоря, проверка программного обеспечения - это: «Предполагая, что мы должны создать X, достигает ли наше программное обеспечение своих целей без каких-либо ошибок или пробелов?» С другой стороны, проверка программного обеспечения заключается в следующем: «Был ли X тем, что мы должны были создать? Соответствует ли X требованиям высокого уровня?»

Содержание
  • 1 Определения
    • 1.1 Проверка программного обеспечения
    • 1.2 Проверка артефакта или спецификации
    • 1.3 Проверка программного обеспечения
    • 1.4 Проверка артефакта или спецификации
    • 1.5 Сравнение проверки и проверки
  • 2 Связанные концепции
  • 3 Классификация методов
    • 3.1 Контрольные примеры
  • 4 Независимая проверка и валидация
    • 4.1 История ISVV
    • 4.2 Методология ISVV
  • 5 Нормативная среда
  • 6 См. также
  • 7 Примечания и ссылки
  • 8 Внешние ссылки
Определения

Верификация и валидация - это не одно и то же, хотя их часто путают. Бём лаконично выразил разницу как

  • Проверка: правильно ли мы создаем продукт?
  • Проверка: создаем ли мы правильный продукт?

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

Создание правильного продукта подразумевает использование Спецификации требований в качестве входных данных для следующего этапа процесса разработки, процесса проектирования, результатом которого является Спецификация дизайна. Кроме того, это также подразумевает использование Спецификации проекта для поддержки процесса строительства. Каждый раз, когда на выходе процесса правильно реализуется его входная спецификация, программный продукт становится на шаг ближе к окончательной проверке. Если результат процесса неверен, разработчики неправильно создают продукт, который хотят заинтересованные стороны. Этот вид проверки называется «проверкой артефакта или спецификации».

Создание правильного продукта подразумевает создание Спецификации требований, которая содержит потребности и цели заинтересованных сторон программного продукта. Если такой артефакт неполный или неправильный, разработчики не смогут создать продукт, который хотят заинтересованные стороны. Это форма «проверки артефакта или спецификации».

Примечание. Проверка начинается перед проверкой, а затем они выполняются параллельно, пока не будет выпущен программный продукт.

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

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

Проверка артефакта или спецификации

Выходные данные каждой стадии процесса разработки программного обеспечения также могут быть предметом проверки при проверке на соответствие входной спецификации (см. Определение CMMI ниже).

Примеры проверки артефактов:

  • Из проектной спецификации по сравнению со спецификацией требований: правильно ли архитектурный проект, детальный проект и спецификации логической модели базы данных реализуют функциональные и нефункциональные спецификации требований?
  • Артефактов конструкции, соответствующих проектной спецификации: правильно ли исходный код, пользовательские интерфейсы и физическая модель базы данных реализуют проектную спецификацию?

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

Проверка программного обеспечения проверяет, удовлетворяет ли программный продукт или подходит ли он предполагаемое использование (проверка высокого уровня), т. е. программное обеспечение соответствует требованиям пользователя, а не как артефакты спецификации или только как потребности тех, кто будет использовать программное обеспечение; но, как потребности всех заинтересованных сторон (таких как пользователи, операторы, администраторы, менеджеры, инвесторы и т. д.). Есть два способа выполнить проверку программного обеспечения: внутренний и внешний. Во время внутренней проверки программного обеспечения предполагается, что цели заинтересованных сторон были правильно поняты и что они были точно и всесторонне выражены в артефактах требований. Если программное обеспечение соответствует спецификации требований, оно прошло внутреннюю проверку. Внешняя проверка происходит, когда она выполняется путем опроса заинтересованных сторон, соответствует ли программное обеспечение их потребностям. Различные методологии разработки программного обеспечения требуют разных уровней участия и обратной связи со стороны пользователей и заинтересованных сторон; Итак, внешняя проверка может быть дискретным или непрерывным событием. Успешная окончательная внешняя валидация происходит, когда все заинтересованные стороны принимают программный продукт и заявляют, что он удовлетворяет их потребности. Такая окончательная внешняя проверка требует использования приемочного теста, который является динамическим тестом.

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

Проверка артефакта или спецификации

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

Примеры проверки артефактов:

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

Проверка и проверка

Согласно модели зрелости возможностей (CMMI-SW v1.1),

  • Проверка программного обеспечения: процесс оценки программного обеспечения во время или во время конец процесса разработки, чтобы определить, удовлетворяет ли он указанным требованиям. [IEEE-STD-610]
  • Проверка программного обеспечения: процесс оценки программного обеспечения для определения того, удовлетворяют ли продукты данной фазы разработки условиям, установленным в начале этой фазы. [IEEE-STD-610]

Валидация в процессе разработки программного обеспечения может рассматриваться как форма валидации Спецификации требований пользователя; и что в конце процесса разработки это эквивалентно внутренней и / или внешней проверке программного обеспечения. Верификация, с точки зрения CMMI, явно артефактная.

Другими словами, проверка программного обеспечения гарантирует, что выходные данные каждой фазы процесса разработки программного обеспечения эффективно выполняют то, что указывает соответствующий входной артефакт (требование ->дизайн ->программный продукт), в то время как проверка программного обеспечения гарантирует, что программный продукт удовлетворяет потребности всех заинтересованных сторон (следовательно, спецификация требований изначально была правильно и точно выражена). Проверка программного обеспечения гарантирует, что «вы построили его правильно», и подтверждает, что предоставленный продукт соответствует планам разработчиков. Проверка программного обеспечения гарантирует, что «вы создали правильную вещь», и подтверждает, что продукт в том виде, в котором он был предоставлен, соответствует предполагаемому использованию и целям заинтересованных сторон.

В этой статье использовано строгое или узкое определение проверки.

С точки зрения тестирования:

  • Fault - неправильная или отсутствующая функция в коде.
  • Failure - проявление ошибки во время выполнения. Программное обеспечение не было эффективным. Он не делает то, «что» должен делать.
  • Неисправность - в соответствии с его спецификацией система не выполняет заданные функции. Программное обеспечение было неэффективным (требовалось слишком много ресурсов, таких как циклы ЦП, использовалось слишком много памяти, выполнялось слишком много операций ввода-вывода и т. Д.), Его нельзя было использовать, оно было ненадежным и т. Д. что-то «как» это должно быть сделано.
Понятия, связанные с данным

И верификация, и валидация связаны с концепциями качества и обеспечения качества программного обеспечения. Сами по себе проверка и валидация не гарантируют качества программного обеспечения; требуется планирование, прослеживаемость, управление конфигурацией и другие аспекты разработки программного обеспечения.

В сообществе моделирования и моделирования (MS) определения верификации, валидации и аккредитации аналогичны:

  • MS Verification - это процесс определения того, что компьютерная модель, моделирование или объединение моделей и реализаций моделирования и связанных с ними данных точно представляют концептуальное описание и спецификации разработчика.
  • Проверка MS - это процесс определения степени, в которой модель, моделирование или объединение моделей и имитаций, а также связанные с ними данные являются точными представлениями реального мира с точки зрения предполагаемого использования.
  • - это формальное свидетельство того, что модель или имитация приемлемы для использования в конкретном цель.

В определении валидации модели и модели основное внимание уделяется точности, с которой модель и модель представляет предполагаемое использование в реальном мире. Определение степени точности модели и моделирования требуется, поскольку все модели и модели являются приближениями к реальности, и обычно очень важно определить, является ли степень приближения приемлемой для предполагаемого использования. Это контрастирует с проверкой программного обеспечения.

Классификация методов

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

Тестовые примеры

Тестовый пример - это инструмент, используемый в процессе. Тестовые примеры могут быть подготовлены для проверки программного обеспечения и проверки программного обеспечения, чтобы определить, был ли продукт построен в соответствии с требованиями пользователя. Другие методы, такие как обзоры, могут использоваться на ранних этапах жизненного цикла для обеспечения валидации программного обеспечения.

Независимая проверка и проверка

ISVV означает Независимая проверка и проверка программного обеспечения . ISVV нацелен на критичные к безопасности программные системы и нацелен на повышение качества программных продуктов, тем самым снижая риски и затраты на протяжении всего срока службы программного обеспечения. ISVV обеспечивает уверенность в том, что программное обеспечение работает с заданным уровнем уверенности, в рамках своих проектных параметров и определенных требований.

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

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

История ISVV

ISVV является производным от применения IVV (независимой проверки и подтверждения) в программном обеспечении. Раннее приложение ISVV (известное сегодня) восходит к началу 1970-х годов, когда США Армия спонсировала первую значительную программу, связанную с IVV для системы Safeguard Anti-Ballistic Missile.

К концу 1970-х годов IVV быстро стали популярными. Постоянное увеличение сложности, размера и важности программного обеспечения приводит к увеличению спроса на IVV, применяемые к программному обеспечению (ISVV).

Между тем, IVV (и ISVV для программных систем) консолидируются и теперь широко используются такими организациями, как Министерство обороны, FAA, NASA и ESA. IVV упоминается в [DO-178B], [ISO / IEC 12207] и формализовано в [IEEE 1012].

Первоначально в 2004-2005 годах европейский консорциум, возглавляемый Европейским космическим агентством, в состав которого входили DNV (N), Critical Software SA (P), Terma (DK) и CODA Scisys (Великобритания) разработала первую версию руководства, посвященного ISVV, под названием «ESA Guide for Independent Verification and Validation» при поддержке других организаций, например SoftWcare SL (E) () и т. Д.

В 2008 году Европейское космическое агентство выпустило вторую версию, поскольку SoftWcare SL была вспомогательным редактором, получив комментарии от многих различных заинтересованных сторон European Space ISVV. В этом руководстве описаны методологии, применимые ко всем этапам разработки программного обеспечения в том, что касается ISVV.

Методология ISVV

ISVV обычно состоит из пяти основных фаз, эти фазы могут выполняться последовательно или как результат процесса адаптации.

Планирование ISVV

  • Планирование действий ISVV
  • Анализ критичности системы: идентификация критических компонентов с помощью набора действий RAMS (соотношение цены и качества)
  • Выбор подходящих методов и инструментов

Проверка требований

  • Проверка: полноты, правильности, тестируемости

Проверка проекта

  • Адекватность проекта и соответствие требованиям к программному обеспечению и интерфейсам
  • Внутренняя и внешняя согласованность
  • Проверка технико-экономического обоснования и обслуживания

Проверка кода

  • Проверка: полноты, правильности, согласованности
  • Анализ показателей кода
  • Проверка соответствия стандартам кодирования

Проверка

  • Идентификация нестабильных компонентов / functions
  • Проверка, сфокусированная на обработке ошибок: дополнительная (не параллельная!) проверка, выполняемая командой разработчиков (больше за деньги, больше времени)
  • Соответствие программному обеспечению и системные требования
  • Черный ящик тестирование и тестирование белого ящика методы
  • методы, основанные на опыте
Нормативная среда

Верификация и валидация должны соответствовать требованиям регулируемых законодательством отраслей, а именно: часто руководствуется государственными учреждениями или промышленными административными органами. Например, FDA требует проверки версий программного обеспечения и исправлений.

См. Также
Примечания и ссылки
Внешние ссылки
Последняя правка сделана 2021-06-08 08:28:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте