Тестирование на основе моделей: теория, инструменты, применения Группа спецификации, верификации и тестирования ИСП РАН 2004.

Презентация:



Advertisements
Похожие презентации
Тестирование на основе моделей: теория, инструменты, применения В. Кулямин, А. Петренко.
Advertisements

UniTesK технология тестирования ПО Е. Бритвина, Н. Казакова, В. Кулямин, А. Петренко.
Технологии тестирования ИСП РАН В. Кулямин
Технологии тестирования ИСП РАН В. Кулямин
Расширение технологии UniTESK средствами генерации структурных тестов Дмитрий Воробьев
Методы автоматизации тестирования Лекция 2. Архитектура теста в UniTesK Генератор тестовой последовательности Оракул Медиатор на целевом языке Целевая.
Технологии разработки программного обеспечения Исследования Института системного программирования РАН к.ф.-м.н В.В.Кулямин.
Назначение CTesK. Архитектура теста в CTesK. Тестовая система Тестовая система Тестирование Целевая система Результаты тестирования результаты воздействия.
Автоматизация тестирования. План 1.Применение автоматизированного тестирования 2.Выбор инструментария 3.Процесс автоматизации (IBM Rational) GUI тестирование.
Динамическая проверка HDL-описаний на основе исполнимых моделей Александр Камкин, Михаил Чупилко Институт системного программирования.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Динамическая верификация цифровой аппаратуры на основе формальных спецификаций Чупилко Михаил Михайлович Научный руководитель проф., д.ф.-м.н. Петренко.
Институт системного программирования РАН Автоматическая генерация базовых тестов для программных интерфейсов библиотек на основе заголовочных файлов Владимир.
Формальные спецификации программ А.К.Петренко МГУ ВМиК, ИСП РАН, ИПМ РАН, член IEEE CS.
Калугин Александр, PhD, PMP Mercury Development Project Director.
SOFTWARE DEVELOPMENT PODGOTOVIL TVOU ZHOPY K SDACHE.
Жизненный цикл программного обеспечения Лекция 4.
Team System - фреймворк для автоматизации тестирования от Microsoft Футорняк Елена Apriorit Сообщество Тестировщиков Днепропетровска 29/09/2011.
ЛЕКЦИЯ 29. Курс: Проектирование систем: Структурный подход Каф. Коммуникационные сети и системы, Факультет радиотехники и кибернетики Московский физико-технический.
Стек, очередь, дек1 Структуры и алгоритмы обработки данных, 1 Лекция 4 Линейные СД Стек, очередь, дек.
Транксрипт:

Тестирование на основе моделей: теория, инструменты, применения Группа спецификации, верификации и тестирования ИСП РАН 2004

Формирование группы Совместный проект ИСП и Nortel Networks Разработка набора функциональных тестов для ядра операционной системы цифровой АТС 1994 – 1996

Результаты первого проекта Разработана технология KVEST автоматизированного построения тестов на основе формальных спецификаций Язык спецификаций – RSL, язык реализации – Protel Разработаны инструменты, поддерживащие KVEST Разработаны формальные спецификации ядра ОС ~60 тыс. строк Разработаны дополнительные компоненты тестов ~100 тыс. строк Сравнение: Код целевой системы ~250 тыс. строк Сгенерированный тестовый набор ~850 тыс. строк Найдено 230 ошибок Из них около 20 приводит к «холодной перезагрузке» ОС

Проблемы тестирования Тестирование призвано измерять качество целевого ПО Как быть с качеством тестов? Проверка соответствия требованиям «Достаточная» представительность Ошибки и «возможные» ошибки Покрытие элементов кода Покрытие требований Нужна модель требований

KVEST: решения Контрактные спецификации: Предусловия и постусловия операций Инварианты типов данных Критерий качества тестирования – покрытие спецификаций Построение конечного автомата по спецификации и заданному уровню покрытия Построение теста во время выполнения – обход конечного автомата Повышение уровня абстракции при разработке тестов

