автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методики создания и внедрения агентов в прикладное и системное программное обеспечение для автоматизации тестирования и мониторинга встроенных вычислительных систем

кандидата технических наук
Голубев, Алексей Андреевич
город
Санкт-Петербург
год
2007
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Методики создания и внедрения агентов в прикладное и системное программное обеспечение для автоматизации тестирования и мониторинга встроенных вычислительных систем»

Автореферат диссертации по теме "Методики создания и внедрения агентов в прикладное и системное программное обеспечение для автоматизации тестирования и мониторинга встроенных вычислительных систем"

На правах рукописи

Голубев Алексей Андреевич

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

Специальность 05 13 11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Санкт - Петербург - 2007

003174607

Работа выполнена в Государственном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный политехнический университет»

Научный руководитель - кандидат технических наук, профессор

Котляров Всеволод Павлович

Официальные оппоненты - доктор технических наук, профессор

Лисс Александр Рудольфович - кандидат физико-математических наук, доцент Кознов Дмитрий Владимирович

Ведущая организация - Федеральное государственное унитарное предприятие «Научно-производственное объединение «Импульс»

Защита состоится « 1 » ноября 2007 г в 16 часов на заседании диссертационного совета Д 212 229 18 при ГОУ ВПО «Санкт-Петербургский государственный политехнический университет» по адресу 195251, Санкт-Петербург, Политехническая ул , д 29, 9 уч корп , ауд 325

С диссертацией можно ознакомиться в Фундаментальной библиотеке ГОУ ВПО «Санкт-Петербургский государственный политехнический университет»

Автореферат разослан «2<5» сентября 2007 г

Ученый секретарь диссертационного совета

Шашихин В Н

1. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

1.1 Актуальность работы В процессе разработки программного обеспечения (ПО) важную роль играет автоматизация тестирования совместной работы разных типов приложений вычислительных систем Трудозатраты по интеграции указанных типов тестирования определяют длительность цикла разработки и качество ПО

С развитием Java технологии для встроенных вычислительных систем существенно возросли требования к сложности, качеству и трудоемкости разработки приложений, объединяющих платформенные и Java компоненты Основные свойства технологий автоматизации тестирования, поддерживающих такое применение, следующие

- использование формальных спецификаций на ранних этапах разработки,

- поддержка автоматической генерации кода тестов в соответствии с особенностями целевой платформы,

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

- автоматизированный прогон тестовых циклов, сбор и анализ результатов, гибкая настройка и адаптация к новым версиям программных платформ Перечисленные свойства подтверждают необходимость создания методик и

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

Анализ существующего инструментария для автоматической генерации кода тестов из формальных описаний TVG, MuISaw, GOTCHA-TCBEAN, AsmL Test Tool, UniTesK, VRS/TAT - показал актуальность использования для этих целей инструмента VRS/TAT, удовлетворяющего требованиям современного процесса разработки ПО встроенных вычислительных систем, включающих в себя платформенные и Java компоненты Преимущества выбранного инструмента возможность гибкой настройки целевого языка кода тестов, автоматическая генерация оптимального набора тестовых сценариев по формальным описаниям требований и генерация кода тестов для соответствующей платформы Java ME, что не поддерживается в других рассмотренных промышленных средствах автоматизации тестирования

Анализ существующих методов и средств автоматизации тестирования встроенных Java систем на этапах выполнения тестов, сбора и анализа результатов показал, что в настоящее время в исследуемой предметной области используются технологии внедрения агентов, позволяющих наблюдать поведение тестируемой системы (ТСК, Java Device Test Harness, Communology MTE, Mobile Complete Live Test, PTF, FlexAuto) Выявленные недостатки не позволили использовать их для решения поставленной в работе задачи по следующим причинам узкая специализированная направленность рассмотренных средств не обеспечивает гибкой настройки на платформу, отсутствие средств, поддерживающих тестирование платформенных и Java приложений, и их взаимодействий, избыточная трудоемкость расширения тестовых наборов, включенных в рассмотренные средства, невозможность свободной интеграции с системами генерации кода тестов для искомой платформы

На основе анализа работ В И Городецкого, В Б Тарасова, Р Брукса, Н Дженнингса и других авторов по проектированию агентов сделаны выводы о перспективности использования агентов для обеспечения возможности наблюдения и управления на программном уровне, и о необходимости адаптации существующих подходов к разработке агентов, исходя из специфики исследуемых встроенных систем

В диссертационной работе автором разработаны методики создания и внедрения программных агентов в прикладное и системное ПО встроенных Java систем Применение предлагаемых методик для автоматизации этапов выполнения тестов, сбора и анализа результатов совместно с системой VRS/TAT для генерации кода тестов по формальным спецификациям позволяет создать технологию автоматизации тестирования платформенных и Java приложений Технология, созданная на базе предложенных методик, позволяет в несколько раз сократить длительность и трудоемкость процесса тестирования при отсутствии регрессии качества, что и определяет актуальность диссертационной работы Результаты анализа предметной области позволили сформулировать цели и задачи исследования и определить его структуру

1 2 Цели и задачи диссертационной работы

Целью диссертационной работы является разработка комплекса методик встраивания адаптивных программных агентов, позволяющих осуществлять наблюдение и управление внутренним поведением тестируемой системы для обеспечения автоматизации этапов прогона тестов, сбора и анализа результатов, сокращающей трудозатраты и время фазы тестирования Агенты должны обеспечивать наблюдаемость поведения прикладного и системного ПО, а также их взаимодействий, поддерживать возможность гибкой адаптации к целевой платформе Методики должны обеспечивать

возможность создания технологии автоматизации тестирования с использованием средств автоматической кодогенерации по формальным описаниям В поддержку технологии должны быть разработаны настраиваемые на платформу Java ME инструментальные средства В рамках достижения цели в работе решены следующие задачи

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

- создание поведенческих моделей основных архитектурных компонентов встроенных Java систем и модели универсального агента, инвариантных относительно платформы,

- разработка обобщенной методики встраивания агентов на основе предложенных моделей,

- доказательство корректности разработанных моделей, их функционирования и взаимодействия с использованием инструментов автоматической верификации,

- разработка концепции программной реализации и адаптации к целевой платформе методик встраивания агентов в прикладное и системное ПО на уровне основных архитектурных компонентов вычислительных систем, обеспечивающих управление и наблюдаемость поведения платформенных и Java приложений, и их взаимодействий,

создание программного инструментария, обеспечивающего настройку и интеграцию агентов с тестируемой системой,

- проверка работоспособности и эффективности предложенных методик и инструментальных средств в 6 проектах для двух различных архитектур встроенных мобильных платформ

1 3 Предметом исследования являются методы, средства и программный инструментарий автоматизации тестирования и мониторинга поведения встроенных мобильных платформ

1.4 Методы исследования В диссертации использованы результаты теории реактивных и транзитивных систем, конечных автоматов и базовых протоколов, аппарат формальных спецификаций, концепция объектно-ориентированных моделей Основными критериями являлись универсальность, технологичность, простота использования и адаптации разработанных методик, а также возможность интеграции с существующими средствами автоматической генерации кода тестов Применялись стандарты UML, MSC, ANSI С и Java В основу исследований положен системный подход

1.5 Обоснованность и достоверность полученных результатов обеспечена корректным использованием теорий реактивных и транзитивных систем, конечных автоматов и базовых протоколов, использованием строгого аппарата формальных спецификаций, положительными итогами использования разработанных методик и программных средств в реальных проектах, совпадением результатов по достижению качества ПО, полученных различными методами

1 6 Научные результаты и их новизна На защиту выносятся следующие научные результаты работы

1 Модели архитектурных компонентов встроенных Java систем и модель универсального агента в виде реактивных систем переходов

2 Обобщенная методика встраивания агентов, разработанная на основе моделей

3 Доказательство корректности функционирования и безопасности встраивания агентов с точки зрения сохранения логики работы межкомпонентных интерфейсов на основе верификации моделей и их взаимодействий

