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

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

Широкая сфера применения и классификация

Широкое определение верификации эквивалентно тестированию программного обеспечения . В этом случае есть два основных подхода к верификации:

Динамическая проверка (Тест, экспериментирование)

Динамическая проверка выполняется во время выполнения программного обеспечения и динамически проверяет его поведение; это обычно известно как фаза тестирования . Проверка - это процесс проверки. В зависимости от объема тестов мы можем разделить их на три группы:

  • Тест в малом : тест, который проверяет одну функцию или класс ( модульный тест )
  • Тест в целом : тест, который проверяет группу классов, например
  • Приемочный тест : формальный тест, определенный для проверки критериев приемки программного обеспечения.
    • Функциональный тест
    • Нефункциональный тест (работоспособность, стресс-тест )

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

Статическая проверка (анализ)

Статическая проверка - это процесс проверки соответствия программного обеспечения требованиям путем проверки кода перед его запуском. Например:

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

Узкий охват

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

Сравнение с валидацией

Проверку программного обеспечения часто путают с проверкой программного обеспечения. Разница между верификацией и валидацией :

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

Смотрите также

Рекомендации

  • IEEE : SWEBOK: Путеводитель по своду знаний в области программной инженерии
  • Карло Геззи , Мехди Джазаери , Дино Мандриоли : основы разработки программного обеспечения , Prentice Hall, ISBN   0-13-099183-X
  • Алан Л. Брейтлер : Процедура проверки программного обеспечения, полученного из искусственных нейронных сетей , Журнал Международной ассоциации тестирования и оценки, январь 2004 г., том 25, № 4.
  • Виджей Д'Сильва , Даниэль Кроенинг , Георг Вайссенбахер: Обзор автоматизированных методов формальной проверки программного обеспечения . IEEE Trans. по САПР интегральных схем и систем 27 (7): 1165-1178 (2008)