Контрактные спецификации Предусловие описывает область определения операции sqrt(x) pre x 0 Постусловие описывает ограничения на правильные результаты операции sqrt(x) post result*result = x Инвариант типа описывает условия целостности его данных Triangle x,y,z : x+yz & x+zy & y+zx

Целевая система Тестовые оракулы Тестовый оракул Формальные спецификации Тестовые воздействия ?

Виды спецификаций Контрактные Исполнимые Аксиоматические Сценарные Близки к требованиям Абстрактны или конкретны по выбору Удобны для построения оракулов Плохи для построения тестовых последовательностей Часто далеки от требований Обычно слишком конкретны Не вполне удобны для построения оракулов Удобны для построения тестовых последовательностей Далеки от требований Обычно слишком абстрактны Не вполне удобны для построения оракулов Неудобны для построения тестовых последовательностей Близки к требованиям Абстрактны или конкретны по выбору Не вполне удобны для построения оракулов Неудобны для построения тестовых последовательностей

Критерии покрытия Качество тестирования измеряется степенью покрытия тестируемой системы Покрытие спецификаций близко к покрытию требований /* Контроллер лифта */ if Inner_up Outer_up then // двигаться вверх else if Inner_down Outer_down then // двигаться вниз else // стоять на месте

Построение конечного автомата состояния параметрыобласть определения операции цели покрытия

Выполнение теста I Вычисление одного тестового воздействия текущее состояние параметры состояния Был разработан инструмент, автоматически вычисляющий параметры в случае линейных условий

Выполнение теста II 123 Построение тестовой последовательности

Повышение уровня абстракции Целевая система Спецификации – модель поведения Модель теста Критерий покрытия Медиатор

Факторизация автомата

Неявное представление автомата

KVEST: архитектура теста Целевая система Спецификации на RSL Медиаторы на ЯР Скрипт-драйвер на RSL Оракулы на RSL Шаблон скрипт- драйвера Скрипт-драйвер на ЯР Оракулы на ЯР Вставки в шаблон

Другие проекты до 2000 года I Тестирование разных версий ядра ОС АТС Спецификация и тестирование системы настройки телекоммуникационных сервисов базового уровня Перепроектирование подсистемы управления очередями сообщений в ОС АТС Разработка методики автоматизированной генерации документации на естественном языке из спецификаций 1996 –

Другие проекты до 2000 года II Разработка технологии KVEST2 Спецификация и тестирование системы управления очередями сообщений в контроллере смарт-карт Спецификация и тестирование системы управления шлюзом IP-телефонии Разработка технологии ко- верификационной разработки ПО Спецификация и тестирование системы поддержки распеределенных сервисов – – 2000

Недостатки KVEST Несколько языков Трудности построения связи между спецификациями и реализацией Недостаточная структурированность теста Трудности обучения и внедрения

UniTesK Один язык Спецификации и другие компоненты тестов разрабатываются на расширении целевого языка Лучшая структуризация тестов Интеграция с привычными средами разработки

UniTesK: архитектура теста Целевая система Спецификации Медиаторы Медиаторы на ЯР Обходчик Итератор тестовых воздействий Оракулы на ЯР Сценарий

Целевая система UniTesK: разработка тестов Разработка спецификаций Критерии качества Требования Выделение интерфейса Разработка сценариев Разработка медиаторов Выполнение тестов Спецификации Тестовые сценарии Медиаторы Тестовые отчеты Проетные документы Анализ результатов

Параллелизм: модели поведения Асинхронность и распределенность Модели – асинхронные автоматы ?a !x !y !z ?b B : X* P ( R* ) a i { x i } B : X* P ( R* ) a i { y j x k …x l y n : k+…+l = i } ?a !x!y ?e?a !x!y

Распределенность ?a ?{a,b} ?b ?{a,a} ?{b,b} ?{a,a,a} ?{a,a,b} Как моделировать реакции на все возможные комбинации входов? Аксиома простого параллелизма : Реакция на несколько одновременных входов совпадает с реакцией на некоторую их последовательность

