Интеллектуальная система автоматизации тестирования...

Preview:

DESCRIPTION

Доклад Андрея Пахомова и Сергея Аксененко, SQA Days-13, 26-27 апреля 2013, www.sqadays.com

Citation preview

1© Copyright 2013 EMC Corporation. All rights reserved.

Интеллектуальная система автоматизации тестирования на базе Groovy

Аксененко СергейПахомов Андрей

Санкт-Петербургский центр разработок ЕМС

2© Copyright 2013 EMC Corporation. All rights reserved.

О чем мы будем говорить:

Зачем «изобретать велосипед»

Как спроектировать систему тестирования

И как ее реализовать

И о чем не будем:

Универсальные решения на все случаи жизни

Процессы тестирования

Как мы все здорово протестировали

3© Copyright 2013 EMC Corporation. All rights reserved.

Зачем «изобретать велосипед»

4© Copyright 2013 EMC Corporation. All rights reserved.

Тестируемые продукты

VPLEX

ACCESS

ANYWHERE

RECOVERPOINT

PROTECTEVERYWHERE

VM

AX

5© Copyright 2013 EMC Corporation. All rights reserved.

Тестовый стенд

Application

Data Center A Data Center B

Data Center CTest engine

6© Copyright 2013 EMC Corporation. All rights reserved.

Элементы идеальной тестовой системы

Структура• Иерархия• Параметризация

Сценарии• Простота и гибкость• Универсальность

Структура• Иерархия• Параметризация

Сценарии • Простота и гибкость• Универсальность

Модель• Уровень абстракции• Адаптеры

Конфигурация

7© Copyright 2013 EMC Corporation. All rights reserved.

Структура сценариев

Структура

Сценарии

Модель

Конфигурация

• Иерархия• Параметризация

• Простота и гибкость• Универсальность

• Уровень абстракции• Адаптеры

8© Copyright 2013 EMC Corporation. All rights reserved.

Структура блоков скриптового сценария

Suite

ScenarioTest Case

Test Step

Verification

Action

9© Copyright 2013 EMC Corporation. All rights reserved.

Проектирования языка сценариев

Структура

Сценарии

Модель

Конфигурация

• Иерархия• Параметризация

• Простота и гибкость• Универсальность

• Уровень абстракции• Адаптеры

10© Copyright 2013 EMC Corporation. All rights reserved.

Предметно-ориентированный язык (DSL)

+ Разделение логики сценариев и среды для их запуска+ Создание и изменение сценариев силами QA

- Дополнительная затрата ресурсов на разработку скриптового языка

11© Copyright 2013 EMC Corporation. All rights reserved.

Groovy как основа для создания DSL

Интерпретация вместо компиляции

Полная интеграция с JAVA

Возможность перегрузки стандартных конструкций языка

Лаконичность

Поддержка со стороны основных IDE

12© Copyright 2013 EMC Corporation. All rights reserved.

Предметно-ориентированный язык

Компоненты предметно-ориентированного языка

groovy.lang.Script

BaseSript

Script Engine

Filters

Blocks

Verifications

• Бесконтекстные операции• Операторы • Структура блоков

13© Copyright 2013 EMC Corporation. All rights reserved.

DSL как средство агрегации знаний

Знания

DSL

Model

Groovy

Библиотеказнаний

14© Copyright 2013 EMC Corporation. All rights reserved.

Концепция фильтров

Декларативно описывает свойства объекта

Во время прогона теста выделяет коллекцию объектов модели

Возможность комбинировать вместе несколько фильтров

15© Copyright 2013 EMC Corporation. All rights reserved.

Операции над множествами

+

*-

Доменная область

Примеры кода:

• Figure.RED * Figure.Star

• ((Figure.CIRCLE + Figure.TRIANGLE)

* Figure.GREEN)

16© Copyright 2013 EMC Corporation. All rights reserved.

expected events in 1.min { every Host.PRODUCTION => Event.10203}

Логика проверок

Expected

Темпоральный оператор Время Квантор Фильтр Событие/

состояние

17© Copyright 2013 EMC Corporation. All rights reserved.

Проверки (expected блок)

Темпоральные операторы– States (n1, n2 => s1 , Δt)

– Events (n1, n2=>e1 || e2 , Δt)

– Stability (n1,n2 => s1, Δt)

n1 s0 s1n2 s2 s1

n1n2

Satisfied

Satisfied

n1 e1n2 e2

Satisfied

18© Copyright 2013 EMC Corporation. All rights reserved.

Модель тестового стенда

Структура

Сценарии

Модель

Конфигурация

• Иерархия• Параметризация

• Простота и гибкость• Универсальность

• Уровень абстракции• Адаптеры

19© Copyright 2013 EMC Corporation. All rights reserved.

Пример

h1 h2 h3 h4 h5

SW1 SW2

Test enginePRODUCTION REPLICA

Зап

ись

Чте

ни

е

Репликация

20© Copyright 2013 EMC Corporation. All rights reserved.

Пример скрипта

scenario("WriteAndCheck") {

Timeout writeTime = userVariable("writeTime", Timeout)

Host.PRODUCTION.startWrites() //h1,h2,h3 start writing

writeTime.sleep()

testStep(“switchDisaster”) {

Switch.byHost(Host.PRODUCTION).disableLink() //SW1

expected events in 15.seconds {

Storage.PRODUCTION => Event.REPLICATION_FAILED

}

}

21© Copyright 2013 EMC Corporation. All rights reserved.

Пример скрипта (продолжение)

testStep(“Disaster recovery”) {

Switch.byHost(Host.PRODUCTION).enableLink()

expected events in 1.min {

Storage.PRODUCTION => Event.REPLICATION_RESTORED

}

expected states in 10.min {

Storage.REPLICA => SyncState.SYNCHRONIZED

}

}

Host.PRODUCTION.stopWrites()

(Host.PRODUCTION + Host.REPLICA).checkConsistency()

}

22© Copyright 2013 EMC Corporation. All rights reserved.

Конфигурация системы

Структура

• Иерархия

• Параметризация

Сценарии

• Простота и гибкость

• Универсальность

Модель

• Уровень абстракции

• Адаптеры

Конфигурация

23© Copyright 2013 EMC Corporation. All rights reserved.

КонфигурацияКонфигурационный файл: Минимальный набор данных об оборудовании

Построение топологии FC сети

24© Copyright 2013 EMC Corporation. All rights reserved.

Что дальше...

ITE (Integrated Testing Environment)

Непрерывная интеграция

Виртуальная/облачная тестовая среда

25© Copyright 2013 EMC Corporation. All rights reserved.

Итоги

Составляющие эффективной тестовой системы

Библиотека знаний

Гибкое конфигурирование

Recommended