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

18
Серкова Надежда Шваркунов Сергей 19 – 20 ноября 2010 Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Upload: sqadays8

Post on 12-Jun-2015

596 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

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

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

Page 2: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Введение

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

Page 3: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

EMC Celerra

Page 4: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

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

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

Page 5: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Решение

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

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

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

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

Page 6: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Реализация:

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

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

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

• Linux окружение

Page 7: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

Page 8: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

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

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

detail• Create:

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

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

Page 9: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Синтаксис 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

Page 10: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

Page 11: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

cmd start positive sf show

id <> share_1 share_2 default_share

output table <> nvp

mode brief detail <>

cmd end

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

Page 12: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

Page 13: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

Page 14: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

Page 15: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Структура модуля: продолжение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 {…}

Page 16: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

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

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

Page 17: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

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

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

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

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

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

Page 18: Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования систем хранения данных

Спасибо