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

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

Автореферат диссертации по теме "Технология настраиваемой генерации тестов по формальным спецификациям для встроенных приложений и программных интерфейсов, реализованных на Java-подобных языках"

□030Б3228

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

/ ! / /

Карпов Андрей Николаевич

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

- д

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

Автореферат

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

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

003053228

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

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

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

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

Защита состоится «15» марта 2007 г. в 16.00 часов на заседании диссертационного совета Д 212.229.18 при ГОУ ВПО "Санкт-Петербургский государственный политехнический университет" по адресу: 195251, Санкт-Петербург, Политехническая ул., д.29, 9 уч. корп., ауд. 325.

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

Автореферат разослан « 08 » февраля 2007 г.

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

Лисс Александр Рудольфович

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

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

доктор технических наук, профессор

Шашихин В.Н.

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

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

Возрастающая сложность ПО встроенных систем требует от соответствующих инструментальных средств:

- поддержки процессов тестирования, начиная с ранних этапов разработки;

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

- поддержки автоматической генерации тестов;

- организации тестирования на разных этапах разработки с обеспечением преемственности (переиспользования) уже полученных результатов и наработок;

- поддержки тестирования в реальном окружении.

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

Анализ предметной области показал, что в настоящее время широкое распространение имеют различные нотации для формального представления требований к тестируемой системе: UML, MSC, VDM-SL, Munp, Alloy, T-VEC LF, LOTOS, Esterel, SCR, которые основаны на использовании таких известных моделей программ как сети Петри (Петри), конечные автоматы (Мили, Мура), темпоральные логики (Приора), алгебры параллельных процессов (Милнера, Хоара, Бергстры и Клоппа), традиционные системы (Д. Парка). Существующий инструментарий, основанный на их использовании, TVG (от T-VEC Technologies), Rational Rose Test Realtime (от Rational), Rhapsody TestConductor (от I-Logix), UniTesK (ИСП PAH), GOTCHA-TCBEAN (от AGED1S), MulSaw (от MIT), JUnit (от RoleModel Software) не удовлетворяет требованиям современного процесса производства ПО в области разработки встроенных Java программных интерфейсов и приложений, например, для мобильных телефонов, что является следствием следующих причин:

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

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

- затруднено получение эффективного настраиваемого вида целевого кода тестов.

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

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

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

- разработка модели взаимодействия тестируемого объекта и окружения на 6aie аппарата реактивных систем;

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

- создание программного инструментария, обеспечивающего: 1) адаптивную генерацию целевого кода тестовых сценариев по формальному описанию; 2) встраивание тестовых агентов в тестируемую систему для сопряжения с тестовым окружением;

- проверка работоспособности предложенных методик и инструментальных средств на 8 реальных проектах для 4 моделей мобильных телефонов.

Разработка и результаты решения этих задач выносятся на защиту.

1.3 Предметом исследования являются методы и инструментарий автоматизации тестирования встроенных Java программных интерфейсов и приложений.

1.4 Методы исследования. В диссертации используется теория реактивных систем и конечных автоматов, аппарат формальных спецификаций, концепция абстрактны« тестовых сценариев. В коде применялись стандарты Message Sequence Charts (MSC), ANSI С и Java. Основными критериями являлись универсальность, адаптивность и простота автономного использования разрабатываемой технологии автоматизации тестирования, а также возможность интеграции с существующими инструментальными средствами. В основу исследований положен системный подход.

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

1.6 Научные результаты и их новизна: в диссертации разработаны методологические основы технологии создания систем автоматизированного тестирования. Суть этих результатов сводится к следующему.

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

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

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

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

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

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

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

таких областях как: разработка Java программных интерфейсов (JSRs) и базового приемочного (Sanity) тестирования, а также при разработке пользовательских (MIDlet) и системных (CORElet) Java приложений. Созданная технология внедрена в проекте по разработке аппарата оповещения о статусе систем контроля в ОАО "Интелтех" и проекте "Исследование применения мобильных технологий в задаче отслеживания движения поездов" в ЗАО "Северо-Западная лаборатория Лтд". Созданные комплекс методик и программные средства являются универсальными и могут быть использованы для автоматизации тестирования Java программных интерфейсов и приложений различной направленности. Применение разработанной технологии автоматизации тестирования позволяет в среднем сократить время фазы тестирования в 2,5 раза.

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 в теории и практике программирования" 2002, 2004, 2005 и 2006 гг.; конференциях XXIX-2001 г, ХХХ-2002 г, XXXII-2004 г, XXXII1-2005 г, недели науки СПбГПУ. По материалам диссертации опубликовано 8 печатных работ, в том числе статья в издании из списка ВАК, где достаточно полно изложены основные результаты работы.

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

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

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

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

2. Современная трактовка автоматизации тестирования включает не только автоматизированное выполнение тестовых наборов, но и автоматизацию их создания.

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

4. Проведенный анализ позволил выявить следующие недостатки методов и средств автоматизации тестирования:

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

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

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

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

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

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

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

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