4 Специализированные методики встраивания агентов, позволяющие обеспечить наблюдение и управление в различных задачах тестирования и мониторинга методика встраивания агентов на уровне Java ME приложений, методика встраивания агентов на уровне kJava виртуальной машины (KVM), методика встраивания агентов на уровне платформенного окружения

5 Алгоритм анализа и модификации бант-кода Java ME приложения, обеспечивающий возможность наблюдения за внутренним поведением тестируемого приложения и генерации воздействий встроенным агентом

6 Методика для ускорения выбора путей ветвления тестовых сценариев на основе выбора альтернатив с помощью сигнатур

1.7 Практическая значимость работы. На базе полученных научных результатов разработан комплекс программных средств, использующий методики встраивания агентов для автоматизации тестирования прикладного и системного ПО, и их взаимодействий Программный комплекс использован в компании Motorola в 6 программных проектах для двух различных платформенных архитектур в таких областях как разработка Java ME приложений (MIDlet, i-appli, CORElet), сертификационное и компонентное тестирование встроенных Java платформ Созданные методики и программные средства являются универсальными и могут быть использованы для автоматизации тестирования и мониторинга прикладного и системного ПО любых современных платформенных архитектур встроенных вычислительных систем Применение технологии автоматизации тестирования на базе методик встраивания агентов позволяет в среднем сократить время

фазы прогона тестов, сбора и анализа результатов в 6 раз по сравнению с ручным подходом и в 1,7 раза по сравнению с существующими подходами автоматизации

1.8 Апробация работы Основные результаты и выводы диссертации докладывались на следующих международных научных конференциях «IEEE Russia Northwest Section, 110 Anniversary of Radio Invention conference» (СПб, 2005 г), «2006 IEEE Tenth International Symposium on Consumer Electronics» (СПб, 2006 г), Motorola Technology Day (Spb 2005, 2006), конференциях «Технологии Microsoft в теории и практике программирования» 2004, 2005 и 2006 гг, конференциях XXXTI-2004 г, ХХХ1П 2005 г, XXXIV- 2006 г недели науки СПбГПУ По материалам диссертации опубликовано 6 печатных работ, в том числе одна статья в издании, входящем в список рекомендованных изданий ВАК

1 9 Внедрение Методики встраивания агентов для исследуемых вычислительных систем и технология автоматизации тестирования, разработанная на их базе, внедрены в ЗАО «Северо-Западная Лаборатория Лтд », ОАО «Интелтех», ЗАО «Моторола ЗАО» и использовались при разработке учебно-методического комплекса СПбГПУ по курсу «Технология индустриального программирования» на кафедре ИУС Практическое использование представляемых на защиту результатов подтверждено соответствующими актами о внедрении

1 10 Структура н объем работы. Работа содержит введение, 5 глав, заключение и 5 приложений Объем работы 150 страниц, количество иллюстраций 69, список использованной литературы состоит из 112 наименований

2. СОДЕРЖАНИЕ РАБОТЫ

В первой главе диссертационной работы проанализированы особенности предметной области и направления совершенствования современных методов и средств автоматизации тестирования и мониторинга встроенных вычислительных систем

1 Необходимость совершенствования существующих методов процесса тестирования для увеличения степени автоматизации, обеспечивающей повышение эффективности и уменьшение трудоемкости

2 Возможность автоматизации тестирования встроенных мобильных платформ на этапах прогона тестов, сбора и анализа результатов, основанная на применении программных агентов для обеспечения наблюдаемости состояний и управления внутренним поведением тестируемой системы

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

- узкая специализация всех методов и средства, исключающая возможность гибкой настройки для решения различных задач автоматизации тестирования,

- отсутствует возможность расширения тестовых наборов, поставляемых вместе со средствами встраивания агентов,

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

4 Необходимость адаптации существующих подходов к разработке агентов вследствие ресурсных ограничений и специфики решаемых задач в исследуемой предметной области встроенных Java систем

5 Проведенный анализ методов и средств автоматизации тестирования на этапе генерации кода тестов по формальным описаниям, выявил возможность применения системы VRS/TAT, поддерживающей адаптацию автоматической генерации кода на целевой язык Java ME тестируемой системы

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

