Теория верификации соответствия программ Игорь Борисович Бурдонов Александр Сергеевич Косачев

advertisement
Игорь Борисович Бурдонов
Александр Сергеевич Косачев
Теория верификации
соответствия программ
Институт Системного Программирования РАН
RedVerst
1
Институт Системного
Программирования РАН
Группа RedVerst =
REsearch and Development:
VERification, Specification, Testing.
Методология и технология
верификации программ UniTesK
2
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
•Мы не будем рассказывать о:
конкретных тестовых системах, инструментах,
алгоритмах, языках спецификации, теориях
тестирования и т.п.
•О чём пойдёт речь?
Идеи, лежащие в основе и общие для теории и
практики тестирования соответствия.
Проблемы: решённые, решаемые и нерешённые в
теории и в практике.
Методы решения: используемые, предлагаемые и
предполагаемые в теории и в практике.
3
ИСП РАН
RedVerst
Сложность и надежность ПО
•Размеры программ
•107-108 строк кода
•Сложность программ
•Критичность программ
•Безопасность
•Материальные убытки
4
ИСП РАН
RedVerst
Что такое правильность?
правильность реализации определяется
в сравнении с эталоном (спецификацией)
более общее определение:
правильность = соответствие требованиям
спецификация = описание требований
требования функциональные
5
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Что такое функциональность?
функциональная спецификация
отвечает на вопро с «ЧТО?»,
но не отвечает на вопрос «КАК?».
С п е ц и ф и ка ц и я о п и с ы ва е т « фу н к ц и ю » ,
а н е а л г о р и т м в ы ч и с л е н и я фу н к ц и и .
Р е а л и з а ц и я – н а о б о р о т .
функциональность относительна: зависит от
того, что для нас важно (ЧТО),
а что – второстепенно (КАК).
6
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Функциональность и взаимодействие
Мы ограничимся такой функциональностью,
когда всё «важное» относится к внешнему,
н а бл ю д а ем ом у п о в ед е н и ю р е а л и з а ц и и .
Реализация правильная, если она правильно
взаимодействует с окружением.
Реализация соответствует спецификации, если
взаимодействие реализации с окружением
«похоже» (соответствует) на взаимодействие
спецификации с окружением.
Становится возможным тестирование =
проверка правильно сти в эксперименте,
когда те ст подменяет собой окружение.
7
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Формализация реализации,
спецификации и соответствия:
математическая модель
математическая модель
MModel
модель спецификации известна –
-исчисление
задана спецификацией
SSpecModel
тестовая гипотеза (G. Bernot ):
модель реализации м.б.
IImpl
Model
неизвестна, но существует
соответствие:
rel  ImplSpec
8
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Валидация и верификация
Валидация
"establishing by objective evidence that all software requirements have been
implemented correctly and completely and are traceable to system
requirements" [Ref: NIST 500-234]. Software validation is essentially a
design verification function as defined in FDA's Quality System Regulation
(21 CFR 820.3 and 820.30) and includes all of the verification and testing
activities conducted throughout the software life cycle.
Верификация
Verification is defined in FDA's Quality System Regulation (21 CFR 820.3)
as "confirmation by examination and provision of objective evidence that
specified requirements have been fulfilled." In a software development
environment, software verification is confirmation that the output of a
particular phase of development meets all of the input requirements for that
phase.
9
ИСП РАН
RedVerst
Статическая верификация
•Верификация «по построению»
•Доказательство правильности
•Проверка модели (Model-checking)
10
ИСП РАН
RedVerst
Статическая верификация
Верификация «по построению»
Генерация реализации из спецификаций
•Спецификационные языки
•Проблемно-ориентированные языки
•Спецификационные языки общего
применения
•Проблемы генерации
•Правильность генерации
•Неоптимальность кода
11
ИСП РАН
RedVerst
Статическая верификация
Доказательство правильности
•Уровни абстракции
•Доказательство сохранения свойств
при переходе от уровня к уровню
•Доказательство соответствия
12
ИСП РАН
RedVerst
Статическая верификация
Проверка модели
Исходная информация:
Есть модель реализации + требования.
Модель - граф переходов.
Требования:
В виде формул временной логики;
(Не)достижимость определенных состояний.
Полный обход графа.
13
ИСП РАН
RedVerst
Динамическая верификация
Тестирование
•Проблема оракула
•Проблема достаточного количества
испытаний
Прогон инструментированного кода
14
ИСП РАН
RedVerst
Формализация реализации,
спецификации и соответствия:
математическая модель
математическая модель
MModel
модель спецификации известна –
задана спецификацией
SSpecModel
тестовая гипотеза (G. Bernot ):
модель реализации м.б.
IImpl
Model
неизвестна, но существует
соответствие:
rel  ImplSpec
15
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Виды моделей
•Алгебраические модели
•Модальные логики
•Сети Петри
•Автоматные модели
16
ИСП РАН
RedVerst
Виды моделей
Алгебраические модели
•CCS
•CSP
•-исчисление
•SPI-исчисление
17
ИСП РАН
RedVerst
Виды моделей
Модальные логики
•Временные логики
•Логики специального назначения
18
ИСП РАН
RedVerst
Виды моделей
Сети Петри
19
ИСП РАН
RedVerst
Виды моделей
Автоматные модели
•Конечные автоматы (автоматы
Мили)
•LTS – системы размеченных
переходов
•Расширенные конечные автоматы
•Взаимодействующие конечные
автоматы
20
ИСП РАН
RedVerst
Проблема извлечения модели
Абстрагирование и факторизация
•Имплицитные и эксплицитные
спецификации
•Извлечение спецификационной
модели
•Получение реализационной модели
21
ИСП РАН
RedVerst
продолжение следует...
22
Игорь Борисович Бурдонов & Александр Сергеевич Косачев
ИСП РАН
RedVerst
Download