Применение генетических алгоритмов к генерации тестов для автоматных программ Законов Андрей Юрьевич Научный руководитель: Степанов Олег Георгиевич, к.т.н.,

Slides:



Advertisements
Similar presentations
Выпускная квалификационная работа на тему: «Применение интернет-технологий как фактор повышения эффективности функционирования организации (на примере.
Advertisements

Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Схема распределения грантов городам-участникам программы Тасис (TCAS) Экологические гранты для муниципалитетов.
Поиск оптимального набора параметров оптимизаций компилятора Брусенцов Леонид Евгеньевич студент 4 курса ФИТ НГУ Руководители:Илья.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Разработка и внедрение объектно-ориентированной библиотеки для автоматизации тестирования Кафедра системного программирования Студент: Олейник А.Л. 544.
Системы с наследованием. Если систему можно представить в виде : Где - непрерывные функции, то такая система называется системой с наследованием. Математическое.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Автоматизированная поддержка пользовательской документации Web-приложений, разрабатываемых в среде WebRatio Студент: Дорохов Вадим, 544 гр. Научный руководитель:
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
 Максимум информации, которую мы можем получить из современных сайтов кулинарных рецептов, это список ингредиентов и руководство по приготовлению  Но.
Астащенко Александр, 445 группа Научный руководитель: В.Г.Шистеров.
Разработка информационной системы накопительной программы лояльности для мобильных устройств Автор: Дьяченко Василий Владимирович мат-мех, 545 группа Научный.
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
Неотрицательное решение задачи Коши. Нередко постановка задачи требует чтобы фазовые переменные принимали лишь неотрицательные значения. Так, в физических.
«АЛЬФА Системс» г. Пенза, ул. Гагарина, 16, офис 112 Как удобство сайта влияет на продажи? Удобство для покупателя - залог.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Я.А. Кириленко.
О ПЫТ ОРГАНИЗАЦИИ КОНТРОЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ И КАЧЕСТВА ОБУЧЕНИЯ НА БАЗЕ ЦЕНТРА ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ Ю ЖНОГО ФЕДЕРАЛЬНОГО УНИВЕРСИТЕТА.
Миллер Дмитрий, 545 группа Научный руководитель: д.ф.-м.н., профессор, А.Н.Терехов Рецензент: к.ф.-м.н, доцент, А.Н. Иванов.
Сохранение суммы фазовых координат. Важный частный случай представляют системы, в которых в течение всего процесса сохраняется постоянной сумма значений.
Применение генетического программирования для построения автоматов А. А. Шалыто Г. А. Корнеев Санкт-Петербургский государственный университет информационных.
Российский государственный педагогический университет им. А.И. Герцена ИНСТИТУТ ДОВУЗОВСКОЙ ПОДГОТОВКИ Дистанционное обучение «Русский язык. Подготовка.
Создание сервиса синхронизации разнородных баз данных Допущена к защите зав. кафедрой: д.ф.м.н., профессор Терехов А.Н. Научный руководитель: доцент Графеева.
Виртуальная лаборатория для первоначального обучения проектированию программ Н. Н. Красильников, В. Г. Парфенов, Ф. Н. Царев, А. А. Шалыто Кафедра компьютерных.
1 СПбГУ ИТМО, кафедра Компьютерных Технологий ПРИМЕНЕНИЕ АВТОМАТНОГО ПРОГРАММИРОВАНИЯ ДЛЯ ПОСТРОЕНИЯ СИСТЕМ УПРАВЛЕНИЯ БИЗНЕС- ПРОЦЕССАМИ Евгений Андреевич.
Адаптивный метод распределения SPMD-заданий в грид Паньшенсков Михаил, 545 группа Научный руководитель: Лукичев А.С. Рецензент: Демьянович Ю.К июня.
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Применение шаблонов требований для формальной спецификации и верификации автоматных программ Клебанов Андрей, 6538 Науч. рук. Степанов Олег, к.т.н, СПбГУ.
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Совместное применение генетического программирования и верификации моделей для построения автоматов управления системами со сложным поведением К. В. Егоров,
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Apache Harmony или как сделать курсовую работу в рамках этого проекта Фурсов Михаил.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Сопоставление полигональных объектов на основе независимой фрагментации контуров Выполнил: Ю. М. Плотников Научный руководитель: канд. ф.-м. наук К. В.
Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением Ф. Н. Царев, А. А. Шалыто 2007 год.
"The European Molecular Biology Open Software Suite"
Генерация вероятностных автоматов методами Reinforcement Learning Выполнил: Иринёв А. В. Руководитель: Шалыто А. А.
Лобанов Алексей Иванович Основы вычислительной математики Лекция 1 8 сентября 2009 года.
Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:
Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Царев Ф.Н., Шалыто А.А. IV Международная научно-практическая.
Верификация автоматных программ Ремизов А.О., д.т.н., проф. Шалыто А.А.
Нахождение ориджинов в последовательности нуклеотидов Выполнил: Ромашкин Амир, 445 гр. Руководитель: Профессор АФТУ, Порозов Юрий.
Анализ использования нескольких функций приспособленности для построения автоматов с помощью генетических алгоритмов на примере задачи «Умный муравей 3»
Применение генетических алгоритмов для генерации автоматов Мура и систем взаимодействующих автоматов Мили в задаче об «Умном муравье» А. А. Давыдов, Д.
Вычисление типов в императивных динамически типизированных языках. Михаил Калугин, студент 3 курса ММФ Научные руководители: Игорь Николаевич Скопин Андрей.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Применение метода представления функции переходов с помощью абстрактных конечных автоматов в генетическом программировании Царев Ф. Н. Научный руководитель.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
Поиск оптимального набора значений опций компиляции Студент: Чирцов Артём, ФИТ/IV Руководитель: Илья Чёрный
Разработка программного средства 3Genetic для генерации автоматов управления системами со сложным поведением Государственный контракт №
Разработка алгоритмов распознавания текста
Предметно-ориентированное моделирование приложений для платформы Android Никонова Ольга СПбГУ Научный руководитель Брыксин Т.А.
Применение генетических алгоритмов для генерации тестов к олимпиадным задачам по программированию Буздалов М.В., СПбГУ ИТМО.
Проект «Безопасный браузер» Визовитин Николай Научный руководитель: Д.В. Иртегов.
МЕТОД СКОЛЬЗЯЩЕГО КОНТРОЛЯ ДЛЯ ОЦЕНКИ КАЧЕСТВА РЕКОМЕНДАТЕЛЬНЫХ ИНТЕРНЕТ- СЕРВИСОВ А.Ю. Каминская, Р.А. Магизов Научный руководитель – Д.И. Игнатов Государственный.
9 октября 2004 Поиск статических изображений по содержанию: использование текстового запроса Наталья Васильева
Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 3. Требования к ПО: разработка требований.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
Применение генетического программирования для реализации систем со сложным поведением Санкт-Петербургский Государственный Университет Информационных Технологий,
Графический язык описания игровых эпизодов в футболе Царев Михаил Николаевич, Царев Федор Николаевич 2008 год.
Классификация, кластеризация и поиск изображений на основе низкоуровневых характеристик Наталья Васильева Руководитель: Новиков Б. А.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
Исследование возможностей сервисной шины SonicMQ Дипломная работа студентки 545 группы Комольцевой Дарьи Владимировны Научный руководитель: Графеева Н.Г.
1 Игорь Борисович Бурдонов Александр Сергеевич Косачев Тестирование и верификация систем на основе формальных моделей Институт Системного Программирования.
Presentation transcript:

Применение генетических алгоритмов к генерации тестов для автоматных программ Законов Андрей Юрьевич Научный руководитель: Степанов Олег Георгиевич, к.т.н., ассистент кафедры КТ Санкт-Петербургский государственный университет информационных технологий, механики и оптики Кафедра Компьютерных Технологий

Проблема проверки корректности Необходимо проверять корректность автоматной программы: соответствие реализации программы заданнои ̆ спецификации Важно находить ошибки в любой части системы: –в модели; –в объектах управления; –во взаимодействии объектов управления и модели. Доказательство –трудоемко и требует математической подготовки. Model-checking –не тестирует систему целиком (не затрагивает объекты управления) 2

Предложенный подход Предлагается помимо Model Checking использовать тестирование для проверки корректности программ Тесты позволяют проверять всю систему в целом Тестирование не может гарантировать отсутствие ошибок, но помогает в их обнаружении Тестирование – трудоемкий процесс. По статистике он занимает около половины времени разработки проекта. 3

Актуальность проблемы Существующие подходы для автоматных программ не позволяют проверять всю систему вцелом Работы про проверку расширенных конечных автоматов (EFSMs) не учитывают существование объектов управления и взаимодействие модели с ними Подходы к тестированию традиционных программ не могут использовать специфику автоматного подхода: –могут тестировать сгенерированный из автомата код; –теряются все преимущества автоматного подхода. Тестирование трудоемко, поэтому автоматизация принципиальна 4

Задачи для тестирования автоматных программ Проверить соответствие реализации автоматной программы заданнои ̆ спецификации. Задачи: I.Перевести спецификацию из естественного языка в формат, пригодный для автоматической проверки. II.Предложить простой и удобный способ записи тестовых сценариев. III.Автоматически создавать из описания тестового сценария код теста пригодный для запуска. IV.Проверять соблюдение условий спецификации во время выполнения теста. 5

I. Спецификация на естественном языке Обычно спецификация создается на естественном языке Пример словесной спецификации банкомата: –система позволяет снимать деньги с определенного счета; –изначально на счету сумма от 0 до ; –пользователь может снимать деньги произвольное количество раз, пока есть деньги на счету; –Ввод суммы для снятия происходит с клавиатуры, пользователь может ввести число от 1000 до 15000; –В день со счета может быть снято не более Такая спецификация пригодна только для ручного тестирования 6

I. Спецификация на естественном языке Разделение требований на группы Требования к автомату: –система позволяет снимать деньги с определенного счета; –пользователь может снимать деньги произвольное количество раз, пока есть деньги на счету; –В день со счета может быть снято не более Требования к объектам управления: –изначально на счету сумма от 0 до ; –пользователь может ввести на клавиатуре число от 1000 до

I. Построение расширенного конечного автомата. Расширенный конечный автомат учитывает переменные и охранные условия на переходах. 8

I. Спецификация системы: расширенный конечный автомат Требования к автомату: –система позволяет снимать деньги с определенного счета; –пользователь может снимать деньги произвольное количество раз, пока есть деньги на счету; –В день со счета может быть снято не более Требования к объектам управления: –изначально на счету сумма от 0 до ; –пользователь может ввести на клавиатуре число от 1000 до

I. Включение в модель требований к объектам управления и системе в целом Требования спецификации можно добавить в модель несколькими способами: –создать новое состояние (ошибка) и добавить переход с охранным условием. Это приведет к большому количеству состояний; –записать требование при помощи контракта к действию на переходе, на котором выполняется обращение к объекту управления При помощи контрактов будем записывать требования в виде пред- и постусловий к переходам, и инвариантов для состояний 10

I. Требования к объектам управления записанные в модель в виде контрактов Добавляем требования в модель при помощи JML-контрактов. Клавиатура: ext_x >= 1000 && ext_x <= Счет: ext_sum >= 0 && ext_sum <= Автомат: today <=

I. Спецификация системы: расширенный конечный автомат и контракты Требования к автомату: –система позволяет снимать деньги с определенного счета; –пользователь может снимать деньги произвольное количество раз, пока есть деньги на счету; –В день со счета может быть снято не более Требования к объектам управления: –изначально на счету сумма от 0 до ; –пользователь может ввести на клавиатуре число от 1000 до Контракты Расш. автомат

II. Разработка тестовых сценариев Тестовые сценарии удобно придумывать исходя из спецификации на естественном языке. Определим тестовый сценарий, как последовательность переходов в автомате: –Словесное описание легко записать в терминах переходов между состояниями; –Имея описание в виде последовательности переходов легко соотнести со словесной спецификацией и понять смысл теста. Все переходы в модели нумеруем, и тогда у каждого перехода есть уникальный идентификатор вида “tn” Тестовый сценарий записываем как список идентификаторов переходов, например: –t1, t2, t4, t5, t2, t4, t5, t2, t4, t5, t2, t4 13

III. Выполнение тестового сценария Для того, чтобы автомат выполнил заданную последовательность переходов (тестовый сценарий): –необходимо подобрать последовательность событий; –выполнить все охранные условия и контракты ОУ. В условиях задействованы переменные, которые автомат получает из среды при помощи объектов управления –сумма введенная с клавиатуры; –количество денег на счету. Для создания кода теста нужны значения этих переменных: –подобрать вручную; –найти автоматически. В данной работе предложен способ автоматизации поиска значений внешних переменных, при которых выполняются охранные условия и контракты объектов управления. 14

III. Поиск значений переменных Для поиска значений используется генетический алгоритм. Фитнес-функция берет на вход набор значений для внешних переменных и оценивает приспособленность для заданной последовательности переходов: –сколько переходов выполненно успешно (выполнены все условия); –для всех невыполненных условий учитывается насколько сильно нарушено это условие (branch distance); –положение нарушенного условия в заданном пути; Генетический алгоритм используется для поиска набора значений с минимальным результатом фитнес-функции. 15

III. Генетический алгоритм Набор внешних переменных (вектор значений) – хромосома: – Одноточечное скрещивание: Мутация – замена произвольного элемента вектора на случайное число. Фитнес-функция: –учитывает охранные условия и контракты объектов управления –расстояние до условия –учитывает положение в пути. Значение для пути m – число шагов в пути f i – расстояние до условия для i-го шага. d i – вес i-го с шага, 16

III. Пример поиска значений переменных (1) Примеры сценариев для тестирования: –три раза снимаются деньги со счета и на счету заканчиваются средства на четвертой попытке; –двадцать раз снимаются деньги со счета и на счету не заканчиваются средства. Необходимо подобрать значения переменных для создания теста, выполняющего выбранный сценарий 17

III. Пример поиска значений переменных (2) Запишем сценарий как последовательность переходов: –t1, t2, t3, t2, t3, t2, t3, t2, t4 На этом пути задействовано пять переменных: –ext_sum - изначальная сумма на счету; –ext_x1 – сняли первый раз; –ext_x2 – сняли второй раз; –ext_x3 – сняли третий раз; –ext_x4 – попробовали снять четвертый раз. Разработан инструмент, реализующий описанный ГА: –на вход получает модель и заданную последовательность переходов –выдает значения переменных для прохождения этого пути 18

III. Автоматическая генерация кода теста для запуска Автоматически найденные значения: –ext_sum = 15673; –ext_x1 = 4357; ext_x2 = 8023; –ext_x3 = 2162; ext_x4 = Найденные значения позволяют сгенерировать автоматически код теста, пригодный для запуска. Наборы тестов удобно применять для регрессионного и стресс-тестирования. 19

IV. Оценка корректности поведения системы во время запуска тестов (1) Необходимо оценить корректность поведения автоматной программы во время выполнения этого теста. Это выполняется автоматически для тех путей, которые содержат контракты. Во время выполнения программой сгенерированных тестов используется инструмент JML Runtime Assertion Checker для динамической проверки JML- контрактов, интегрированных в Java-код. 20

IV. Оценка корректности поведения системы во время запуска тестов (2) Для рассмотренного пути и найденных значений при запуске теста будет проверяться условие: –В день со счета может быть снято не более 50000; today <= При использовании объектов управления, будет также проверяться, выполняют ли они требования спецификации. Запуск тестов также позволяет обнаружить зависания и исключительные ситуации (exceptions), оценить время работы. 21

Поиск значений, нарушающих требования Требования спецификации автомата также можно включить в вычисление функции приспособленности Это позволит искать значения, которые нарушают эти требования Необходимо рассматривать состояния последовательно –нарушить требования для первого состояния –выполнить для первого, нарушить для второго –… –выполнить для первых n-1, нарушить для n-го 22

Конференции Всероссийская межвузовская конференция молодых ученых 2010 Spring/Summer Young Researchers' Colloquium on Software Engineering

Подход к тестированию автоматных программ 1.Максимально возможная часть спецификации вносится в автоматную модель, используя расширенный конечный автомат и JML-контракты. 2.Тестовые сценарии записываются в виде последовательности переходов автомата. 3.Используя разработанный инструмент, определяются соответствующие значения переменных для выполнения заданного сценария и генерируется код для запуска теста. 4.Тесты запускаются автоматически, во время их исполнения при помощи существующего инструмента проверяется выполненность требований спецификации, записанной в виде контрактов. 24

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