Игорь Борисович Бурдонов Александр Сергеевич Косачев Теория верификации соответствия программ Институт Системного Программирования РАН RedVerst 1 Институт Системного Программирования РАН Группа RedVerst = REsearch and Development: VERification, Specification, Testing. Методология и технология верификации программ UniTesK 2 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst •Мы не будем рассказывать о: конкретных тестовых системах, инструментах, алгоритмах, языках спецификации, теориях тестирования и т.п. •О чём пойдёт речь? Идеи, лежащие в основе и общие для теории и практики тестирования соответствия. Проблемы: решённые, решаемые и нерешённые в теории и в практике. Методы решения: используемые, предлагаемые и предполагаемые в теории и в практике. 3 ИСП РАН RedVerst Сложность и надежность ПО •Размеры программ •107-108 строк кода •Сложность программ •Критичность программ •Безопасность •Материальные убытки 4 ИСП РАН RedVerst Что такое правильность? правильность реализации определяется в сравнении с эталоном (спецификацией) более общее определение: правильность = соответствие требованиям спецификация = описание требований требования функциональные 5 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst Что такое функциональность? функциональная спецификация отвечает на вопро с «ЧТО?», но не отвечает на вопрос «КАК?». С п е ц и ф и ка ц и я о п и с ы ва е т « фу н к ц и ю » , а н е а л г о р и т м в ы ч и с л е н и я фу н к ц и и . Р е а л и з а ц и я – н а о б о р о т . функциональность относительна: зависит от того, что для нас важно (ЧТО), а что – второстепенно (КАК). 6 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst Функциональность и взаимодействие Мы ограничимся такой функциональностью, когда всё «важное» относится к внешнему, н а бл ю д а ем ом у п о в ед е н и ю р е а л и з а ц и и . Реализация правильная, если она правильно взаимодействует с окружением. Реализация соответствует спецификации, если взаимодействие реализации с окружением «похоже» (соответствует) на взаимодействие спецификации с окружением. Становится возможным тестирование = проверка правильно сти в эксперименте, когда те ст подменяет собой окружение. 7 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst Формализация реализации, спецификации и соответствия: математическая модель математическая модель MModel модель спецификации известна – -исчисление задана спецификацией SSpecModel тестовая гипотеза (G. Bernot ): модель реализации м.б. IImpl Model неизвестна, но существует соответствие: rel ImplSpec 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 Формализация реализации, спецификации и соответствия: математическая модель математическая модель MModel модель спецификации известна – задана спецификацией SSpecModel тестовая гипотеза (G. Bernot ): модель реализации м.б. IImpl Model неизвестна, но существует соответствие: rel ImplSpec 15 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst Виды моделей •Алгебраические модели •Модальные логики •Сети Петри •Автоматные модели 16 ИСП РАН RedVerst Виды моделей Алгебраические модели •CCS •CSP •-исчисление •SPI-исчисление 17 ИСП РАН RedVerst Виды моделей Модальные логики •Временные логики •Логики специального назначения 18 ИСП РАН RedVerst Виды моделей Сети Петри 19 ИСП РАН RedVerst Виды моделей Автоматные модели •Конечные автоматы (автоматы Мили) •LTS – системы размеченных переходов •Расширенные конечные автоматы •Взаимодействующие конечные автоматы 20 ИСП РАН RedVerst Проблема извлечения модели Абстрагирование и факторизация •Имплицитные и эксплицитные спецификации •Извлечение спецификационной модели •Получение реализационной модели 21 ИСП РАН RedVerst продолжение следует... 22 Игорь Борисович Бурдонов & Александр Сергеевич Косачев ИСП РАН RedVerst