Ft с заданным множеством параметров V, ={vyj: /, = F,(V,). Использование интерфейса в заданный момент времени определяется сигналом - вызовом функции F, с заданными значениями параметров V v е V,.

Обосновано расширение формального представления системы временны* переходов для описания поведения реактивных систем с учетом специфики предметной области тестирования Java приложений и программных интерфейсов. Система временных переходов описывается кортежем: ST = (X, Е, Т, 0, L, [/}, где: X - множество переменных

над областью определения D; Е: {X D} - множество состояний системы; Т с {£ —» - конечное множество переходов; 0 G X - множество начальных состояний, L, U -множества нижних и верхних границ интервалов временных задержек срабатывания активизированных переходов re Т: L = {/r, г е Т}; U ={мг, те т}; 0 < lr < ит; tT, ит e R.

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

| l>cnv 1 ( 1) 1 Pcnv 2 (2j 1 Psys 1 (3) I l'sys 2 (4)

l@l 21MI {@3 4)M2

(1, #Vstatl, Vdinl) (2, #Vstat2, &Vdin2)

1 ....1 t............... .1 .1.........i L- 1 .

Рис. 1 Поведенческое взаимодействие тестируемой системы и тестового окружения

В связи с наличием множества взаимодействующих процессов, как со стороны окружения, так и со стороны тестируемой системы введена индексация взаимодействующих процессов: Р где Рт (3,4) - множество процессов со

стороны тестируемой системы, а Р„у (1,2) - множество процессов со стороны тестового окружения. Для кодирования сигналов воздействия тестового окружения и контроля ответов от тестируемой системы предложено использовать статическую и динамическую параметризации V : (Кмш, У1кп). Множество статических параметров К„м предложено описывать макросредствами, что позволяет производить декомпозицию тестовых сценариев на этапе предварительной обработки посредством подстановки значений параметров из их области определения Ц, для : Уиа1 —> . Множество

динамических параметров УЛт предложено описывать переменными, значение которых вычисляется в процессе выполнения теста.

Для проверки в процессе тестирования значений параметров интерфейсов (Рратт), значений идентификаторов процессов отправителя и получателя (Рш), временны«

ограничений (Fmr) предложено использовать Fllmk : {Fparanu, Fnm, Flwu). В общем

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

и F^-.C-» С .где С и С, С и С - множества входных и выходных интерфейсов тестового окружения и тестируемой системы. Таким образом, двусторонний функциональный преобразователь можно определить, как Kmvrnrr:(.Fsnd'Frerv)- В общем виде разработанная модель определяется парой 5r" = (sT, ЕХТ^, где S' - система временных переходов, а ЕХТ - расширение базовой

модели, определяемое кортежем (v, IVm, Р, Fchrcl, Fconyrr^.

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

1. Платформо-независимое инвариантное описание тестовых сценариев.

2. Генерацию платформо-независимого представления тестов с возможностями конфигурации и управления процессом генерации.

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

4. Интеграцию сгенерированного набора тестов с тестируемой системой.

Для создания тестовых сценариев в работе предложено: формальное графическое описание поведенческого взаимодействия тестируемой системы и тестового окружения проводить на языках MSC/UML; первый этап генерации тестов осуществлять на платформо-независмый скриптовый язык; на втором этапе производить адаптивную интерпретацию абстрактных тестов в целевой платформо-зависимый код, содержание которой определяет эксперт в целевой области тестирования, чем достигается эффективность целевого кода тестового набора.

В третьей главе разработана концепция технологии создания систем автоматизированного тестирования встроенного Java программного обеспечения (рис. 2). В качестве основных этапов создания систем автоматизированного тестирования определены:

1. Формализация поведенческого описания работы тестируемой системы в виде тестовых сценариев в расширенной нотации MSC/UML (I).

2. Предварительная обработка множества тестовых сценариев с раскрытием статической параметризации, производимая макро препроцессором (2, 3, 4), который

осуществляет преобразование (s™™ ,Vm,Dv ш,Iv ^) (Sw ), где: S™"": (s™,.., s™")

- множество MSC сценариев; Vml . (v,"",..., v^J'") - множество статических параметров;

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

Dv - область их определения; /„ - описание перебора значений из Dv ,

используемого в тестовых экспериментах; Susc :{{smc,l,..,sim„Ki\.->{smcm>">smcMcfi)) ~ генерируемое множество сценариев с развернутой статической параметризацией при К : (К,,.., KN ), где К, - число переборов для каждого сценария s""""'.

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

(6,7) посредством преобразования вида: (smc, I,P,Vdm, Ftr^ —> (TrMSC \Tstabslr^ где:

V:fv......V») " множество MSC сценариев; / :(/,"', /£', ¡Z, 1%) - множество

интерфейсов; P:(P„, P.„v) — множество процессов; : ^Vj ,..., vM J — множество переменных; Ftr:(ftr,ftrK) - множество фильтров;

Trmc:((trmr......,1г^\...,{1г,тст,...,1г1пасМк)) - множества MSC трасс при LN),

где Lt - число трасс для каждого сценария sml; TstabM'.(tstabsin,...,tstabl[rN) - множество абстрактных платформо-независимых тестов (7).

4. Адаптивная генерация целевого кода тестов, которую предложено осуществлять из платформо-независимого представления посредством интерпретации абстрактных тестон с использованием механизма шаблонов генерации кода (8, 9, 10) в виде преобразователя: F:(Tst„,ntr,MAP(DTabM :DTC0<le))—^(TSlmle,WRAP), где: Tst,Mlr ■■(tst„lnlrl,...,tst„bilrN) -множество абстрактных тестов; MAP(DTabstr: DTralr) - множество пар соответствия абстрактных DTalnll и целевых DTcode типов данных; Tstmlr: (шгаИ,..., isrm((W) - множество

тестов на целевом языке; WRAP - оболочка для функционального преобразователя Frommer с описанием интерфейсов тестового окружения /"'{', и (11). 5. Сопряжение интерфейсов тестового окружения и тестируемой системы с помощью функционального преобразователя FCommn предложено осуществлять пользователю с применением и /""', полученных из приложения (байт-код анализ) посредством преобразования F: (с, с0,Л(()т,ргоП,МАР(Сш : Сщ,))-> (с',с0',Л(,„6), где: С -набор классов исходного приложения; с0 - основной наследуемый класс; А{рш , -private и protected атрибуты полей и методов классов, заменяемых на public А рф; МАР(СШ : Cas,) - множества пар соответствия стандартных библиотечных классов Си классов-оболочек агента Cag,; С* - множество модифицированных классов; с"„ -модифицированный основной класс, который наследует исходный с0.

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

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

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

требования к тестируемой системе в виде множества MSC сценариев S^" . Определение

„macro

каждого сценария sm!t, предложено производить по следующим этапам:

- описание конечного множества процессов P:(SYS,ENV) тестируемой системы и тестового окружения, между которыми происходит обмен сигналами;

- задание: конечного множества переходов (сигналов) Гс}!-»£}, где X - множество состояний; множества нижних и верхних границ временных интервалов срабатывания переходов L, U • (ABS, REL, LAB), задание которых предложено осуществлять абсолютным (ABS) или относительным значением, отсчитываемым от предыдущего (REL) события или некоторой базы (LAß); множества параметров V : (Vsw,, Väln);

- описание последовательности переходов с использованием: in-line операторов

0P,N_UNF-(Alt, Opt, Par, Exc, Loop), задающих альтернативное (Alt), опциональное (Opt), параллельное (Par), исключительное (Exc) и циклическое (Loop) поведения; дополнительно предложенных управляющих операторов ветвления (IF), условных циклов (while), проверки условий (assert), ссылок (ref) 01'пж:(IF,WHILE,ASSERT,REE); - задание конфигурации, в которой указываются области определения Dv и предложенные функционалы перебора lv : (LIST, COND, FUNC), такие как: списки

(list), описывающие набор значений; условные списки (cond); функции (func), позволяющие реализовать пользовательскую подстановку параметров в библиотеке.

Над результирующим множеством и определенной конфигурацией производится

формальное преобразование (s"usc° > ^ло/ > А'„„,' ) ~> msc) в макро препроцессоре.

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

обобщенных сценариев (smS( , I,P,Vllm, Ftr^ —> (Trusc \Tstabm}. Описание интерфейсов I, процессов P и переменных Vdm поступает из конфигурации, множество фильтров Ftr (SYNC, LIM) в виде условий синхронизации SYNC. (Sync['r,-, 5упсрт, Sync[uv,, Sync,m„,AP) и ограничений на число ветвлений L/M ■ (Lim"^", Lim^J,!, l-i"'!™',") задаются пользователем. Синхронизацию предложено определять выбором приоритета обработки событий на стороне процессов тестового окружения Sync1NV, тестируемой системы SyncFSY4, без указания приоритета Sync^om и режимом разделения событий посылки и приема сигнала SyncovrRUr. Ограничения на число ветвлений по типу событий в каждой точке нелинейного поведения предложено определять заданием числа возможных активных путей Lirn'Pm', пассивных путей Lim¡SU и их приоритетом выбора Lim™"".

Методика управления балансом выбора обобщенных сценариев и линейных трасс на основе заданного ограничения по доступной памяти позволяет сокращать время выполнения тестового набора за счет баланса объема линейных трасс и обобщенных сценариев в результирующем тестовом наборе В работе показано, что объем памяти, занимаемый трассами, больше либо равен объему памяти, занимаемый обобщенными сценариями за счет повторения линейных участков: МЕМК <MEMTR. При этом время выполнения набора трасс меньше либо равно времени выполнения эквивалентного обобщенного сценария за счет дополнительных проверок для выбора пути: Тп < T,iC. В методике предлагается следующий подход: 1) заменять сценарии множеством трасс до

12

достижения заданного ограничения на доступную память; 2) если памяти недостаточно, а время выполнения необходимо сокращать, переходить к пакетной загрузке. При этом необходимо учитывать время загрузки пакетов: 7~„(„,„„„ = ,„„,„„„ + 7',„.,„,„„ )* „„,,»», - Тогда при увеличении (f) объема сценариев растет время прогона и уменьшается Ц) время загрузки: Sc Т=> У Раек, ■ ('/'„,„......я t & а при увеличении объема трасс:

Tr Т=> V/' : {г„1ЯК1Ш 4- & Тшр1ш t). Для пакетной обработки, чем значительнее время загрузки, тем большую долю сценариев необходимо обеспечить для каждого пакета.

Методика создания шаблонов адаптивной генерации целевого кода тестов обеспечивает построение функционального преобразователя для получения целевого кода тестов F : (¡'stalw, MAP(DTa,nu : йТГ1ф))—'-^—>(Tstmll,,WRAP) посредством интерпретации команд абстрактного теста. Каждый абстрактный тест tstllbM, представляет собой последовательность команд, описывающих взаимодействие тестируемой системы и окружения: (StartTC, StopTC, UZ • С,' )• Events. (Snd,Rcv, Cncl, Act,Rfr, SLoop, FLoop), States). Команды StartTC и StopTC описывают начало и окончание теста. Events описывают множество сигналов посылки (Snd) и приема (Rev) с указанием интерфейсов I, процессов Р, параметров V, временных ограничений (L,U) или операций: условие (Cnd), действие (Act), ссылка (Ref), начало (SLoop) и окончание (FLoop) цикла. Множество команд States описывает события и переходы каждого состояния. Из множества интерфейсов тестового окружения (^/"//»^"i) генерируются функции, образующие оболочку WRAP функционального преобразователя Famvl,rll,r. В соответствие командам ставятся блоки целевого кода, обеспечивающие контроль значений параметров, принадлежности процессам и временных ограничений: Frllfck :(Fpamms, Flml, Fum), и образующие tstmle,.

Предложено два подхода реализации механизма кодогенерирующего шаблона (КШ): специализированный - для использования в конкретном проекте и универсальный -для многоцелевого использования. Для разработки КШ выделены и обоснованы следующие этапы: 1) определение уровня абстрактности интерфейсов; 2) разработка правил преобразования команд абстрактного теста в целевой код; 3) определение структур и типов данных; 4) разработка структуры генерируемого кода; 5) организация протоколирования процесса тестирования; 6) проектирование служебной не генерируемой функциональности; 7) дизайн типовой программы-адаптера.

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

преобразователя F :{с, с,A/APiC,,,, : Cag,)}-> ¡С'Лга11) для получения Программных интерфейсов встроенного приложения мобильного телефона, В холе ее разработки решены следующие вопросы: 1) определено множество классов стандартных библиотек г0, С1К!, которые необходимо подменить для получения контроля над тестируемой системой: 2) разработана библиотека классов-оболочек с переопределением стандартных методов: 3) необходимые методы расширены путем дополнения функциональности воздействия и контроля реакций тестируемой системы (С,',/™); 4)провсдено сопряжение интерфейсов тестового окружения с полученными интерфейсами тестируемой системы через Fm, :/"' и Frm : С С В виде F^„„r,: (F;nli. F„J.

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

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

Обобщенная схема применения технологии приведена на рис. 3.

Рис. 3 Схема применения технологии автоматизации тестирования

Из структуры, показанной на рис. 3, видно, что по требованиям из базы данных (I) составляются формализованные тестовые сценарии с использованием MSC (2), которые совместно с конфигурацией (3) поступают в ядро инструментальной поддержки (4). Результатом работы ядра является абстрактный тестовый набор (5), при интерпретации которого с использованием шаблона (6) производится генерация целевого кода тестов (7). Па основании применения методики встраивания тестовых агентов производится анализ и модификация (10) байт-кода Java-классов исходного приложения (8) для их интеграции (II) с пакетом классов-оболочек (13) совместно с набором сгенерированных тестов (7) и программой-адаптером (¡2). При тестировании Java системных приложении

используются дополнительные библиотеки (15) для получения доступа к ресурсам платформы (16, 17). Проверка корректности выполнения теста осуществляется в процессе выполнения (on-line), либо по его окончании (off-line) с помощью сравнения с эталонными образами экрана. Результатом работы системы являются трассы выполнения тестов (18).

Оценка разработанной технологии осуществлялась на 8 реальных проектах (табл. 1) различной сложности: три проекта связаны с тестированием Java программных интерфейсов (JSR-120, JSR-135, Sanity); два проекта связаны с тестированием пользовательских (Logic Game, Picture Viewer) и три проекта связаны с тестированием системных (Image Editor, Music Player; User App) Java приложений.

Таблица 1 Характеристики применения технологии в промышленных Java-npoeKTax

Метрики" " -—-^JTpoeiobi^^^ Java API MIDIets COREIets

JSR1 20 JSR1 35 Sanity Logic Game Picture Viewer Image Editor Music Player User App

Общее число требований 68 90 — 121 106 183 156 467

Общее число тестов 48 59 98 116 854 328 199 432

Число автоматизированных тестов 48 41 93 112 405 289 172 391

Разработка ручных тестов (ч/д) 40 30 25 7 56 45 25 86

Разработка MSC сценариев (ч/д) 42 35 25 8 55 44 30 90

Настройка- шаблон или адаптер (ч/д) 8 8 8 5 8 6 5 5

Прогон ручного тестового набора (ч/ч) 20 16 8 16 40 48 16 152

Прогон автомат тестов (м/ч)/(ч/ч) 7/1 6/1 4/0,5 4/0,5 16/2 16/2 8/1 40/8

Прогон неавт остатка тест, набора (ч/ч) 0 4 1 1 4 6 1,5 16

Число дефектов, ручное тестирование 65 90 300 135 390 77 110 290

Число дефектов, автомат тестирование 69 98 315 152 421 82 121 321

Число циклов тестирования 17 19 298 26 28 15 14 14

ч/ч - человеко-часы, ч/д - человеко-дни, м/ч - машино-часы

Данные табл. 1 показывают, что для представленных проектов наблюдаются общие

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

На рис.4 (I) приведено сравнение роста трудозатрат и времени при увеличении проведенных циклов тестирования. Усредненная оценка по восьми проектам для четырех моделей мобильных телефонов производилась для четырнадцати тестовых циклов.

При анализе степени автоматизации представленных проектов можно выделить три основных типа: Тип А - проекты, поведение в которых кроме взаимодействия "пользователь - мобильный телефон" во многом определяется "клиент-серверной" архитектурой с взаимодействием пользователя с сервером без участия мобильного телефона ("Picture Viewer"), а также отображения видеоряда и проигрывания или записи звуковых файлов различных форматов ("JSR-135"). Наличие в общем объеме тестового набора значительной части ручных тестов по отношению к объему автоматизированных тестов позволяет оценить степень автоматизации проектов типа А на уровне 70%. Тип Б -проекты, в которых также присутствует "клиент-серверный" компонент, но при этом работа пользователя с сервером сконцентрирована на стороне мобильного телефона, а

15

также проекты, у которых анимация осуществляется на уровне приложений, а не на системном уровне вычислительной платформы ("Sanity". " Image Editor", "Music Player", "User App"), Для проектов этой группы уровень автоматизации оценивается в 70% - 95%.

GBO

в"»

S-Î1S

Вг

g.»

■M*1«

S« апА№ а?

ш

□ Тр1дао»тр»1ы

Л 6 0 10 12 14 16 Ч(сло цикло§ тестирования ¿Затраты &р»?мрни ■ 1руяоватрзты А Затраты времени .4* тестирование на тестирование на тестирование на тестирование Ручной ПОДИОД_Ручной пашет_¿зтои Пай№д_.Детом

©

j-npw* /ïifcm

1 m.. <*) . .

TfCW« J аЛ-i (VJ

Ж I

■ cnkfHiiprt* тр^тяфягг (С) щттиоиме_

Рис. 4 Среднее значение трудозатрат н примени в зависимое!и от киличепп» циклов (1) и сокращение трудозят pai н времени по типам проектов (2)

Тин В — проекты, в которых отсутствует необходимость отображения динамической графической информации, проигрывания звуковых файлов, когда взаимодействия осуществляются прямо на мобильном телефоне ("JSR-120" и "Logic Game"). Для группы проектов этого типа достигается коэффициент автоматизации до 1(Ю%. Результаты анализа приведены на рис.4 (2), где показана зависимость сокращения трудозатрат и времени по типам проектов.

Диаграмма на рис.4 (2) показывает эффективность применения разработанной технологи автоматизации тестирования. Сокращение необходимых ресурсов наблюдается по всем типам проектов. Ускорение по времени исполнения тестового цикла более чем в 2 раза достигается при 60-70%. автоматизации тестового набора для проектов типа Л, а трудозатраты сокращаются в 5 раз. При этом для проектов типа В по тем же параметрам достигаются улучшения в 3 и 15 раз соответственно, как показано на рис. 4(2).

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

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

Основными результатами диссертационной работы являются: I. Модель описания поведенческого взаимодействия тестируемой системы и тестового

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

2. Методологические основы создания систем автоматизированного тестирования в виде комплекса взаимосвязанных методик, ориентированных на поддержку следующих этапов технологии автоматизации тестирования:

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

- генерация трасс и абстрактных тестов для преобразования графического описания тестового сценария на MSC в платформо-независимое представление на языке Tel;

- преобразования графического представления тестового сценария в абстрактный платформо-независимый вид (Tel скрипт);

- управление балансом выбора объема генерации линейных трасс и обобщенных сценариев для удовлетворения ограничениям памяти и времени выполнения тестов;

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

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

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

4. Оценка эффективности разработанных методик и ПО на базе использования в программных проектах различной сложности в ЗАО "Motorola ЗАО", ЗАО "СевероЗападная лаборатория", НПО "Интелтех" позволила установить, что при увеличении затрат на разработку автоматизированного тестового набора на 25% по сравнению с традиционным ручным тестированием применение технологии обеспечивает выигрыш до 3 раз по затратам времени и до 15 раз по трудозатратам.

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

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

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

2. Vsevolod P. Kotlyarov, Alexey A. Golubev, Andrey N. Karpov, Testing automation for system core kJava applications // IEEE Tenth International Symposium on Consumer Electronics conference, 2006, pp.596-599.

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

4. Vsevolod P. Kotlyarov, Alexey A. Golubev, Andrey N. Karpov, Testing automation for J2ME applications and API // IEEE Russia Northwest Section, 110 Anniversary of Radio Invention conference, Volume II, 2005, pp.98-103.

5 Мелькова E.H., Карпов A.H., Котляров В.П., Применение формального языка спецификаций в целях автоматизации тестирования J2ME-пpилoжeний // XXXIII неделя науки: Материалы Всероссийской межвузовской научно-технической конференции студентов и аспирантов 4.V - СПб.: Изд-во Политехи, ун-та, 2005с. 36-37.

6. Карпов А.Н., Котляров В.П. Применение автоматизированной технологии верификации и тестирования на основе формальных спецификаций в разработке телекоммуникационных систем // XXXII Неделя науки СПбГТУ: Материалы межвузовской научно-технической конференции. 4.V. - СПб.: Изд-во СПбГПУ, 2004, с.12-13

7. Яковенко Н.М., Кривченко О.В., Карпов А.Н. Разработка Java-приложения «SMS connection API» для устройств беспроводной связи реализующего работу с SMS сообщениями // Конкурс конференция студенческих работ в области современных технологий компании Microsoft: Материалы межвузовского конкурса-конференции -СПб.: Изд-во СПбГПУ, 2002, с. 102

8. Никитин М.А., Югай Д.В. Карпов А.Н. Разработка программного модуля на PC, обеспечивающего взаимодействие мобильного телефона, подключенного к PC через последовательный интерфейс, с мобильными телефонами посредством SMS сообщений // Конкурс конференция студенческих работ в области современных технологий компании Microsoft - СПб.: Изд-во СПбГПУ, 2002, с. 68-69

Лицензия ЛР №020593 от 07.08.97

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

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

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

ВВЕДЕНИЕ.

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

1 1 современная пазовая терминология и опредт ление задачи tec iирования

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

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

1 4 срьдства автоматизации тестирования для java программных интерфейсов и приложений

15 современные баит-код анализаторы

16 Сравнительный анализ средс! в автоматизации тестирования

17 Выводы

2 МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ ТЕСТИРУЕМОЙ СИСТЕМЫ И ТЕСТОВОГО ОКРУЖЕНИЯ

2 1 Реактивная система как объект тестирования 41 2 2 Представление тестируемой сис1емы итестового окружения в виде системы временных переходов 43 2 3 Расширение системы временных переходов 47 2 4 Обобщенная формулировка модели 52 2 5 Постановка задачи на разработку технологии автоматизации тестирования

2 6 Выводы

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

3 1 ТЕХН0Л01 ИЧЕСКАЯ ЦЕПОЧКА И СЦЕНАРИЙ ЕЕ ИСПОЛЬЗОВАНИЯ

3 2 Модули ядра техноло! ии ав гоматизации тестирования

3 3 Структура абстрактных тестовых наборов (АТН)

3 4 Язык спецификации требовании тестируемой системы

3 5 Структура компонента сопряжения ингерфгисов

3 6 Выводы

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

4 1 методика разработки тестовых сценариев 78 42 Методика i енерации трасс и абстракт ных iectob 83 4 з Методика управления балансом выбора обоыценных сценариев и линейных трасс

4 4 методика создания шаклона iенерации целевого кода тестовых наборов

4 5 методика встраивания тестовых агентов

4 6 выводы но

5 ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ РАЗРАБОТАННОЙ ТЕХНОЛОГИИ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ.

5 1 обобщенная cxfma применения техноло! ии 112 52 применение технологии для тестирования java API 114 5 3 применение технологии для тестирования пользовательских java приложении (MIDI тт) 118 5 4 применение технолоеии для тестирования системных java приложении (CORFI ет) 121 5 5 анализ результатов применения технологии 125 5 6 выводы

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

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

Возрастающая сложность ПО встроенных систем требует от соответствующих инструментальных средств

- поддержки процессов тестирования, начиная с ранних этапов разработки;

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

- поддержки автоматической генерации тестов;

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

- поддержки тестирования в реальном окружении.

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

Анализ предметной области показал, что в настоящее время широкое распространение имеют различные нотации для формальною представления требований к тестируемой системе UML, MSC, VDM-SL, Murcp, Alloy, T-VEC LF, LOTOS, Esterel, SCR, которые основаны на использовании таких известных моделей программ как сети Петри (Петри), конечные автоматы (Мили, Мура), темпоральные логики (Приора), алгебры параллельных процессов (Милнера, Хоара, Бергстры и Клоппа), традиционные системы (Д Парка) Существующий инструментарий, основанный на их использовании, TVG (от T-VFC Technologies), Rational Rose Test Realtime (от Rational), Rhapsody I estConductor (от I-Logix), UniTesK (ИСП PAH), GOTCHA-TCBEAN (от AGEDIS), MulSaw (от Ml Г), JUnit (от RoleModel Software) не удовлетворяет требованиям современного процесса производства ПО в области разработки встроенных Java программных интерфейсов и приложений, например, для мобильных телефонов, что является следствием следующих причин

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

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

- затруднено получение эффективного настраиваемого вида целево1 о кода тестов

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

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

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

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

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

- создание программного инструментария, обеспечивающего: 1) адаптивную генерацию целевого кода тестовых сценариев по формальному описанию; 2) встраивание тестовых агентов в тестируемую систему для сопряжения с тестовым окружением;

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

Разработка и результаты решения этих задач выносятся на защиту

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

4. Методы исследования. В диссертации используется теория реактивных систем и конечных автоматов, аппарат формальных спецификаций, концепция абстрактных тестовых сценариев В коде применялись стандарты Message Sequence Charts (MSC), ANSI С и Java Основными критериями являлись универсальность, адаптивность и простота автономного использования разрабатываемой технологии автоматизации тестирования, а также возможность интеграции с существующими инструментальными средствами В основу исследований положен системный подход

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

6. Научные результаты и их новизна: в диссертации разработаны методологические основы технологии создания систем автоматизированного тестирования Суть этих результатов сводится к следующему.

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

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

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

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

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

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

7. Практическая значимость работы. На базе полученных научных результатов разработан комплекс программных средств, предназначенных для автоматизации тестирования Java программных интерфейсов и приложений для мобильных телефонов Программный комплекс использован в компании Motorola в 8 программных проектах в таких областях как разработка Java программных интерфейсов (JSRs) и базового приемочного (Sanity) тестирования, а также при разработке пользовательских (MIDlet) и системных

CORLIet) Java приложений Созданная технология внедрена в проекте по разработке аппарата оповещения о статусе систем контроля в ОАО "Иителтех" и проекте "Исследование применения мобильных технологий в задаче отслеживания движения поездов" в ЗАО "Северо-Западная лаборатория Лтд" Созданные комплекс методик и программные средства являются универсальными и могут быть использованы для автоматизации тестирования Java программных интерфейсов и приложений различной направленности Применение разработанной технологии автоматизации тестирования позволяет в среднем сократить время фазы тестирования в 2,5 раза.

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

1. http //matlab exponcnta ru/statcflow/bookl/1 php

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

3. Коул Д, 1омас Г, МакДональд М., Спарджеоп Р, Принципы тестирования ПО, ж. Открытые Системы #02/984J Брукс Ф. Как проектируются и создаются программные комплексы М . Наука, 1979

4. IEEE standard glossary of Software Engineering Terminology, IEEE Std 610.12-1990

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

6. Мансуров Н Н. Формальные методы для ускоренной разработки телекоммуникационною программного обеспечения, 1999.

7. ISO/IEC 9646-3 1995/ITU-T Х.292. 1995, Information Technology Open Systems Interconnection - Conformance Testing Methodology and Framework - Part 3: Tree and Tabular Combined Notation

8. IEEE standard glossary of Software Engineering Terminology, IEEE Std 610.12-1990

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

10. Software Testing, http //louisa levels unisa edu au/sel/testing-notes/testing htm

11. ISO/IEC 7498-1- 1994/ITU-T X200 1994, Information Technology Open Systems Interconnection - Basic Reference Model The Basic Reference Model.

12. Software Engineering Institute, Capability Maturity Model® (CMM&), 2000

13. Боэм Б Инженерное проектирование программного обеспечения М Радио и связь, 1985 -512 с

14. Moore A, Describing verification and validation a system definition, Artisan Software, 1999, www artisansw com/pdflibrary/michaels pdf

15. Бурдонов И Б Демаков А В , Косачев А С , Максимов А В , Пефсико А К , Формальные спецификации в технологиях обратной инженерии и верификации программ, 1руды Института Системного Программирования №1, 1999

16. Hoare A R, Communicating Sequential Processes Prentice Hall, 1985

17. Milner R, Communication and Concurrency Prentice Hall, 1989

18. ITU Recommendation Z 100 Specification and Description Language (SDL), 1994

19. P H J van Eijk et al eds The Formal Description Technique LOTOS -North Holland, 1989.

20. Design by Contract, http //www ddj com/documents/s=924/ddj9801d/9801dsl htm

21. Rational Rose RT www rational com/products/ rosert/index jsp

22. Rhapsody, I-Logix, http //www llogix com/

23. T elelogic Tau 4.3 SDL and TTCN Suite 4 3, www telelogic com

24. IEEE standard glossary of Software Engineering Terminology, IEEE Std 610.12-1990

25. Применение методов теории реактивных систем в задачах моделирования и качественного анализа непрерывно-дискретных систем., http /Лот imm uran ru/~dolly/voll/parijs2/parijs2 html

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

27. 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

28. 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

29. Henzinger T, Nicollin X, Sifalis J, Yovine S. Symbolic Model-Checking for Real-Time Systems In Proc 7th LICS IEEE Comp Soc. Press, 1992.

30. ISO/IEC 7498-1 1994/ITU-T X200 1994, Information Technology Open Systems Interconnection - Basic Reference Model The Basic Reference Model

31. ISO/IEC 9646-1 1995/ITU-T X290 1995, Information Technology Open Systems Interconnection - Conformance Testing Methodology and Framework - Part 1" General Concepts

32. ISO/IEC 9646-2 1995/ITU-T X291 1995, Information Technology Open Systems Interconnection - Conformance Testing Methodology and Framework - Part 2- Abstract Test Suite Specification

33. ISO/IEC 9646-3. 1995/ITU-l X 292: 1995, Information Technology Open Systems Interconnection - Conformance Testing Methodology and Framework - Part 3 Tree and Tabular Combined Notation

34. Booch G Object-Oriented Analysis And Design With Application, second edition The Benjamin/Cummings Publishing Company, Inc 1994. 589 p

35. J Rumbaugh, MBlaha, WPremerlani et al. Object-oriented modeling and design Prentice-Hall. NewJenersy. 1991. 500 p

36. Carrie Kirby Public Relations Coordinator. / Embedded Systems Conference, BOSTON, September 5,2001

37. OMG Unified Modeling Language Spesification Version 1.4. 2001 http //www omg com

38. ITU Recommendation Z 120. Message Sequence Charts (MSC), 2000

39. Mauw S , Reniers M A , Operational Semantics for MSC'96. Computer Networks and ISDN systems, 1998

40. Java ME Unit tutorial, http //www.instrumentalservices com/media/java/Java ME/Java MEUnitTutorial pdf

41. RoleModel Software, http //www rolemodelsoft com

42. Parasoft Jtest. http //www parasoft com/

43. Code Conventions for the Java Programming Language, http //java.sun com/docs/codeconv

44. Rational Purify http //www lbm com/software/awdtools/purify/

45. Parasoft Jtest http //www parasoft com/

46. PTF http //www urbana ess mot com/public/ptf/index html

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

48. F Spoto The Julia Generic Static Analyser www sci umvr it/jpoto/julia, p. 5-34, 2005

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

50. Bytecode level analysis and optimization for Java classes http //cs purdue edu/s3/projects/bloat/

51. JNI Enhancements in JDK 1 2 http //java suncom/j2se/l 4 2/doLs/guide/reJ2eLtion/spec/java-teflection doc html

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

53. White, LJ, EI Cohen, "A Domain Strategy for Computer Program Testing," IEEE Transactions on Software Engineering, 6(3) 247257 May, 1980

54. Conformiq Software Ltd , http //www conformiq com/products html

55. Reactive System Inc, http //www reactive-systems com/

56. Rational Rose RT http //www rational com/products/rosert/index jsp61. leradyne, http //www/geocities com/model-based-testing/sqw97 pdf

57. PTK http //motlabs-uk baseng comm mot com/projects/ptk/

58. TestBuilder http //www testbuilder net

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

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

61. George Mason University, httpV/www.isse gmu edu/~aynur/rsrch/Spec I est/overview html

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

63. Warsaw University of Technology, http //home.elka pw edu pl/~alasota/

64. BestBench Product Description http //www.diagonal com

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

66. Java 2 MicroEdition technology: http //java sun com/j2me

67. SUN Microsystems CLDC 1.1 (JSR 139) Specifications

68. Java 2 Platform, ME Connected Device Configuration/Foundation Profile Version 1 0 2

69. Bertolomieu В , Diaz M Modeling and verification of time dependent systems using time Petrinets IEEE Transactions on Software Engineering, SE-17,N 3, March 1991

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

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

72. 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

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

74. А А Летичевский, Ю.В Капитонова, В А Волков, А А.Летичевский (мл), С Н Баранов, В П Котляров, Т Вейгарт Спецификация систем с номощыо базовых протоколов, Кибернетика и системный анализ 2, 2005

75. Борщев А, Карпов Ю , Колесов Ю Спецификация и верификация систем логического управления реального времени В сб "Системная информатика", вып 2, ИСИ СО РАН, Н-ск, 1993,40с

76. Ben-An M., Manna, Z , Pnueli A Iemporal Logic of Branching lime Proc 8th Annual Symposium on Principles of Programming Languages, 198 l,ACMPress, Williamsburg,p. 164-176

77. Alur R, Fix L, Ilen/inger I. A.: A Determinizable Class of timed Automata 6th International Conference CAV'94 Lecture Notes in Comp Sci. 818, p 1-13, 1994

78. White Paper Using UML 2 0 to Solve Systems Engineering Problems// July 2003, Andy Gurd, Senior Project Manager, Telelogic 25 c.84. Tcl/Tk www.scriptics com

79. Ben-Abdallah H , I eue S , Timing constraints in Message Sequence Chart Specification, IFIP 1997, Published by Chapman & Hall

80. Новиков ФА, Дискретная математика для программистов С-Пб * Питер, 2000.-49с,118-133с

81. Введение в метаматематику, пер. с англ , М, 1957, Мендельсон Э

82. Ю Г. Карпов Теория алгоритмов и автоматов. Санкт-Петербург 1998.

83. С В Jones Systematic Software Development using VDM. Prentice-Hall Series in Computer Science. Prentice-Hall International, 1986

84. Ю Г Карпов Верификация распределенных алгоритмов и протоколов, курс лекций.

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

86. J М Spivey. Understanding Z, A Specification Language and its Formal Semantics Cambridge University Press, 1988

87. R Milne The semantic foundations of the RAISE specification language RAISE Report REM/11, STC Technology Ltd, 1990

88. Кружков OA, Ильин BB, Карпов АН, Зыбин КГ, Салиева M.H, Paper for the International Conference on Circuits and Systems for Communications (IEEE sponsored), MESSAGE SEQUENCE BASED TEST GENERATION VS MANUAL TEST CONSTRUCTION PROS AND CONTRAS

89. Котляров В П, Голубев А А, Карпов А Н , Paper for the International Conference 2006 IEEE Tenth International Symposium on Consumer Electronics, " IESIING AUTOMATION

90. FOR SYSTEM CORE KJAVA APPLICATIONS", Proceedings of St Petersburg IFEE Chapters, Year 2006, pp 596-599i