УДК 004.415
П.Д. Дробинцев, М.Ш. Даишев, В.П. Котляров
ИНТЕГРИРОВАННАЯ СРЕДА АВТОМАТИЗАцИИ ТЕСТИРОВАНИЯ НА ОСНОВЕ ТЕХНОЛОГИИ ECLIPSE
В ходе разработки программного обеспечения одним из наиболее трудоемких процессов является тестирование [1]. В настоящее время большое внимание уделяется сокращениям затрат на тестирование за счет автоматизации данного процесса. Это позволяет, с одной стороны, исключить влияние человеческого фактора, а, с другой, - ускорить процесс проверки ПО на наличие в нем дефектов. Для автоматизации тестирования необходимо решить проблему инвариантного задания тестов в некотором формальном виде, который может быть исполнен компьютером без участия человека или с его минимальным участием. В данном направлении ведется масса исследований по созданию новых стандартов и инструментальных средств, которые объединяются в рамках такого направления как Computer Aided Software Engineering (CASE). Наиболее известные графические стандарты, используемые в тестировании, - UML [2] и MSC [3]. В рамках языка UML (Unified Modeling Language) для тестирования обычно используются диаграммы последовательности (Sequence Charts), позволяющие описать последовательность воздействий на тестируемую систему и ее отклики. Широко зарекомендовавший себя в промышленном применении язык MSC (Message Sequence Charts) является подмножеством UML. Упомянутые выше языки содержат не только графическую нотацию для создания диаграмм, но и текстовую, которая преимущественно используется для автоматизации тестирования.
Другой компонентой автоматизации является инструментальное средство, поддерживающее выбранную нотацию. Существует огромное количество инструментов автоматизации, позволяющих в той или иной степени облегчить жизнь те-стировщику. Это такие инструменты, как Rational TTCN suite [4], Rational TAU, Test Real Time, Test Vector Generation [5], UniTestK [6], Conformiq Test [7], TAT[8] и др.
Перечисленные инструменты можно разделить на две категории. К первой относятся уни-
версальные средства автоматизации тестирования, а ко второй - специализированные средства автоматизации. Универсальные средства позволяют решать широкий круг задач, связанных с автоматизацией процессов настройки тестового окружения, генерацией и автоматизацией исполнения тестового набора, анализом результатов тестирования. Как правило, их применение требует серьезных затрат на адаптацию к платформе и применению. Их основная проблема - тяжеловесность и дороговизна лицензии. Недостатком специализированных средств является узкая область эффективного применения.
В данной статье рассматривается универсальная интегрированная среда, предоставляющая сервисы по настройке и управлению процессом автоматизации тестирования, основанная на использовании стандарта MSC в качестве языка описания тестов и инструмента TAT (Test Automation Toolset), предназначенного для генерации и автоматического исполнения тестового набора.
Интегрированная среда автоматизации тестирования. Основана на использовании технологии eclipse, что позволяет обеспечить платформо-независимость и максимально упростить работы по настройке и сопровождению. Интегрированная среда состоит из следующих модулей:
парсера, предназначенного для импорта и экспорта данных по настройке тестового окружения из внутренней модели данных;
модели данных, позволяющей хранить информацию из конфигурационного файла в специализированной модели среды eclipse;
пользовательского интерфейса, основанного на применении технологии GEF (Graphical Editing Framework), дающего возможность быстрого ввода и редактирования данных;
менеджера запуска - модуля, позволяющего легко собирать произвольные цепочки запуска инструментов TAT и вспомогательных скриптов.
Архитектура интегрированной среды представлена на рис. 1. Среда реализована в виде модуля (плагина) для eclipse, что позволяет макси-
Рис. 1. Интегрированная среда автоматизации тестирования
мально упростить ее инсталляцию и настройку. Используемая модулем модель данных содержит: описание объектов, участвующих в процессе тестирования;
описание сигналов между объектами; определение типов и параметров сигналов; описание списка тестов; данные по настройке инструментов; описание цепочек запуска инструментов. Информация, представленная в модели данных, отображается в графическом интерфейсе, позволяющем анализировать и редактировать данные, необходимые для настройки процесса тестирования.
Технология автоматизации тестирования. Технология автоматизации, основанная на ис-
пользовании интегрированной среды, состоит из трех этапов:
конфигурации тестового окружения; создании цепочек исполнения инструментов; исполнения и анализа тестового набора. Для удобства использования каждый из этапов реализуется с помощью специализированного пользовательского интерфейса. При этом, что немаловажно, данные по настройке процесса тестирования хранятся в общей модели данных, доступной из любого пользовательского интерфейса.
На первом этапе пользователь создает новую конфигурацию для хранения данных или импортирует уже существующую и на ее основе настраивает тестовое окружение, определяя объекты тести-
Менеджер инструментов Рис. 2. Технология настройки процесса тестирования
рования и их коммуникационный интерфейс. На втором этапе создается цепочка запуска инструментов, которые проводят подготовку теста к исполнению. На третьем этапе происходит непосредственно исполнение тестов и анализ результатов.
Этапы технологии автоматизации тестирования приведены на рис. 2.
Рассмотрим каждый из представленных этапов более подробно.
Настройка тестового окружения - одна из основных задач в рамках процесса автоматизации тестирования. Рассматриваемая в статье интегрированная среда основана на использовании нотации MSC, с помощью которой пользователь создает тесты. Пример теста приведен на рис. 3.
Основными элементами языка являются сущности (instances), описывающие объект тестирования и тестовое окружение, и сигналы (messages), описывающие воздействия на тестируемую систему и ее отклики. Таким образом, настройка тестового окружения заключается в ассоциации сущностей с реальными объектами и описании сигналов. В данном примере сущность TAT должна быть проассоциирована с системой тестирования, а сущность SUT (System Under Test) с тестовой системой. Пример подобной настройки приведен на рис. 4.
Рис. 3. Тест на языке MSC
В рамках настройки сигналов пользователь должен описать имена и направления сигналов, а также множество параметров сигналов и их типы. Данная информация будет использована системой автоматизации тестирования TAT для генерации коммуникационного модуля, позволяющего отправлять на тестируемую систему воздействия и анализировать ее отклики.
Настройка цепочки исполнения инструментов. Для успешного проведения тестирования пользователю зачастую необходимо провести ряд подготовительных работ. К ним относятся:
удаление из диаграмм тестов избыточной информации;
9 'WCccfoEdtor a' -J^umil.mpf | , CarRado.nti
Signals
Signals
ReOW«inq Soçk
u
rwfnc type 1 bmccxJt corrmer* I*
¡AuîoSe-îrth Down r _ IL
AuîôSeifiïi Up m
Char*?* îtanç* in
rt
freqjjp n zl
Perimeters
name tyoe j coonment
Il ratete
I Add
-a
À
ccrfi«.tatsxol Tool Setup [ Confia I >3"'^- Instant« [ UserFuncttons Lowing | Ими \ Datatypes f Run [
♦ 'TATGcrftgbits* ¡3\,L utmt.ru» | ^ CarRado.xfc j
Instances
IiHtwce
name I type | й | toymen*
lUitl tfn 1
Beil fiWeW 2
name typa [ sortottt» милИнЛНпя... *
.1 1 и
t.x<«.ta<[»<>: I It* setup <-«il.: 1 agiMti 11nйти ШЫъпОюк] Logging Маен» I DataT««|
Рис. 4. Настройка сущностей и сигналов
композиция инстанции; удаление невидимых сигналов из диаграмм; добавление конфигурационных сигналов; инициализация тестового приложения; генерация дополнительных конфигурационных файлов.
Перечисленные работы полностью автоматизированы с помощью специализированных скриптов.
Однако пользователю важна проблема создания цепочки запуска, т. е. последовательности исполнения инструментов тестирования, которая может быть различной для различных запусков тестового набора. В частности, сама система автоматизации тестирования TAT представляет набор подобных инструментов (модулей):
макропроцессор, позволяющий раскрывать макроподстановки, использованные в диаграммах тестов;
генератор абстрактного тестового набора, преобразующий тест на MSC в промежуточное платформонезависимое представление на скрип-товом языке tcl;
кодогенерирующий шаблон, позволяющий получить код теста на целевом языке программирования из промежуточного представления на tcl;
анализатор результатов тестирования, дающий возможность сбора статистики по исполненным тестам.
и др., в т. ч. вновь реализованные или третье-сторонние модули
Перечисленные модули служат компонентами процесса автоматизации тестирования и, в зависимости от задач пользователя, могут быть включены или исключены из цепочки автоматизации.
Для решения проблемы создания гибких цепочек запуска в интегрированной среде исполь-
Рис. 5. Запуск цепочки исполнения
зован механизм интеграции (склеивания) различных инструментов в общую последовательность. Пользовательский интерфейс запуска цепочки исполнения представлен на рис. 5. В рамках цепочки исполнения выполняются семь вспомогательных скриптов, затем управление передается на цепочку запуска модулей TAT для генерации теста на целевом языке, после чего происходит исполнение теста и анализ результатов.
При этом пользователь управляет запуском либо всей цепочки, либо ее части, вплоть до отдельного запуска любого из инструментов.
На рис. 6 представлен пользовательский интерфейс создания цепочки.
Рис. 6. Настройка цепочки исполнения
Рис. 7. Пользовательский интерфейс анализа результатов тестирования
В левой части рисунка представлен интерфейс по настройке отдельного инструмента в рамках цепочки. В качестве инструмента может быть использован как модуль системы автоматизации тестирования TAT, так и любой модуль стороннего разработчика.
Для настройки модуля пользователю необходимо указать имя модуля, которое будет использоваться для его идентификации в рамках цепочки, строку запуска, указывающую на расположение модуля и входные параметры, позволяющие его сконфигурировать. В правой части рисунка представлен интерфейс формирования цепочки. В рамках данного интерфейса пользователь может выбрать модуль из множества настроенных в системе модулей и добавить его в цепочку.
В интегрированной среде автоматизации пользователю предоставляется возможность:
перегруппировки моделей в рамках цепочки, что позволяет изменить последовательность их исполнения;
создания подцепочек, что дает возможность вторично использовать уже созданные цепочки.
Исполнение и анализ тестового набора. Исполнение тестового набора происходит на основе созданных цепочек. После предварительной об-
работки тестов и их генерации на целевой язык проводится компиляция тестового набора и его запуск. В результате запуска генерируется набор лог-файлов, которые облегчают пользователю анализ результатов. На рис. 7 изображен интерфейс, предоставляемый средой автоматизации тестирования для анализа результатов исполнения тестов.
В рамках данного интерфейса пользователь получает возможность просмотра статистики результатов проведенного тестирования, а также возможность анализа результатов каждого теста как в текстовом, так и в графическом (на MSC диаграмм) виде.
Представленная в статье интегрированная среда автоматизации тестирования на основе eclipse была апробирована в трех проектах из телекоммуникационной сферы. Результаты апробации показали, что использование среды позволяет существенно сократить время на настройку и адаптацию тестового набора, а также облегчить процесс анализа результатов исполнения тестового набора. Так, например, для тестового проекта CDMA было получено 20 % сокращение затрат на настройку тестового окружения.
СПИСОК ЛИТЕРАТУРЫ
1. Котляров, В. Основы современного тестирования программного обеспечения, разработанного на C# [Текст]/В. Котляров, Т. Коликова.
2. UML Distilled Second Edition A Brief Guide to the Standard Object Modeling Language [Электронный ресурс].
3. ITU Recommendation Z.120. Message Sequence Charts (MSC), 11/99 [Электронный ресурс].
4. Telelogic Tau TTCN Suite [Электронный ресурс] http://www.telelogic.com/products/tau/ttcn/ index.cfm
5. T-VEC Technologies [Электронный ресурс] http://www.t-vec.com/Home.asp
6. ISP RAS Red Verst [Электронный ресурс] http://www.ispras.ru/~RedVerst
7. Conformiq Software Ltd. [Электронный ресурс] http://www.conformiq.com/products.html
8. Веселов, А.О. Автоматизация тестирования телекоммуникационных приложений [Текст]/А.О. Веселов, А.С. Иванов, Б.В. Тютин, В.П. Котляров//Научно-технические ведомости СПбГПУ.-2009.-№ 3.
УДК 004.415
И.В. Никифоров, А.В. Петров, Ю.В. Юсупов
генерация формальной модели системы
ПО ТРЕБОВАНИЯМ, ЗАДАННЫМ В НОТАцИИ USE CASE MAP
Разработка программного продукта начинается с анализа требований, которым должна удовлетворять система, поскольку они разрабатываются вручную и им свойственны противоречивость, неполнота, недостаточная детальность и т. п. Для того чтобы на этапе проектирования требований более точно понять, как должна работать система, необходимо использовать описание архитектуры и поведения системы через диаграммы вариантов использования (UCM - Use Case Maps).
Формализуя высокоуровневый дизайн программной системы в нотации UCM, в результате получаем ее модель на формальном языке. Формальная модель позволяет применить математический аппарат верификации, получить спектр моделей различной детальности в процессе уточнений, а также имеется возможность автоматической генерации исполняемого кода из модели.
Верификация позволяет осуществить проверку корректности, полноты и непротиворечивости требований до этапа автоматической кодогенера-ции, что существенно снижает стоимость создания корректной исполнимой модели проектируемой системы.
В качестве языка описания формальной модели была выбрана нотация базовых протоколов,
используемая в теории взаимодействующих агентов и сред [1] для спецификации их поведения с помощью элементарных MSC диаграмм.
В статье описаны особенности использования языка UCM на этапе архитектурного описания проектируемой системы, автоматический переход от нотации UCM к формальной модели в виде базовых протоколов, средства проверки простых ошибок и описок ручной формализации, а также результаты применения разработанного подхода к разработке реальных проектов.
Use Case Maps
Варианты использования - это описание последовательности действий, которые может производить система в ответ на внешние воздействия пользователей или программных систем (компонентов). Варианты использования отражают функциональность системы с точки зрения описания архитектуры системы. Их применение привносит важные составляющие в процесс разработки программных систем [2]:
заполняет промежуток между словесным описанием требований и детальным дизайном системы;
позволяет разработать архитектуру системы на высоком уровне абстракции, а также за-