06e17c76d317a14218ba7cb2e9dbd1d0.ppt
- Количество слайдов: 28
Тестирование на основе моделей: теория, инструменты, применения В. Кулямин, А. Петренко
Тестирование и современное ПО Тестирование призвано измерять качество целевого ПО на основе мониторинга его работы в различных ситуациях n Современное ПО отличается повышенной сложностью n
Тестирование на основе моделей Исчерпывающее тестирование на практике невозможно n Но возможно строить тесты систематически – на основе некоторой «системы» n Эта система задается при помощи модели или спецификации n
Откуда брать модели? Тесты должны быть качественны n Проверка соответствия требованиям n «Достаточная» представительность ¨ Ошибки и «возможные» ошибки ¨ Покрытие элементов кода ¨ Покрытие элементов требований Модель ошибок Модель покрытия
Решения Uni. Tes. K n n n Контрактные спецификации: Предусловия и постусловия операций Инварианты типов данных Критерий качества тестирования – покрытие спецификаций Построение конечного автомата по спецификации и заданному уровню покрытия Построение теста во время выполнения – обход конечного автомата Повышение уровня абстракции при разработке тестов
Контрактные спецификации n n n Предусловие описывает область определения операции sqrt(x) pre x ≥ 0 Постусловие описывает ограничения на правильные результаты операции sqrt(x) post result*result = x Инвариант типа описывает условия целостности его данных Triangle x, y, z : x+y ≥ z & x+z ≥ y & y+z ≥ x
Тестовые оракулы Тестовые воздействия Модель (спецификации) Целевая система Тестовый оракул ?
Критерии покрытия n Качество тестирования измеряется степенью покрытия тестируемой системы n Покрытие спецификаций близко к покрытию требований /* Контроллер лифта */ if Inner_up Outer_up then // двигаться вверх else if Inner_down Outer_down then // двигаться вниз else // стоять на месте
Построение конечного автомата параметры область определения операции 2 3 цели покрытия 1 состояния
Выполнение теста I Вычисление одного тестового воздействия параметры Разработан инструмент, автоматически вычисляющий параметры в случае линейных условий 2 3 1 состояния текущее состояние
Выполнение теста II Построение тестовой последовательности 1 2 3
Повышение уровня абстракции Критерий покрытия Целевая система Спецификации – модель поведения Медиатор Модель теста
Факторизация автомата
Неявное представление автомата
Практическая нацеленность Спецификации и другие компоненты тестов разрабатываются на расширении целевого языка n Интеграция с привычными средами разработки n
Применения Uni. Tes. K n Реализации IPv 6 ¨ ¨ ¨ n n n - 2001 -2003 Microsoft Research Мобильный IPv 6 (в Windows CE 4. 1) Октет Компиляторы Intel Стардарт AVS Пилотные проекты - 2001 -2003 - 2004 -… - 2003 Гос. НИИАС Банковская система ведения данных о клиентах Библиотека классов для разработки приложений уровня предприятия ¨ Биллинговая система ¨ Tiny OS ¨ ¨ ¨
Параллелизм: модели поведения Асинхронность и распределенность n Модели – асинхронные автоматы n !x ? a B : X* → P (R*) ai ↦ { xi } !y ? e !x ? b !y !z ? a !x !y B : X* → P (R*) ai ↦ { yjxk…xlyn : k+…+l = i }
Распределенность ? a ? {a, b} ? b ? {a, a} ? {b, b} ? {a, a, a} ? {a, a, b} Как моделировать реакции на все возможные комбинации входов? Аксиома простого параллелизма : Реакция на несколько одновременных входов совпадает с реакцией на некоторую их последовательность
Генерация тестовых входов s 14 s 24 s 33 s 13 s 23 s 12 s 22 s 11 s 21 s 32 Целевая система s 31 Вместо тестовой последовательности используется набор последовательностей
Сбор реакций 11 r 11 Целевая система r 21 21 31 r 12 r 22 12 r 23 22 32 23 r 31 r 32 r 33 33 время Реакции образуют частично упорядоченное множество
Проверка корректности поведения стимулы реакции Аксиома простого параллелизма ✕
Тестирование компиляторов Спецификации языка Набор базовых блоков модели Итератор комбинаций Привязка базовых блоков Тестовые программы if(…)…else … for(…; …; …)
Обучение Uni. Tes. K n Проведенные тренинги ¨ Ланит-Терком, Россия ¨ Университет Саарланда, Германия ¨ Systematic Software Engineering, Дания ¨ Luxoft, Россия ¨ Intel, Россия
Контакты Сайт группы http: //www. ispras. ru/groups/rv/rv. html n Сайт проектов Uni. Tes. K http: //www. unitesk. com n Электронный адрес petrenko@ispras. ru n
Литература n n n I. Burdonov, A. Kossatchev, A. Petrenko, H. Wong. Overview of the Kernel Verification project. BNR Reports, 1997 И. Б. Бурдонов, А. В. Демаков, А. С. Косачев, А. В. Максимов, А. К. Петренко. Формальные спецификации в технологиях обратной инженерии и верификации программ. Труды ИСП, т. 1, 1999, стр. 35 -47 I. Bourdonov, A. Kossatchev, A. Petrenko, D. Galter. KVEST: Automated Generation of Test Suites from Formal Specifications. Proc. FM’ 99, LNCS 1708, Springer-Verlag, 1999, pp. 608 -621 И. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Использование конечных автоматов для тестирования программ. Программирование, т. 26, №. 2, 2000, стр. 61 -73 A. K. Petrenko, I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin. Experiences in using testing tools and technology in real-life applications. Proc. SETT’ 2001, Pune, India, 2001 A. Petrenko. Specification Based Testing: Towards Practice. Proc. PSI’ 2001, LNCS 2244, 2001 I. Bourdonov, A. Kossatchev, V. Kuliamin, A. Petrenko. Uni. Tes. K Test Suite Architecture. Proc. FME 2002, LNCS 2391, pp. 77 -88, Springer-Verlag, 2002 И. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Асинхронные автоматы: классификация и тестирование. Труды ИСП РАН, т. 4, 2003, стр. 7 -84 V. Kuliamin, A. Petrenko, N. Pakoulin, A. Kossatchev, I. Bourdonov. Integration of Functional and Timed Testing of Real-time and Concurrent Systems. Proc. PSI’ 2003. A. Kossatchev, A. Petrenko, S. Zelenova. Using Model-Based Approach for Automated Testing of Optimizing Compilers. Proc. Intl. Workshop on Program Undestanding, Gorno-Altaisk, 2003 В. В. Кулямин, А. К. Петренко, А. С. Косачев, И. Б. Бурдонов. Подход Uni. Tes. K к разработке тестов. Программирование, т. 29, № 6, 2003, стр. 25 -43
Спасибо за внимание