Целевая система Генерация тестовых входов s 11 s 21 s 31 s 12 s 32 s 13 s 22 s 23 s 14 s 24 s 33 Вместо тестовой последовательности используется набор последовательностей

Целевая система Сбор реакций Реакции образуют частично упорядоченное множество r 33 r 32 r 12 r 23 r 22 r 11 r 21 r 31 время

Проверка корректности поведения стимулыреакции Аксиома простого параллелизма

Текущее состяние Стационарное тестирование Выполняем (мульти)последовательность и ждем, пока система не «успокоится» Покрытие стимулов и производные Гарантировать покрытие нестационарных состояний нельзя – требуются новые гипотезы

Тестирование компиляторов Спецификации языка Набор базовых блоков модели Тестовые программы Итератор комбинаций Привязка базовых блоков if(…)…else … for(…;…;…)

Проверка корректности оптимизации Тестовое воздействие Компилятор Оптимизатор Компилятор == ?

Поддержка UniTesK – 2002 Java / NetBeans, Eclipse (план) CTesK2000 – 2001 C / Visual Studio 6.0, gcc Link2002 – 2003 Java / NetBeans – 2003 C# / Visual Studio.NET 7.1 OTK2002 – 2003 Инструмент построения тестов для компиляторов

Применения UniTesK Реализации IPv Microsoft Research Мобильный IPv6 (в Windows CE 4.1) Октет Компиляторы Intel Инструменты поддержки UniTesK Пилотные проекты ГосНИИАС Банковская система ведения данных о клиентах Библиотека классов для разработки приложений уровня предприятия Биллинговая система

Участие в обучении МГУ Курс «Формальные спецификации программ» Спецкурс «Методы автоматизации тестирования» Спецсеминар «Верификация и валидация ПО» МФТИ Курс «Языки формальных спецификаций» Спецсеминар «Верификация и валидация ПО» Тренинги по UniTesK Ланит-Терком, Россия Университет Саарланда, Германия Systematic Software Engineering, Дания Luxoft, Россия

Состав группы

Контакты Сайт группы Сайт проектов UniTesK Электронный адрес

Литература I. Burdonov, A. Kossatchev, A. Petrenko, H. Wong. Overview of the Kernel Verification project. BNR Reports, 1997 И. Б. Бурдонов, А. В. Демаков, А. С. Косачев, А. В. Максимов, А. К. Петренко. Формальные спецификации в технологиях обратной инженерии и верификации программ. Труды ИСП, т.1, 1999, стр I. Bourdonov, A. Kossatchev, A. Petrenko, D. Galter. KVEST: Automated Generation of Test Suites from Formal Specifications. Proc. FM99, LNCS 1708, Springer-Verlag, 1999, pp И. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Использование конечных автоматов для тестирования программ. Программирование, т. 26,. 2, 2000, стр A. K. Petrenko, I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin. Experiences in using testing tools and technology in real-life applications. Proc. SETT2001, Pune, India, 2001 A.Petrenko. Specification Based Testing: Towards Practice. Proc. PSI2001, LNCS 2244, 2001 I. Bourdonov, A. Kossatchev, V. Kuliamin, A. Petrenko. UniTesK Test Suite Architecture. Proc. FME 2002, LNCS 2391, pp , Springer-Verlag, 2002 И.Б.Бурдонов, А.С.Косачев, В.В.Кулямин. Асинхронные автоматы: классификация и тестирование. Труды ИСП РАН, т. 4, 2003, стр V. Kuliamin, A. Petrenko, N. Pakoulin, A. Kossatchev, I. Bourdonov. Integration of Functional and Timed Testing of Real-time and Concurrent Systems. Proc. PSI2003. A. Kossatchev, A. Petrenko, S. Zelenov, S. Zelenova. Using Model-Based Approach for Automated Testing of Optimizing Compilers. Proc. Intl. Workshop on Program Undestanding, Gorno-Altaisk, 2003 В.В.Кулямин, А.К.Петренко, А.С.Косачев, И.Б.Бурдонов. Подход UniTesK к разработке тестов. Программирование, т. 29, 6, 2003, стр

Спасибо за внимание