Во второй главе на основе теории реактивных систем разработаны модели основных архитектурных компонентов встроенных Java систем в виде систем переходов Обосновано введение понятия системы переходов с наблюдаемым временем -промежуточный вид между простой системой переходов и системой временных переходов В зависимости от целей и задач можно перейти к системе переходов (путем отбрасывания времени) или к системе временных переходов (путем введения временных ограничений) Системой переходов с наблюдаемым временем называется пара .V =< S, t >, где S - система переходов, определяемая как S = {Л", L, Т, 0) (где X -множество переменных над областью определения I), £ {X -> 1)\ - множество состояний системы, 0 е S - множество начальных состояний, Т - конечное множество переходов), a t - множество моментов времени срабатывания переходов Вычислением системы переходов с наблюдаемым временем будет цепочка ueï,(T=ni s , где s ев, (Vi)(3'rеТ) т(\ )- ч , и дополнительное условие (Vî)(V7 et) tt <f,,, которое как раз и показывает, что функционирование системы происходит во времени

Основными архитектурными компонентами встроенных Java систем являются Java ME приложение (У ), виртуальная Java машина (KVM) или системное приложение

(УД низкоуровневое окружение или платформа (Уя) Разработаны реактивные модели в виде систем переходов с наблюдаемым временем всех трех компонентов (рис 1) и описано их функционирование

\ "fppo

1 PowMJp?

Рис 1 Модели архитектурных компонентов встроенных Java систем

На основе моделей компонентов разработана интегрированная модель их взаимодействия (рис 2), которая является дискретно-параллельной системой переходов с наблюдаемым временем, представленной в виде параллельной композиции систем переходов отдельных компонентов S^ = У х У м( х S'im

----------1 I-----------

Netwoik | \ Keyboard

J

EnvCUtEv = KVMnEmöutEv

EnvlriEv = <VMOut EnvlnEv

/SppOiiEv = KVMrUäfpOJEv

ApplnEv KVMOi Appln Ev

Рис 2 Интегрированная модель взаимодействия компонентов встроенной Java системы

В местах сопряжения интерфейсов (пунктирные линии на рис 2) необходимо обеспечить возможность программного управления и наблюдения для решения задач автоматизации тестирования и мониторинга Для обеспечения возможности программного управления и наблюдения за интерфейсами внутри закрытых вычислительных систем разработана модель универсального встраиваемого агента в виде системы переходов с наблюдаемым временем (рис 3) - Л''(

Рис 3 Система переходов универсального встраиваемого агента

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

1 Методика встраивания агентов для Java ME приложения В данном случае тестируемой системой является приложение - S\rp, а окружением для него - KVM - У м; Тогда встраивание агента возможно между этими компонентами после приведения множества генерируемых агентом событий и множества наблюдаемых событий в соответствие с множествами соответствующих событий тестируемой системы и окружения Л^ = х S^ х s;>(() х S^

2 Методика встраивания агентов на уровне окружения Тестируемой системой является KVM - S[>v (или иные системные платформенные (native) приложения), а тестовым окружением является уже платформенное окружение - Л'^ Встраивание агента

(после согласования событий и сопряжения интерфейсов) осуществляется путем композиции Л',' = Л' х (А'„ х Л' х У )

^ Ш*п\ Ару у А Ь I '

Для всех описанных моделей компонентов (КУМ, приложения, платформы, агента), а также для интегрированных моделей с разными типами агентов была проверена корректность функционирования с помощью автоматической верификации с использованием системы УЯЯ Для верификации производится генерация трасс посредством последовательного применения базовых протоколов, результатом чего является начальное множество трасс базовых протоколов —-—>—-—> —-— > , где Д,,/1,, , /¡л, - применяемые базовые протоколы, \, \ . - промежуточные состояния Далее происходит перебор базовых протоколов, и выявляются классы функциональной эквивалентности, путем проверки возможности перестановок, в результате строится дерево трасс базовых протоколов, по которому происходит генерация трасс с учетом верифицируемых условий, которые проверяют и доказывают все исследуемые свойства моделей (отсутствие тупиков, достижимость состояний, наличие или отсутствие недетерминизмов) В процессе верификации корректность моделей была доказана автоматически Последовательность обмена событиями между компонентами после внедрения агентов в систему сохраняется Это подтверждает безопасность встраивания агентов для логики взаимодействия компонентов в системе

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

1 Выделить у тестируемой системы и окружения необходимые для управления и наблюдения входные и выходные интерфейсы

2 Разделить выделенные интерфейсы по трем основным классам событий агента (клавиатура, экран, прочие события)

3 Отобразить интерфейсы тестируемой системы и окружения в область событий агента

4 Детализировать универсальную модель системы переходов агента на формальном языке, с указанием всех необходимых событий (как входных, так и выходных)

5 По формальной спецификации требований к агенту разработать код агента на целевом языке (возможно использование методов кодогенерации)

6 Специфицировать входные и выходные интерфейсы агента для взаимодействия с тестовыми наборами

Разработанная универсальная модель агента учитывает специфику функционирования основных архитектурных компонентов исследуемых встроенных вычислительных систем, что позволяет решать задачу создания специализированных агентов, сопряженных с разрабатываемым программным обеспечением, при сохранении универсальности общего подхода Таким образом, вторая глава содержит теоретическую и обобщенную методическую базу для реализации методик встраивания агентов ft создания на их базе технологии автоматизации тестирования и мониторинга

В третьей главе разработаны концепции реализации обобщенной методики встраивания агентов для автоматизации этапов прогона тестов, сбора и анализа результатов, применимые к разным компонентам вычислительных систем 1 Концепция реализации методики для тестирования встроенных Java ME приложений Предложенная реализация учитывает специфические свойства языка Java и основывается на использовании библиотеки классов-оболочек и перехвате управления потока исполнения приложения Классы-оболочки обеспечивают возможность наблюдения внутренних программных интерфейсов, а перехват управления потока исполнения приложения - возможность генерировать управляющие воздействия Для тестирования системных Java ME приложений (CORElet) и приложений, имеющих строгие ограничения на размер (l-appli приложения) разработана дополнительная разновидность методики - методика встраивания агентов в KVM Параллельная композиция моделей агента, тестируемой системы и окружения выглядит следующим образом У,,,,, = S'w х (,v; х Ут) х У _ Для реализации методики встраивания агентов в

KVM также предложено использовать перехват управления потока исполнения приложения, но вместо библиотеки классов-оболочек - низкоуровневую библиотеку классов, встроенную в KVM и обеспечивающую возможность генерации входных воздействий (нажатий клавиш), а также сохранения содержимого графического буфера экрана для последующего анализа Основными этапами методики встраивания агентов на уровне Java ME приложений являются

- разработка библиотеки классов-оболочек используемого приложением профайла (MTDP, DoJa) для стандартных API,

разработка платформенного API, в случае, если тестируемые приложения используют не стандартизированные закрытые API или существуют жесткие ограничения на размер приложения,

- определение сравнительной эффективности использования обоих подходов для тестирования конкретного Java ME приложения - классов-оболочек или платформенного API, также возможна комбинация этих подходов,

- инструментация приложения дополнительными библиотеками, открытие внутренних интерфейсов, передача управления агенту,

- интеграция инструментированного приложения с тестовым набором

2 Концепция интеграции тестового набора, агента н тестируемого Java ME приложения Проведенный в работе анализ показал неэффективность модификации Java ME приложения на уровне исходного кода для интеграции с агентом и тестовым набором Для инструментирования тестируемого приложения и интеграции с тестовым набором и агентом разработан алгоритм анализа и модификации бант-кода, основными этапами которого являются

- изменение атрибутов доступа к полям и методам классов приложения (для получения доступа к ним и возможности их вызова),

замена наследования классов приложения (для передачи управления),

- замена имен библиотечных классов на имена классов-оболочек Разработанный подход модификации байт-кода удовлетворяет следующим

требованиям новое приложение совместимо на уровне байт-кода с оригинальным в области своей работы, логика работы приложения не изменяется

3 Концепция реализации методики для тестирования системных платформенных приложений Разработано две версии реализации методики - для встраивания пассивного и активного агентов Предложен подход к программной реализации методик, а также методика адаптации к целевой платформе

Методика встраивания пассивного агента на уровне окружения включает в себя следующие этапы

- идентификация необходимых для наблюдения событий системных приложений и платформенного окружения,

- разделение наблюдаемых интерфейсов по трем основным классам событий агента клавиатура, экран, прочие события,

- детализация универсальной модели агента на формальном языке, с указанием всех необходимых для наблюдения событий (входных событий агента),

- разработка кода агента,

- интеграция агента в окружение,

- разработка конфигурационного файла со списком наблюдаемых событий Основные этапы методики встраивания активного агента на уровне окружения

представлены на рис 4 Для реализации встраиваемого агента предложено использовать структуру фонового платформенного приложения, а также разработанный универсальный интерпретатор скрипта тестовых сценариев Для платформы с DoJa описаны этапы

программной реализации кода агента Для адаптации кода агента к целевой платформе необходимо определить структуру фонового платформенного приложения, реализовать функции регистрации приложения и обработки событий в соответствии с платформенной структурой, осуществить отображение множества имен входных и выходных событий агента на множество имен событий платформы, а также определить функции считывания экрана из драйверного буфера и генерации нажатий клавиш через драйвер клавиатуры, портировать универсальный интерпретатор скрипта тестовых сценариев

Рис 4 Основные этапы методики встраивания активного агента на уровне окружения 4 Методика выбора альтернатив на основе контрольных сумм обеспечивает эффективную поддержку недетерминированных тестовых сценариев, когда выбор осуществляется по графическому содержимому экрана Проведенный анализ показал возможность эффективного использования сигнатур, посчитанных по алгоритму CRC-32, при сравнении данных экрана с множеством эталонов Разработанный подход позволяет существенно сократить использование памяти и уменьшить время сравнения Основные этапы методики выбора альтернатив на основе контрольных сумм

определение возможности использования различных схем сравнения сравнение на основе сигнатур полных экранов, сравнение на основе сигнатур отдельных областей («масок»), поэлементное сравнение содержимого экрана с эталонами, - подготовка сигнатур эталонов для тестового набора на компьютере с помощью специального инструментария,

подготовка тестовых сценариев с использованием необходимой функции выбора -на основе сигнатур или поэлементной

В четвертой главе на основе предложенных моделей и методик построена технология автоматизации тестирования встроенных Java систем (рис 5) Технология реализована с использованием системы VRS/TAT для поддержки верификации требований и автоматической генерации тестовых наборов по формальным описаниям и расширена модулями встраивания агентов для различных платформ В главе 4 описан программный комплекс автоматизации тестирования встроенных Java систем, разработанный на основе предложенной технологической цепочки, и включающий в себя систему VRS/TAT, программно реализованные методики встраивания агентов, модуль байт-код анализатора, инструменты для настройки системы автоматизации тестирования

Рис 5 Технологическая цепочка использования системы автоматизации тестирования

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

Пилотирование и сбор статистики по автоматизации тестирования Java ME приложений осуществлялись в трех реальных проектах MIDlet «DAP» (применялась методика встраивания агентов на уровне приложений), CORElet «SynerJ ImageEditor» (применялась методика встраивания агентов на уровне KVM), i-appli приложение «DoJa ImageEditor» (применялась комбинация методик) IIa рис 6 (1) представлены временные и человеческие затраты на один тестовый цикл ручного и автоматизированного подхода к тестированию для каждого проекта При автоматизированном подходе получается усредненный выигрыш в 6 раз по затратам человеко-часов

Для автоматизации тестирования системного ПО применялась методика встраивания агентов на уровне платформенного окружения Пилотирование технологии для платформы с Doja проходило в рамках внедрения в процесс сертификационного и компонентного тестирования Для сертификационного тестирования удалось увеличить степень автоматизации с 75% до 98%, что обеспечило сокращение временных человеческих трудозатрат на фазе прогона тестов, сбора и анализа результатов более чем в 20 раз по сравнению с ручным подходом Для компонентного тестирования удалось добиться 99%-пой степени автоматизации При большом количестве тестовых циклов

(например, при приемочном запЬу-тестировании) суммарные временные затраты в автоматизированном подходе уже при 7-8 циклах тестирования сравнимы с однократным ручным прогоном. Использование предложенной технологии автоматизации дает выигрыш по человеческим трудозатратам, в среднем, более чем в 30 раз, выигрыш только по времени - в 7,6 раз. При этом 75% времени составляет время работы мобильного

устройства без участия тестировщика.

Рис. 6 Соотношение временных и трудозатрат при автоматическом и ручном подходе тестирования приложений (1) и выигрыш по сравнению с технологией автоматизации на основе РТР-агента (2)

Стоит отметить, что применения методик встраивания агентов в рамках технологии автоматизации тестирования улучшает качество ПО, в среднем, на 9-12%, за счет увеличения количества выявленных дефектов при автоматизированном подходе в рамках одного тестового цикла, проводимого параллельно с ручным подходом.

Затраты на встраивание агентов для различных применений приведены в таблице 1.

Таблица 1 Затраты ресурсов при применении методик встраивания агентов

Методика встраивания агентов

На уровне приложения На уровне KVM На уровне окружения

Затраты на адаптацию к новому Java ME профайлу (человеко-дни) 3 - -

Затраты на разработку агента под новую платформу (человеко-дни) - 1 20

Затраты на адаптацию к новой платформе (человеко-дни) - 5 5

Размер библиотеки классов-оболочек (Кб) 14 0 -

Использование ROM-памяти агентом (Кб) - 5,5 35,0

Использование RAM-памяти агентом (Кб) - 0,5 0,5

Время на подготовку тест.набора (человеко-часы) 0,5 1 1

Средний размер одного тестового сценария (Кб) 10 1 300

Необходимый объем дополнительного свободного места в файловой системе (усредненный, Кб) - 300 7300

Для всех методик прослеживаются общие тенденции: время на адаптацию обычно

меньше времени прогона одного ручного цикла тестирования; размеры агентов малы в сравнении с размерами компонентов, в которые они встраиваются; время на подготовку

тестового набора мало, при увеличении размера тестового сценария существует возможность использования файловой системы платформы и внешних карт памяти

В пятой главе проводится сравнение разработанных методик с существующим подходом автоматизации тестирования мобильных платформ на базе PTF-агента Собранные статистические данные в проектах, поддерживаемых PTF (DAP, компонентное тестирования платформ с MIDP), показывают, что использование разработанных методик встраивания агентов, в среднем, в 2 раза эффективнее существующего подхода на основе PTF-агента при том же уровне качества На рис 6 (2) показаны выигрыши от применения универсального агента по сравнению с PTF-агентом по трудозатратам и времени тестирования, времени на адаптацию агентов, используемым ресурсам Также наблюдается увеличение степени автоматизации (с 72% при использовании PTF-агента до 97,5% при использовании универсального агента) за счет методики выбора альтернатив и поддержки автономного параллельного тестирования

3. ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ

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

1 Разработка и доказательство корректности поведенческих моделей основных архитектурных компонентов встроенных Java систем и модели универсального агента, на основе которых предложена обобщенная методика встраивания агентов, обеспечивающая возможность программного управления и наблюдения за внутренними интерфейсами вычислительных систем

2 Создание концептуальных основ реализации методик встраивания агентов на уровне основных архитектурных компонентов мобильных платформ для решения различных задач автоматизации тестирования и мониторинга В том числе алгоритм анализа и модификации байт-кода для поддержки встраивания агентов в Java ME приложения, методика выбора альтернатив на основе контрольных сумм

3 Создание технологии автоматизации тестирования встроенных мобильных платформ на основе использования разработанных методик и системы VRS/TAT

4 Разработка программного комплекса поддержки технологии автоматизации тестирования встроенных мобильных платформ

5 Оценка эффективности разработанных методик и ПО на базе использования в программных проектах различной сложности в ЗАО «Motorola ЗАО», ЗАО «Северо-

17

Западная Лаборатория Лтд», ОАО «Интелтех» позволяет установить, что при сравнительно небольших трудозатратах на встраивание и потребляемых агентом ресурсов, применение методик обеспечивает сокращение длительности фазы прогона тестов, сбора и анализа результатов, в среднем, в 6 раз по сравнению с ручным подходом и в 1,7 раза по сравнению с существующими подходами автоматизации

Результаты, полученные в процессе выполнения проектов с использованием предложенной технологии на базе разработанных методик встраивания агентов, позволяют сделать выводы о работоспособности и эффективности методов и средств создания и внедрения агентов для автоматизации тестирования и мониторинга прикладного и системного ПО встроенных вычислительных систем

4. СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ

1 Голубев А А Методы разработки расширений (API) и ускорение KJAVA виртуальной машины для мобильных устройств // Технологии Microsoft в теории и практике программирования Материалы межвузовского конкурса-конференции студентов и молодых ученых Северо-Запада - СПб Изд-во СПбГПУ, 2004 - С 19-20

2 Поддубный ВН, Полубенцева ИК, Голубев А А, Котляров ВП Система автоматизации тестирования Т2МЕ-приложений // ХХХГГГ неделя науки СПбГПУ Материалы Всероссийской межвузовской научно-технической конференции студентов и аспирантов, Ч V - СПб Изд-во Политехи ун-та, 2005 - С 32-34

3 Голубев А А, Карпов А Н, Котляров В П Автоматизация тестирования системных J2ME приложений // Технологии Microsoft в теории и практике программирования Материалы межвузовского конкурса-конференции студентов, аспирантов и молодых ученых Северо-Запада - СПб Изд-во Политехи ун-та, 2006 - С 28-30

4 Котляров ВП, Голубев А А, Карпов АН Автоматизация тестирования встроенных Java приложений с адаптацией к целевой платформе // Научно-Техническне Ведомости СПбГТУ - СПб Изд-во Политехнического Ун-та, 2006 N5 - С 117-124

5 Vsevolod Р Kotlyarov, Alexey А Golubev, Andrey N Karpov, "Testing Automation For J2ME Applications and АРГ' // International Conference "Radio - That Connects Time 110 Anniversary of Radio Invention", 2005 / Proceedings of St Petersburg IEEE Chapters, Volume II, Year 2005, p 98-103

6 Vsevolod P Kotlyarov, Alexey A Golubev, Andrey N Karpov, "Testing Automation for system core kJava applications" // 2006 IEEE Tenth International Symposium on Consumer Electronics (ISCE 2006) / Proceedings, p 596-599

Лицензия ЛР №020593 от 07 08 97

Подписано в печать 27 09 2007 Формат 60x84/16 Печать цифровая Уел печ л 1,0 Тираж 100 Заказ 2038Ь

Отпечатано с готового оригинал-макета, предоставленного автором, в Цифровом типографском центре Издательства Политехнического университета 195251, Санкт-Петербург, Политехническая ул , 29 Тел 550-40-14 Тел/факс 297-57-76

Оглавление автор диссертации — кандидата технических наук Голубев, Алексей Андреевич

ВВЕДЕНИЕ.

1 ОБЗОР ВОЗМОЖНОСТЕЙ ТЕХНОЛОГИИ JAVA ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ И АНАЛИЗ СОВРЕМЕННЫХ ПОДХОДОВ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ.

1.1 Java технология для мобильных устройств.

1.1.1 Особенности kJava Виртуальных Машин (KVM).

1.1.2 Обзор особенностей МЮР-профайла. Пользовательское приложение MIDlet.

1.1.3 Обзор особенностей DoJa-профайла. Пользовательское приложение i-appli.

1.1.4 Системные kJava приложения - CORElet.

1.1.5 Java байт-код. Анализ современных байт-код анализаторов.

1.2 Формальные методы в разработке ПО.

1.3 Автоматизация тестирования.

1.3.1 Использование агентов для автоматизации тестирования и мониторинга.

1.4 Анализ средств автоматизации тестирования Java ME.

1.4.1 Анализ средств автоматизации тестирования Java ME без использования агентов.

1.4.1.1 J2ME Unit Testing Framework.

1.4.2 Анализ средств автоматизации тестирования Java ME на основе агентов.

1.4.2.1 ТСК.

1.4.2.2 Java Device Test Harness.

1.4.2.3 Communology MTE.

1.4.2.4 Mobile Complete LiveTest.

1.4.2.5 PTF.

1.4.2.6 FlexAuto.

1.5 Анализ систем автоматизации тестирования на основе генерации тестовых сценариев.

1.5.1 Test Vector Generation System.

1.5.2 MulSaw.

1.5.3 GOTCHA-TCBEAN.

1.5.4 AsmL Test Tool.

1.5.5 UniTesK.

1.5.6 VRS/TAT.

1.6 Сравнительный анализ систем автоматизации тестирования.

1.7 Выводы.

2 МЕТОДИКА ВСТРАИВАЕМЫХ АГЕНТОВ ДЛЯ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ И МОНИТОРИНГА ВСТРОЕННЫХ JAVA СИСТЕМ.

2.1 Реактивные системы.

2.1.1 Понятие реактивной системы.

2.1.2 Описание реактивной системы как объекта тестирования.

2.2 Представление Java систем в виде реактивных моделей.

2.2.1 Реактивная модель Java ME приложения.

2.2.2 Реактивная модель KVM.

2.2.3 Реактивная модель окружения Java платформы.

2.2.4 Интегрированная модель взаимодействия компонентов мобильного устройства.

2.3 методика встраиваемых агентов.

2.3.1 Модель универсального встраиваемого агента.

2.3.2 Методика встраивания агентов для Java ME приложений.

2.3.3 Методика встраивания агентов на уровне окружения.

2.3.4 Обобщенная формулировка методики.

2.4 Проверка корректности моделей.

2.5 Выводы.

3 КОНЦЕПЦИЯ РЕАЛИЗАЦИИ КОМПЛЕКСА МЕТОДИК ВСТРАИВАНИЯ АГЕНТОВ.

3.1 Концепция реализации методики для тестирования встроенных Java ME приложений.

3.1.1 Концепция разработки классов-оболочек и перехвата управления потока исполнения приложения >

3.1.2 Концепция тестирования системных Java ME приложений.

3.1.2.1 Методика встраивания агентов в K.VM.

3.1.2.2 Реализация методики встраивания агентов в KVM.

3.1.3 Обобщенная концепция интеграции тестового набора, агента и тестируемого приложения.

3.1.4 Анализ и модификация байт-кода для встраивания агентов в Java приложения.

3.1.4.1 Алгоритм работы байт-код анализатора.

3.1.4.2 Безопасность алгоритма работы байт-код анализатора.

3.2 koi 1цепция реализации методики для тестирования системного платформенного по.

3.2.1 Методика встраивания пассивного агента на уровне окружения.

3.2.2 Методика встраивания активного агента на уровне окружения.

3.2.3 Реализация методики встраивания агентов на уровне окружения.

3.3 Методика выбора альтернатив на основе контрольных сумм.

3.4 Выводы.

4 РЕАЛИЗАЦИЯ ТЕХНОЛОГИИ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ НА ОСНОВЕ

РАЗРАБОТАННЫХ МЕТОДИК.

4.1 Технологическая цепочка.

4.2 Архитектура системы.

4.2.1 Модуль тестирования пользовательских M1DP-приложений и API.

4.2.2 Модуль тестирования системных и DoJa приложений.

4.2.3 Модуль тестирования системных платформенных приложений.

4.2.4 Пользовательская система для настройки и подготовки тестовых сценариев.

4.3 Выводы.

5 РЕЗУЛЬТАТЫ ПРИМЕНЕНИЯ РАЗРАБОТАННЫХ МЕТОДОВ И ТЕХНОЛОГИИ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ.

5.1 Применение методики встраиваемых агентов для автоматизации тестирования Java ME приложений.

5.1.1 Анализ результатов применения технологии автоматизации тестирования Java ME приложений

5.2 Применение методики встраивания native-atehtob для автоматизации тестирования мобильных платформ.

5.2.1 Анализ результатов применения технологии автоматизации тестирования мобильных платформ.

5.3 сравнительный анализ результатов применения методик встраивания агентов с системой автоматизации PTF.

5.4 Выводы.

Введение 2007 год, диссертация по информатике, вычислительной технике и управлению, Голубев, Алексей Андреевич

Актуальность работы. В процессе разработки программного обеспечения (ПО) важную роль играет автоматизация тестирования совместной работы разных типов приложений вычислительных систем. Трудозатраты по интеграции указанных типов тестирования определяют длительность цикла разработки и качество ПО.

С развитием Java технологии для встроенных систем возросли требования к сложности ПО, к времени разработки и качеству. В настоящее время для тестирования ПО встроенных Java платформ, в большинстве случаев, применяется ручной поход. В условиях растущей сложности ПО и ужесточения требований к системным ресурсам, использование неавтоматизированного подхода к тестированию приводит к росту времени разработки и затрат человеческих ресурсов. Например, создание тестового набора для Java приложения средней сложности требует примерно один человеко-месяц; прогон одного полного тестового цикла занимает примерно одну человеко-неделю. Подобный подход к тестированию резко увеличивает стоимость программных продуктов, увеличивает их время выхода на рынок, а влияние человеческого фактора снижает качество ПО. Решением описанных проблем в промышленном процессе разработки ПО встроенных Java систем является использование автоматизации тестирования.

Современное понимание процесса автоматизации тестирования позволяет выделить четыре основных этапа:

1. Автоматизация разработки тестовых наборов, удовлетворяющих выбранным критериям покрытия функциональной спецификации.

2. Автоматизация загрузки и запуска тестов.

3. Автоматизация прогона тестов.

4. Автоматизация сбора и анализа результатов.

Для обеспечения наибольшей эффективности технологии автоматизации тестирования встроенных Java систем она должна удовлетворять следующим требованиям:

• Использование формальных спецификаций на ранних этапах разработки ПО для поддержки верификации требований и автоматической генерации кода тестов.

• Возможность наблюдения внутреннего поведения тестируемой системы: генерация воздействий, обработка откликов.

• Возможность автоматизированного прогона тестовых циклов, сбора и анализа результатов.

• Гибкая настройка и адаптация к новым версиям встроенных Java платформ.

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

Для автоматизации прогона тестов и анализа результатов в рамках тестирования встроенных Java систем существует ряд методов и инструментальных средств. Все они не универсальны даже в рамках своей предметной области и обеспечивают автоматизацию тестирования только для специализированных случаев. Большинство существующих инструментальных средств не поддерживает возможность сопряжения с системами автоматической генерации кода тестов.

Наиболее перспективным методом является метод использования программных агентов для обеспечения измеряемости тестируемой системы. Использование агентов позволяет автоматизировать тестирование не только прикладного и системного ПО, но и их взаимодействий.

В настоящее время промышленные технологии автоматизации тестирования для встроенных Java систем отсутствуют. Существуют средства, обеспечивающие автоматизацию этапа создания тестовых наборов, но нет возможности сопряжения полученных тестов с тестируемой системой.

Настоящая работа посвящена созданию методик встраивания тестовых программных агентов в области встроенных Java систем. Применение предлагаемых методик позволяет создать технологию автоматизации тестирования, использующую автоматическую генерацию кода тестов по формальным описаниям сценариев тестирования. Также предложенные методики поддерживают возможность гибкой настройки на новые версии ПО встроенных Java систем. Разработанная на основе методик технология позволяет существенно сократить длительность и трудоемкость процесса тестирования.

Цели и задачи диссертационной работы.

Целью диссертационной работы является разработка комплекса методик встраивания адаптивных программных агентов, позволяющих осуществлять наблюдение и управление внутренним поведением тестируемой системы для обеспечения автоматизации этапов прогона тестов, сбора и анализа результатов, сокращающей трудозатраты и время фазы тестирования. Агенты должны обеспечивать наблюдаемость поведения прикладного и системного ПО, а также их взаимодействий; под держивать возможность гибкой адаптации к целевой платформе. Методики должны обеспечивать возможность создания технологии автоматизации тестирования с использованием средств автоматической кодогенерации по формальным описаниям. В поддержку технологии должны быть разработаны инструментальные средства. В рамках достижения цели в работе были решены следующие задачи:

• Разработка требований к встраиваемым программным агентам на основе проведенного анализа существующих методов и средств автоматизации тестирования.

• Создание поведенческих моделей основных архитектурных компонентов встроенных Java систем и модели универсального встраиваемого агента, инвариантных относительно платформы.

• Разработка обобщенной методики встраивания агентов на основе предложенных моделей, а также разработка концепций программной реализации и адаптации к целевой платформе для методик встраивания агентов на уровне различных компонентов встроенных Java систем, обеспечивающих управление и наблюдаемость поведения прикладного и системного ПО, и их взаимодействий.

• Доказательство корректности разработанных моделей, их функционирования и взаимодействия с использованием инструментов автоматической верификации.

• Создание программного инструментария, обеспечивающего настройку и интеграцию агентов с тестируемой системой.

• Проверка работоспособности предложенных методик и инструментальных средств в нескольких проектах для различных архитектурных платформ встроенных Java систем.

Предметом исследования являются методы, средства и программный инструментарий автоматизации тестирования и мониторинга внутреннего поведения встроенных вычислительных систем.

Методы исследования. В диссертации использованы результаты теории реактивных и транзитивных систем, конечных автоматов и базовых протоколов, аппарат формальных спецификаций, концепция объектно-ориентированных моделей. Основными критериями являлись универсальность, технологичность, простота использования и адаптации разработанных методик, а также возможность интеграции с существующими средствами автоматической генерации кода тестов. Применялись стандарты Unified Modeling Language

UML), Message Sequence Charts (MSC), ANSI С и Java. В основу исследований положен системный подход.

Обоснованность и достоверность полученных результатов обеспечена корректным использованием теорий реактивных и транзитивных систем, конечных автоматов и базовых протоколов; использованием строгого аппарата формальных спецификаций; положительными итогами использования разработанных методик и программных средств в реальных проектах; совпадением результатов по достижению качества ПО, полученных различными методами.

Научные результаты и их новизна:

1. Разработаны модели архитектурных компонентов встроенных Java систем, инвариантные относительно платформы, в виде систем переходов, дополненных наблюдаемым временем.

2. Предложена модель универсального адаптивного встраиваемого агента, инвариантного относительно платформы, в виде системы переходов, дополненной наблюдаемым временем.

3. Проведено корректности функционирования и безопасности встраивания агентов с точки зрения сохранения логики работы межкомпонентных интерфейсов на основе верификации моделей и их взаимодействий.

4. На основе анализа поведения моделей предложена обобщенная методика встраивания агентов.

5. Разработаны специализированные методики встраивания агентов для различных компонентов встроенных Java систем, позволяющие обеспечить наблюдение и управление для решения задач тестирования и мониторинга.

6. Разработан алгоритм анализа и модификации байт-кода Java приложения, обеспечивающий возможность наблюдения за внутренним поведением тестируемого приложения и генерации воздействий встроенным агентом.

7. Предложена методика выбора альтернатив на основе сигнатур (в виде контрольных сумм) для ускорения выбора путей ветвления тестовых сценариев.

Практическая значимость работы. На базе полученных научных результатов разработан комплекс программных средств, использующий методики встраивания агентов для автоматизации тестирования прикладного и системного ПО, и их взаимодействий. Программный комплекс использован в компании Motorola в 6 программных проектах для двух различных платформенных архитектур в таких областях как: разработка Java ME приложений (MIDlet, i-appli, CORElet), сертификационное и компонентное тестирование встроенных Java платформ. Созданные методики и программные средства являются универсальными и могут быть использованы для автоматизации тестирования и мониторинга прикладного и системного ПО любых современных платформенных архитектур встроенных вычислительных систем.

Апробация работы. Основные результаты и выводы диссертации докладывались на следующих международных научных конференциях: «IEEE Russia Northwest Section, 110 Anniversary of Radio Invention conference» (СПб., 2005 г.); «2006 IEEE Tenth International Symposium on Consumer Electronics» (СПб., 2006 г); Motorola Technology Day (Spb 2005, 2006); конференциях «Технологии Microsoft в теории и практике программирования» 2004, 2005 и 2006 гг.; конференциях XXXII-2004 г, XXXIII-2005 г, XXXIV-2006 г недели науки СПбГПУ. По материалам диссертации опубликовано 6 печатных работ, в том числе одна статья в издании, входящем в список рекомендованных изданий ВАК.

Внедрение. Методики встраивания агентов для исследуемых вычислительных систем и технология автоматизации тестирования, разработанная на их базе, внедрены в ЗАО «Северо-Западная Лаборатория Лтд.», ОАО «Интелтех», ЗАО «Моторола ЗАО» и использовались при разработке учебно-методического комплекса СПбГПУ по курсу «Технология индустриального программирования» на кафедре ИУС. Практическое использование представляемых на защиту результатов подтверждено соответствующими актами о внедрении.

Структура и объём работы. Работа содержит введение, 5 глав, заключение и 5 приложений. Объём работы 150 страниц, количество иллюстраций 69, список использованной литературы состоит из 112 наименований.

Заключение диссертация на тему "Методики создания и внедрения агентов в прикладное и системное программное обеспечение для автоматизации тестирования и мониторинга встроенных вычислительных систем"

Основные результаты работы докладывались и обсуждались на семинарах ЗАО «Моторола ЗАО» (Санкт-Петербург), учебной лаборатории Моторолы в СПбГПУ, конференциях «IEEE Russia Northwest Section, 110 Anniversary of Radio Invention conference» и «2006 IEEE Tenth International Symposium on Consumer Electronics».

По материалам диссертационной работы опубликовано 6 печатных работ, в том числе одна в издании из списка ВАК.

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

Заключение

В диссертационной работе решена научная задача разработки методик встраивания агентов для обеспечения возможности автоматизации тестирования и мониторинга встроенных мобильных платформ, что позволяет существенно сократить трудозатраты и время фазы тестирования.

Для достижения цели в работе были решены следующие задачи:

1. Разработаны требования к встраиваемым программным агентам на основе проведенного анализа существующих методов, подходов и средств автоматизации тестирования в исследуемой предметной области, а также методов использования агентов.

2. Предложены модели, описывающие функционирование основных компонентов встроенных Java систем (Java ME приложения, kJava виртуальной машины (KVM), окружение Java платформы) как реактивных систем. Разработана реактивная модель универсального встраиваемого агента.

3. Доказана корректность разработанных моделей, их функционирования и взаимодействия с использованием инструментов автоматической верификации.

4. Предложена обобщенная методика встраивания агентов на основе разработанных моделей.

5. Разработаны концепции программной реализации для методик встраивания агентов на уровне всех основных компонентов встроенных Java систем для решения различных задач автоматизации тестирования и мониторинга.

6. Разработан программный инструментарий, обеспечивающий возможность настройки, разработки и интеграции агентов с тестируемой системой.

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

8. Полученные по итогам применения технологии результаты были проанализированы и показали эффективность использования технологии.

Полученные в ходе работы основные результаты:

1. Проведен анализ предметной области. На основе анализа произведен выбор инструментария для автоматической генерации кода тестов. Определены недостатки существующих методов и средств для автоматизации тестирования встроенных Java систем. Среди недостатков отмечены: узкая специализированная направленность и отсутствие возможности гибкой настройки; трудоемкость расширения тестовых наборов; невозможность сопряжения с системами автоматической генерации кода тестов.

2. На основе анализа существующих средств автоматизации тестирования встроенных Java систем и их недостатков сформулированы требования к встраиваемым программным агентам.

3. На основе анализа поведения предложенных моделей основных компонентов встроенных Java систем и разработанной модели универсального встраиваемого агента сформулирована обобщенная методика встраивания агентов. Методика обеспечивает возможность программного управления и наблюдения за внутренними интерфейсами встроенных Java систем.

4. Предложены концептуальные основы программной реализации методик встраивания агентов на уровне различных компонентов встроенных Java систем для решения разнообразных задач автоматизации тестирования и мониторинга, включающие в себя:

• методику встраивания агентов на уровне Java ME приложений;

• методику встраивания агентов на уровне KVM;

• алгоритм анализа и модификации байт-кода для поддержки встраивания агентов в Java ME приложения;

• методику встраивания активных и пассивных агентов на уровне окружения;

• методику выбора альтернатив на основе контрольных сумм.

5. Разработана технология автоматизации тестирования встроенных Java систем на основе использования системы VRS/TAT и методик встраивания агентов.

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

7. Проведено пилотирование разработанных методик и предложенной технологии в ряде программных проектов и проанализированы результаты эффективности их применения.

Анализ результатов использования методик и разработанной на их основе технологии автоматизации тестирования подтверждает их работоспособность и эффективность применения для встроенных Java систем.

В практическом плане на базе полученных научных результатов был разработан комплекс программных средств, предназначенный для построения комплексной технологии автоматизации тестирования встроенных Java систем. Программный комплекс был использован в компании Motorola в 6 реальных программных проектах для двух различных платформенных архитектур в таких областях как: разработка Java ME приложений (MIDlet, i-appli, CORElet), сертификационное и компонентное тестирование встроенных Java платформ. Созданные методики и программные средства являются универсальными и могут быть использованы для автоматизации тестирования и мониторинга любых современных платформенных архитектур встроенных систем.

Разработанные методики встраивания агентов и построенная на их базе технология автоматизации тестирования использованы в курсе «Технология индустриального программирования» кафедры «Информационные и Управляющие Системы» СПбГПУ.

Общий объем разработанного программного обеспечения, вошедшего в программный комплекс поддержки разработанных методик и технологии автоматизации тестирования, составил около 700 килобайт исходного кода на языках С, С++ и Java; объем документации на разработанное программное обеспечение - более 300 страниц.

Библиография Голубев, Алексей Андреевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Java 2 Platform, Micro Edition Connected Device Configuration/Foundation Profile Version 1.0.2

2. SUN Microsystems CLDC 1.1 (JSR 139) Specifications.

3. DoJa 1.5 Overseas Edition DoJa Java Content Developer's Guide, NTT DoCoMo,Inc., November 22nd, 2002.

4. J2ME Building Blocks for Mobile Devices, White Paper on KVM and the Connected, Limited Device Configuration (CLDC), Sun Microsystems, May 19,2000.

5. Vsevolod P. Kotlyarov, Alexey A. Golubev, Andrey N. Karpov, "Testing Automation for system core kJava applications". 2006 IEEE Tenth International Symposium on Consumer Electronics (ISCE 2006), Proceedings, pp.596-599,2006.

6. Raja Vallee-Rai, Laurie Hendren, Vijay Sundaresan, Patrick Lam, Etienne Gagnon and Phong Co. Soot a Java Optimization Framework. Proceedings of CASCON 1999, pages 125—135, 1999.

7. Jerome Miecznikowski and Laurie Hendren. Decompiling Java Bytecode: Problems, Traps and Pitfalls. CC'02, April 2002, Grenoble France.

8. J2MEUnit technology http://j2meunit.sourceforge.net/doc.html

9. F. Spoto. The Julia Generic Static Analyser, http://www.sci.univr.it/spoto/julia, p. 5-34,2005.

10. Apache Software Foundation. Bcel The Bytecode Engineering Library. http://jakarta.apache.org/bcel/, 2002.

11. A. Goldberg and K. Havelund. Instrumentation of Java Bytecode for Runtime Analysis. In Proc. Formal Techniques for Java-like Programs, volume 408 of Technical Reports from ETH Zurich, Switzerland, 2003.

12. S. Cohen. Jtrek. Developed by Compaq, p. 7-31,2001

13. BLOAT. The Bytecode-Level Optimizer and Analysis Tool. http://www.cs.purdue.edu/s3/projects/bloat/

14. SUN Microsystems. Java Core Reflection API and Specification. Technical report, SUN Microsystems, February 1997.

15. Sommerville I., "Software Engineering", 6 edition, 2002.

16. R. Milne. The proof theory for the RAISE specification language. RAISE Report REM/12, STC Technology Ltd, 1990.

17. ITU-T z.100 (08/2002)// Telecommunication standardization sector of UTI, 202 c-http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-Z.100-200208-1

18. UML Distilled Second Edition A Brief Guide to the Standard Object Modeling Language.

19. ITU Recommendation Z.120. Message Sequence Charts (MSC), 11/99.

20. ISO Information Processing Systems - Open Systems Interconnection - "ESTELLE - A Formal Description Technique Based on an Extended State Transition Model", DIS 9074, 1987.

21. Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). MIT Press, 1997.26. http://www.informatik.uni-bremen.de/cofi/Tools/CATS.html

22. K.L.McMillan, The SMV system, Carnegie Mellon University, 1992.

23. Боэм Б. Инженерное проектирование программного обеспечения. М.: Радио и связь, 1985.512 с.

24. ObjectManagementGroup, UML 2.0 OCL Specification. OMG documentptc/2003-10-14.

25. В. П. Котляров, Т. В. Коликова. Основы тестирования программного обеспечения: Учебное пособие. М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006.285 с.

26. Котляров В.П., Пинаев Д.В. Методы и средства автоматизации тестирования программного проекта. Санкт-Петербург, 1998.

27. Канер С., Фолк Дж., Нгуен Енг. Тестирования программного обеспечения. К.: ДиаСофт, 2000. 544 с.

28. Ричард В. Дрейган, «Будущее программных агентов», PC Magazine March 25,1997, p. 190

29. Wooldridge M.J., Jennings N.R. Agent Theories, Architecture, and Languages: A survey. In: Intelligent Agents: Proceedings of the Workshop on Agents Theories, Architecture, and languages (ECAI-94), Springer-Verlag, 1995. pp. 1-39.

30. M.Wooldridge and N.RJennings, Intelligent agents: theory and practice, The Knowledge Engineering Review, v. 10:2,1995, pp. 115-152.

31. Глибовец Н.Н., Использование JADE (Java Agent Development Environment) для разработки компьютерных систем поддержки дистанционного обучения агентного типа, Educational Technology & Society 8(3), 2005, с.325-345.

32. MA. Лепешкин, Е.Ф. Березкин, «Подходы к мониторингу ИТ-услуг», Научная сессия МИФИ-2006, том 12.

33. Сниффер: щит и меч. http://www.tvoycomputer.ru/?item=27422&id=80

34. Ричард В. Дрейган, Эндрю Боскардин, «Новые программные агенты. Укрощение стихии Web», PC Magazine March 25,1997, p. 191

35. H. Дубова, «Средства управления сервисами», журнал «Открытые системы», № 04,2006. http://www.osp.ru/os/2006/04/021.htm

36. Todd Sundsted, An introduction to agents, JavaWorld.com, 06/01/98.

37. JConsole: http://java.sun.eom/j2se/l .5.0/docs/tooldocs/share/jconsole.html

38. Using JConsole to Monitor Applications: http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

39. JPDA: http://java.sun.c0m/javase/6/d0cs/techn0tes/guides/jpda/index.html

40. JVMTI: http://j ava. sun.com/j avase/6/docs/platform/jvmti/j vmti .html

41. JDWP: http://java.sun.c0m/javase/6/d0cs/techn0tes/guides/jpda/jdwp-spec.html

42. JDI: http://java.sun.c0m/javase/6/d0cs/jdk/api/jpda/jdi/index.html

43. Семен Бойков, Используем JDI, август 2006: http://blogs.sun.com/vmrobot/entry/%D0%B8%D 1 %81 %D0%BF%D0%BE%D0%BB%D 1 % 8C%D0%B 7%D 1 %8 3 %D0%B 5%D0%B С J di

44. Frank Cohen, «Java Testing and Design. From Unit Testing to Automated Web Tests», Prentice Hall PTR, 2004, 544 pages.

45. TestMaker: http://www.pushtotest.com

46. Чекинов Г.П., Чекинов С.Г. Применение технологии многоагентных систем для интеллектуальной поддержки принятия решения (ИППР) // Системотехника, №1,2003.

47. В.Б. Тарасов. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. М.: Эдиториал УРСС, 2002. - 352 с.

48. Java ME Unit tutorial. http://www.instrumentalservices.com/media/java/Java ME/Java MEUnitTutorial.pdf

49. RoleModel Software, http://www.rolemodelsoft.com55. TCK User Manual

50. The Java Compatibility Test Tools: JavaTest Harness.http://'} ava. sun.com/ developer/technical Articles/JCPtools2/index .html

51. Communology МТБ for Java ME, http://www.communology.com/dl/mtejavame270.pdf59. http://www.mobilecomplete.com/company/MobileCompleteLiveTest.pdf

52. Ilia Esipchuk, Anton Salnikov, Dr. Dmitry 0. Vavilov, "PTF-based Test Automation for Java Applications on Mobile Phones". 2006 IEEE Tenth International Symposium on Consumer Electronics (ISCE 2006), Proceedings, pp.593-595,2006.

53. T-VEC Technologies, http://www.t-vec.com/Home.asp

54. White, L.J., E.I. Cohen, "A Domain Strategy for Computer Program Testing," IEEE Transactions on Software Engineering, 6(3):247257 May, 1980.

55. MIT Software Design Group, http://mulsaw.lcs.mit.edu/

56. Farchi E., Hartman A., Pinter S. S. Using a Model-based Test Generator to Test for Standard Conformance, http://www.research.ibm.com/journal/sj/411/farchi.html

57. Friedman G., Hartman A., Nagin K., Shiran Т., Projected State Machine Coverage for Software Testing, http://www.haifa.il.ibm.com/projects/verification/gtcb/papers/projectionissta.pdf

58. Mike Barnett, Wolfgang Grieskamp, Wolfram Schulte, Nikolai Tillmann, Margus Veanes, "Validating Use-Cases with the AsmL Test Tool," qsic , p. 238,2003.68. http://research.microsoft.com/fse/asml/

59. W. Grieskamp, Y. Gurevich, W. Schulte, and M. Veanes. Generating Finite State Machines from Abstract State Machines. In Proc. of ISSTA'2002. Also: Microsoft Research Technical Report MSR-TR-2001-97.

60. ISP RAS Red Verst, http://www.ispras.ru/~RedVerst

61. TAT+Beta User's Manual © 2001-2005 MOTOROLA

62. VRS User's Manual © 2001-2005 MOTOROLA

63. Е.Ю.Парийская. Применение методов теории реактивных систем в задачах моделирования и качественного анализа непрерывно-дискретных систем. // Дифференциальные уравнения и процессы управления, 1998, №1, с. 368-417.

64. Е.Ю.Парийская. Сравнительный анализ математических моделей и подходов к моделированию и анализу непрерывно-дискретных систем. // Дифференциальные уравнения и процессы управления, 1997, №1, с. 91-120.

65. Manna Z., Pnueli A.: The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, 1992.

66. Ю.Г. Карпов. Имитационное моделирование систем: Введение в моделирование с AnyLogic 5. Изд-во «БХВ-Петербург», 390 стр., 2006 г.

67. Bertolomieu В., Diaz М.: Modeling and verification of time dependent systems using time Petri nets. IEEE Transactions on Software Engineering, SE-17,N 3, March 1991.

68. Henzinger T.A., Manna, Z., Pnueli A.: Temporal proof methodologies for real-time systems. Proc. 18th Annual Symposium on Principles of Programming Languages, 1991, ACM Press, p.353-366.

69. Moller F., Tofts C.: A Temporal Calculus of Communicating Systems. Proceedings of CONCUR'90. Lecture Notes in Comp.Sc. 458, Springer-Verlag, 1990.

70. Baeten J.C.M., Bergstra J.A.: Real time Process Algebra. Formal Aspects of Computing, 3, p. 142-188, 1991.

71. Reed G.M., Roscoe A.W.: A Timed Model for Communicating Sequential Processes. Lecture Notes in Comp.Sc. 571, Springer-Verlag, 1986.

72. Ben-Ari M., Manna, Z., Pnueli A.: The Temporal Logic of Branching Time. Proc. 8th Annual Symposium on Principles of Programming Languages, 1981, ACM Press, Williamsburg, p. 164-176.

73. Clarke E.M., Emerson E.A., Systla A.P.: Automatic verification of finite-state concurrent systems using temporal-logic specifications. ACM Transactions on Programming Languages and Systems, 8(2): p.244-263.1986.

74. Lichtenshtein 0., Pnueli A.: Checking that finite state concurrent programs satisfy their linear specification. 12th Symp. on Principles of Program Languages. Austin, Texas. 97-107,1984.

75. A.B. Хорошилов Спецификация и тестирование систем с асинхронным интерфейсом, ИСП РАН, (http://www.citforum.ru/SE/testing/asynchronousinterface/)

76. Городецкий В. И. Многоагентные системы: современное состояние исследований и перспективы применения // Труды конференции по ИИ, 1996, с.Зб-45.

77. N. R. Jennings, and М. Wooldridge "Agent-Oriented Software Engineering" in Handbook f Agent Technology, (ed. J. Bradshaw) AAAI/MIT Press, 2000.

78. C. Petrie, Agent-based software engineering, First international workshop, AOSE 2000 on Agent-oriented software engineering, p.59-75, January 2001, Limerick, Ireland.

79. H. S. Nwana, Software Agents: An Overview, The Knowledge Engineering Review, Vol. 11, No 3, pp. 1-40, Sept 1996.

80. C. A. R. Hoare, "Communicating Sequential Processes", P-H 1985.

81. A.A.Letichevsky, J.V.Kapitonova, V.A.Volkov, A.A.Letichevsky, jr., S.N.Baranov, V.P.Kotlyarov, T.Weigert, System Specification with Basic Protocols, Cybernetics and System Analyses, 4,2005.

82. Б. Эккель. Философия Java. Библиотека программиста. СПб: Питер, 2001.

83. Т. Lindholm, F. Yellin. The Java(TM) Virtual Machine Specification (2nd Edition). Addison-Wesley Professional; 2 edition, 1999.

84. Д.Э. Кнут. Искусство программирования. 3 тома. Изд-во «Вильяме», 2005.

85. Т.Кормен, Ч.Лейзерсон, Р.Ривест. Алгоритмы: построение и анализ. М.: МЦНМО, 2000.

86. Ross N. Williams. A painless guide to CRC error detection algorithms, 1993. ftp.adelaide.edu.au/pub/rocksoft/crcv3.txt

87. Б. Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. Изд-во «Триумф», 2002.

88. В. J. McKenzie, R. Harries and Т. Bell. Selecting a Hashing Algorithm. Department of Computer Science, University of Canterbury, Christchurch, New Zealand.

89. FIPS PUB 198. The Keyed-Hash Message Authentication Code (HMAC), 2002.

90. M. Stigge, H. Plotz, W. Mailer, J.-P. Redlich. Reversing CRC Theory and Practice. HU Berlin Public Report, SAR-PR-2006-05, 24 May 2006.104. http://apollo.backplane.com/matt/crc64.html

91. Tanenbaum A.S., "Computer Networks", Prentice Hall, 1981, ISBN: 0-13-164699-0, pp. 130-132.108. http://www.w3.Org/TR/PNG/#D-CRCAppendix

92. Дробинцев П.Д. «Интегрированная технология обеспечения качества программных продуктов с помощью верификации и тестирования», диссертация на соискание ученой степени кандидата технических наук, Санкт-Петербург, 2006.

93. Брукс Ф. Мифический человеко-месяц или как создаются программные системы. -СПб.: Символ-Плюс, 1999.304 с.

94. Липаев В.В. Тестирование программ. М.: Радио и связь, 1986.296 с.

95. Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 1982. 176 с.