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

25
1 © Copyright 2013 EMC Corporation. All rights reserved. Интеллектуальная система автоматизации тестирования на базе Groovy Аксененко Сергей Пахомов Андрей Санкт-Петербургский центр разработок ЕМС

description

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

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

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

1© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

2© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

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

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

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

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

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

3© Copyright 2013 EMC Corporation. All rights reserved.

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

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

4© Copyright 2013 EMC Corporation. All rights reserved.

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

VPLEX

ACCESS

ANYWHERE

RECOVERPOINT

PROTECTEVERYWHERE

VM

AX

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

5© Copyright 2013 EMC Corporation. All rights reserved.

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

Application

Data Center A Data Center B

Data Center CTest engine

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

6© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

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

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

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

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

7© Copyright 2013 EMC Corporation. All rights reserved.

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

Структура

Сценарии

Модель

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

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

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

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

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

8© Copyright 2013 EMC Corporation. All rights reserved.

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

Suite

ScenarioTest Case

Test Step

Verification

Action

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

9© Copyright 2013 EMC Corporation. All rights reserved.

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

Структура

Сценарии

Модель

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

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

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

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

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

10© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

11© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

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

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

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

12© Copyright 2013 EMC Corporation. All rights reserved.

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

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

groovy.lang.Script

BaseSript

Script Engine

Filters

Blocks

Verifications

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

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

13© Copyright 2013 EMC Corporation. All rights reserved.

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

Знания

DSL

Model

Groovy

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

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

14© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

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

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

15© Copyright 2013 EMC Corporation. All rights reserved.

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

+

*-

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

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

• Figure.RED * Figure.Star

• ((Figure.CIRCLE + Figure.TRIANGLE)

* Figure.GREEN)

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

16© Copyright 2013 EMC Corporation. All rights reserved.

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

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

Expected

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

состояние

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

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

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

18© Copyright 2013 EMC Corporation. All rights reserved.

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

Структура

Сценарии

Модель

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

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

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

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

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

19© Copyright 2013 EMC Corporation. All rights reserved.

Пример

h1 h2 h3 h4 h5

SW1 SW2

Test enginePRODUCTION REPLICA

Зап

ись

Чте

ни

е

Репликация

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

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

}

}

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

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()

}

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

22© Copyright 2013 EMC Corporation. All rights reserved.

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

Структура

• Иерархия

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

Сценарии

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

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

Модель

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

• Адаптеры

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

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

23© Copyright 2013 EMC Corporation. All rights reserved.

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

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

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

24© Copyright 2013 EMC Corporation. All rights reserved.

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

ITE (Integrated Testing Environment)

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

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

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

25© Copyright 2013 EMC Corporation. All rights reserved.

Итоги

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

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

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