Проверка программного обеспечения - Software verification
Верификация программного обеспечения - это дисциплина программной инженерии , цель которой - убедиться, что программное обеспечение полностью удовлетворяет всем ожидаемым требованиям.
Широкая сфера применения и классификация
Широкое определение верификации эквивалентно тестированию программного обеспечения . В этом случае есть два основных подхода к верификации:
- Динамическая проверка , также известная как экспериментирование , динамическое тестирование или просто тестирование. - Это хорошо для поиска неисправностей ( ошибок программного обеспечения ).
- Статическая проверка , также известная как анализ или статическое тестирование - это полезно для доказательства правильности программы. Хотя это может привести к ложным срабатываниям, когда есть один или несколько конфликтов между процессом, который действительно выполняет программное обеспечение, и тем, что предполагает статическая проверка.
Динамическая проверка (Тест, экспериментирование)
Динамическая проверка выполняется во время выполнения программного обеспечения и динамически проверяет его поведение; это обычно известно как фаза тестирования . Проверка - это процесс проверки. В зависимости от объема тестов мы можем разделить их на три группы:
- Тест в малом : тест, который проверяет одну функцию или класс ( модульный тест )
-
Тест в целом : тест, который проверяет группу классов, например
- Тест модуля (отдельный модуль)
- Интеграционный тест (более одного модуля)
- Системный тест (вся система)
-
Приемочный тест : формальный тест, определенный для проверки критериев приемки программного обеспечения.
- Функциональный тест
- Нефункциональный тест (работоспособность, стресс-тест )
Целью динамической проверки программного обеспечения является обнаружение ошибок, вызванных деятельностью (например, наличие медицинского программного обеспечения для анализа биохимических данных); или повторяющимся выполнением одного или нескольких действий (например, стресс-тест для веб-сервера, т. е. проверка того, является ли текущий результат действия таким же правильным, как и в начале действия).
Статическая проверка (анализ)
Статическая проверка - это процесс проверки соответствия программного обеспечения требованиям путем проверки кода перед его запуском. Например:
- Проверка кодовых соглашений
- Обнаружение плохих практик ( анти-шаблонов )
- Расчет метрик программного обеспечения
- Формальная проверка
Проверка посредством анализа - Метод проверки анализа применяется к проверке посредством расследования, математических расчетов, логической оценки и расчетов с использованием классических методов из учебников или общепринятых компьютерных методов. Анализ включает в себя отбор образцов и сопоставление измеренных данных и наблюдаемых результатов испытаний с рассчитанными ожидаемыми значениями для установления соответствия требованиям.
Узкий охват
При более строгом определении верификация эквивалентна только статическому тестированию и предназначена для применения к артефактам. И проверка (всего программного продукта) будет эквивалентна динамическому тестированию и предназначена для применения к работающему программному продукту (а не к его артефактам, за исключением требований). Обратите внимание, что проверка требований может выполняться статически и динамически (см. Проверка артефактов ).
Сравнение с валидацией
Проверку программного обеспечения часто путают с проверкой программного обеспечения. Разница между верификацией и валидацией :
- При проверке программного обеспечения задается вопрос: «Правильно ли мы создаем продукт?»; то есть соответствует ли программное обеспечение его спецификациям? (Как дом соответствует его чертежам.)
- При валидации программного обеспечения задается вопрос: «Создаем ли мы правильный продукт?»; то есть выполняет ли программа то, что на самом деле требуется пользователю? (Поскольку дом соответствует тому, что нужно и чего хочет хозяин.)
Смотрите также
Рекомендации
- IEEE : SWEBOK: Путеводитель по своду знаний в области программной инженерии
- Карло Геззи , Мехди Джазаери , Дино Мандриоли : основы разработки программного обеспечения , Prentice Hall, ISBN 0-13-099183-X
- Алан Л. Брейтлер : Процедура проверки программного обеспечения, полученного из искусственных нейронных сетей , Журнал Международной ассоциации тестирования и оценки, январь 2004 г., том 25, № 4.
- Виджей Д'Сильва , Даниэль Кроенинг , Георг Вайссенбахер: Обзор автоматизированных методов формальной проверки программного обеспечения . IEEE Trans. по САПР интегральных схем и систем 27 (7): 1165-1178 (2008)