Научная статья на тему 'Интегрированная среда автоматизации тестирования на основе технологии Eclips'

Интегрированная среда автоматизации тестирования на основе технологии Eclips Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
183
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ / ECLIPSE / MSC ДИАГРАММЫ / СРЕДА АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дробинцев Павел Дмитриевич, Даишев Марат Шамилевич, Котляров Всеволод Павлович

Предложен прототип интегрированной среды автоматизации тестирования на основе технологии Eclipse. Рассмотрены основные недостатки существующих инструментальных средств, проведен их анализ. Предложено на его основе создать новое инструментальное средство, позволяющее сократить затраты на настройку тестового окружения и адаптацию тестового набора.Prototype of integrated environment for testing automation is proposed. Modern testing automation systems analyzed and proposal for creation of new tool for customization of testing process described.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Дробинцев Павел Дмитриевич, Даишев Марат Шамилевич, Котляров Всеволод Павлович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Интегрированная среда автоматизации тестирования на основе технологии Eclips»

УДК 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, в результате получаем ее модель на формальном языке. Формальная модель позволяет применить математический аппарат верификации, получить спектр моделей различной детальности в процессе уточнений, а также имеется возможность автоматической генерации исполняемого кода из модели.

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

используемая в теории взаимодействующих агентов и сред [1] для спецификации их поведения с помощью элементарных MSC диаграмм.

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

Use Case Maps

Варианты использования - это описание последовательности действий, которые может производить система в ответ на внешние воздействия пользователей или программных систем (компонентов). Варианты использования отражают функциональность системы с точки зрения описания архитектуры системы. Их применение привносит важные составляющие в процесс разработки программных систем [2]:

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.