UniTesK технология тестирования ПО Е. Бритвина, Н. Казакова, В. Кулямин, А. Петренко.

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



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

Тестирование на основе моделей: теория, инструменты, применения Группа спецификации, верификации и тестирования ИСП РАН 2004.
Технологии тестирования ИСП РАН В. Кулямин
Технологии тестирования ИСП РАН В. Кулямин
Методы автоматизации тестирования Лекция 2. Архитектура теста в UniTesK Генератор тестовой последовательности Оракул Медиатор на целевом языке Целевая.
Расширение технологии UniTESK средствами генерации структурных тестов Дмитрий Воробьев
Тестирование функциональности, не зависящей от истории взаимодействия системы с окружением Занятие 3.
Технологии разработки программного обеспечения Исследования Института системного программирования РАН к.ф.-м.н В.В.Кулямин.
Институт системного программирования РАН Автоматическая генерация базовых тестов для программных интерфейсов библиотек на основе заголовочных файлов Владимир.
Назначение CTesK. Архитектура теста в CTesK. Тестовая система Тестовая система Тестирование Целевая система Результаты тестирования результаты воздействия.
UniMod 1 UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний Вадим Гуров eVelopers Corp.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Корректность программ Классические и современные подходы В. В. Кулямин Институт системного программирования РАН.
Динамическая верификация цифровой аппаратуры на основе формальных спецификаций Чупилко Михаил Михайлович Научный руководитель проф., д.ф.-м.н. Петренко.
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
Автоматическое построение тестов для аппаратного обеспечения с использованием разрешения ограничений проф. А.Петренко, Е.Корныхин.
Итерация по покрытиям. Нацеленная итерация Одно обобщённое воздействие на каждый элемент некоторого покрытия. Элементы покрытия перебираются по порядку.
Исследование и разработка методов генерации тестовых программ для проверки модулей управления памяти микропроцессоров Корныхин Евгений науч.рук-ль: проф.каф.СП,
Проблемы обеспечения корректности программ и аппаратуры Институт системного программирования Российской академии наук Камкин Александр.
Генерация оптимизированных для ручного выполнения сценариев тестирования приложений с графическим интерфейсом пользователя А.В.Баранцев, С.Г.Грошев, В.А.Омельченко.
Транксрипт:

UniTesK технология тестирования ПО Е. Бритвина, Н. Казакова, В. Кулямин, А. Петренко

Что такое тестирование? Тестирование – это поиск ошибок Как искать ошибки? Как их распознавать? Когда прекращать их искать?

Как искать ошибки? Выполняя тестируемую программу в разных ситуациях Целевая система Тестовые воздействия ? Когда прекращать? Когда разные ситуации кончатся

Как распознавать ошибки? Ошибка – различие между тем, что программа делает, и тем, что она должна делать То, что должно делаться, оформляем в виде спецификаций или модели По модели автоматически строим тестовый оракул – программу, которая без участия человека определит, была ошибка или нет

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

Контрактные спецификации specification double sqrt(double x) { pre { return x >= 0; } post { return sqrt*sqrt == x; } } invariant Triangle() { return x + y >= z && x + z >= y && y + z >= x; }

Что такое «разные ситуации»? Можно считать все ситуации разными исчерпывающее тестирование случайное тестирование Можно считать разными ситуации, при которых в программе выполняются разные строки кода структурное тестирование Мы считаем разными ситуации, отвечающие разным видам поведения, описанным в модели

Выделение ситуаций specification double sqrt(double x) { pre { return x >= 0; } post { if(x == 0) { return sqrt == 0; } else { return sqrt > 0 && abs((sqrt*sqrt – x)/x) < epsilon; }

Построение тестов На основе выделенных ситуаций определяем тестовый сценарий Структура состояния системы Набор воздействий, которые можно оказывать в состоянии общего вида

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

Пример сценария scenario class TestScenario { Model model = new Model(new Impl()); object State() { return new IntState(model.a.number()); } scenario method1() { model.method1(); } scenario method2() { iterate(int i = 0; i < MAX; i++) model.method2(i); } static void main() { … } }

Решения Модели – контрактные спецификации на расширениях языков программирования (C, C#, Java) Различие между ситуациями определяется ветвями или дизъюнктами постусловия По требуемому покрытию строим сценарий (неявно описывает конечный автомат) В ходе теста на основе сценария генерируется последовательность тестовых воздействий

Демонстрация инструмента

Картина в целом Тестируемая система Модель поведенияСценарий Модель покрытия Генерация воздействийПроверка воздействия

Возможности Тестирование параллелизма и асинхронно работающих потоков/процессов Тестирование компиляторов и любых программ, работающих со сложно структурированными данными Адаптеры для привязки спецификаций к меняющимся интерфейсам – переиспользование тестов Возможности переиспользования спецификаций и сценариев

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

Контакты Сайт группы Сайт проектов 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, стр

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