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