М.: Институт Системного Программирования РАН, 2008. – 111 с.
В данной работе представлен обзор методов верификации программного
обеспечения (ПО). Верификацией называется проверка соответствия
результатов отдельных этапов разработки программной системы
требованиям и ограничениям, сформулированным для них на предыдущих
этапах. Рассматривается контекст использования различных методов
контроля качества и, в частности, верификации в рамках жизненного
цикла ПО. Представлено содержание международных стандартов ISO и
IEEE, регулирующих проведение различных видов верификации при
разработке программ. Предлагается классификация известных методов
верификации, полученная обобщением сложившейся практики
позиционирования работ в этой области. В рамках предложенной
системы рассматриваются как зрелые и широко применяемые при
промышленной разработке методы верификации ПО, так и недавно
созданные и используемые пока только в рамках исследовательских
проектов. Обзор включает методы статического анализа программ,
методы проведения инспекций и экспертиз, техники анализа
архитектуры ПО, методы проверки моделей и дедуктивного анализа
корректности ПО, а также методы динамической верификации —
тестирование и верификационный мониторинг. Рассматриваются
инструменты поддержки верификации ПО.
Содержание:
Основные понятия.
Верификация и валидация.
Характеристики качества программного обеспечения.
Место верификации в жизненном цикле ПО.
Задачи верификации в рамках жизненного цикла ПО.
Верификация и другие процессы разработки и сопровождения ПО.
Верификация различных артефактов жизненного цикла ПО.
Международные стандарты, касающиеся верификации ПО.
Методы верификации программного обеспечения.
Экспертиза.
Оценка ПО по Фагану.
Другие виды общих экспертиз.
Специализированные методы экспертиз.
Методы анализа архитектуры ПО.
Статический анализ.
Формальные методы верификации.
Логико-алгебраические модели.
Исполнимые модели.
Модели промежуточного типа.
Классификация формальных методов.
Методы и инструменты дедуктивного анализа.
Методы и инструменты проверки моделей.
Методы и инструменты проверки согласованности.
Динамические методы верификации.
Мониторинг.
Тестирование.
Виды тестирования.
Критерии полноты тестирования.
Техники построения тестов.
Инструменты автоматизации тестирования.
Синтетические методы.
Тестирование на основе моделей.
Мониторинг формальных свойств ПО.
Статический анализ формальных свойств.
Синтетические методы генерации структурных тестов.
Основные понятия.
Верификация и валидация.
Характеристики качества программного обеспечения.
Место верификации в жизненном цикле ПО.
Задачи верификации в рамках жизненного цикла ПО.
Верификация и другие процессы разработки и сопровождения ПО.
Верификация различных артефактов жизненного цикла ПО.
Международные стандарты, касающиеся верификации ПО.
Методы верификации программного обеспечения.
Экспертиза.
Оценка ПО по Фагану.
Другие виды общих экспертиз.
Специализированные методы экспертиз.
Методы анализа архитектуры ПО.
Статический анализ.
Формальные методы верификации.
Логико-алгебраические модели.
Исполнимые модели.
Модели промежуточного типа.
Классификация формальных методов.
Методы и инструменты дедуктивного анализа.
Методы и инструменты проверки моделей.
Методы и инструменты проверки согласованности.
Динамические методы верификации.
Мониторинг.
Тестирование.
Виды тестирования.
Критерии полноты тестирования.
Техники построения тестов.
Инструменты автоматизации тестирования.
Синтетические методы.
Тестирование на основе моделей.
Мониторинг формальных свойств ПО.
Статический анализ формальных свойств.
Синтетические методы генерации структурных тестов.