Надежда Серкова -- Автоматическая генерация perl...

Post on 12-Jun-2015

592 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Серкова Надежда

Шваркунов Сергей19 – 20 ноября 2010

Автоматическая генерация Perl скриптов для тестирования

систем хранения данных

Введение

Взаимодействие с системой хранения данных EMC Celerra осуществляется через графический интерфейс или через интерфейс командной строки (CLI интерфейс). Возможности CLI-интерфейса позволяют конфигурировать систему при помощи скриптов, а также открывают большие возможности для её тестирования. Поскольку этот интерфейс сам является частью нового продукта, он тоже должен быть протестирован как компонент системы.

EMC Celerra

Формулировка проблемы

• Большое количество команд

– Большое количество тестов • Сложности с их

– Созданием– Систематизацией \ навигацией– Модификацией

Решение

• Система автоматической генерации тестов– Хранение всей информации, необходимой

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

– Полное отсутствие необходимости написания или правки скриптов вручную

– Общая структура всех файлов тестов

Реализация:

• Выбор языка программирования

– Perl• Разбор структур данных• Работа с текстом• Создание и передача между

компонентами внутренних структур данных

• Linux окружение

Схема системы автоматической генерации тестов

1

domain_list.txt

get_automatic_tests.pl

2

3

Script_Generator.pm

<object>.csv

4

<Object>.pm :

sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}

template.pl

CLI_Test.pm CLI_Parametres.pmgenerated test

Синтаксис CLI команд • Объект: Shared folder

– Действия и их параметры:• Show:

– id, не обязателен– output, не обязателен, допустимые значения – table,

detail– mode, не обязателен, допустимые значения – brief,

detail• Create:

– name, обязателен– descr, не обязателен– res, обязателен– path, обязателен

• Delete– id, обязателен

Синтаксис CLI команд: продолжение • Вид возможных команд для объекта Shared

folder:– sf create –name share1 –res RES_05 –path “share”– sf create –name share2 –descr “my share” –res

RES_00 –path “share/another”– sf show– sf show –output table– sf show –mode detail– sf show –output nvp –mode detail– sf –id share1 show –mode brief– sf –id share2 delete

Структура таблицы

1

domain_list.txt

get_automatic_tests.pl

2

3

Script_Generator.pm

<object>.csv

4

<Object>.pm :

sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}

template.pl

CLI_Test.pm CLI_Parametres.pmgenerated test

Структура таблицы: продолжение

cmd start positive sf show

id <> share_1 share_2 default_share

output table <> nvp

mode brief detail <>

cmd end

“<>” – означает, что параметр отсутствует в команде

Принцип построения команд

cmd start positive sf show

id <> share_1 share_2 default_share

output table <> nvp

mode brief detail <>

cmd end

sf show –output table –mode brief

sf show –id share1 –mode detail

sf show –id share2 –output nvp

Принцип построения команд: продолжение

cmd start positive sf show

id <> share_1 share_2 default_share

output table <> nvp

mode brief detail <>

cmd end

sf show –id defult_share –output table –mode brief

Структура модуля

1

domain_list.txt

get_automatic_tests.pl

2

3

Script_Generator.pm

<object>.csv

4

<Object>.pm :

sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}

template.pl

CLI_Test.pm CLI_Parametres.pmgenerated test

Структура модуля: продолжениеsub precheck_sf{

my $command = shift;if ($$command{“action”} eq “show”){

if (defined $$command{“id”}){

my $id = $$command{“id”};# добавить в файл теста строки, # обеспечивающие наличие объекта с данным id

}}if ($$command{“action”} eq “create”) {…}if ($$command{“action”} eq “delete”) {…}

} sub check_sf {…}sub postcheck_sf {…}

МодификацияПри изменении синтаксиса команды или формата допустимых значений параметров необходимо:– Внести изменения в текст всех уже созданных

тестовых скриптов– Гарантировать их целостность и корректность их

работы после изменений

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

Заключение• Была разработана и реализована система

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

• Преимущества– Упростилось управление тестами– Уменьшилось влияние человеческого фактора– Все скрипты имеют общую структуру и формат заголовка,

что позволило автоматизировать отображение их результатов и занесение тестов и результатов в трекерную систему

– Возможность сгенерировать ранее не выполнявшиеся тестовые скрипты

Спасибо

top related