Интеллектуальная система автоматизации тестирования...
DESCRIPTION
Доклад Андрея Пахомова и Сергея Аксененко, SQA Days-13, 26-27 апреля 2013, www.sqadays.comTRANSCRIPT
![Page 1: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/1.jpg)
1© Copyright 2013 EMC Corporation. All rights reserved.
Интеллектуальная система автоматизации тестирования на базе Groovy
Аксененко СергейПахомов Андрей
Санкт-Петербургский центр разработок ЕМС
![Page 2: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/2.jpg)
2© Copyright 2013 EMC Corporation. All rights reserved.
О чем мы будем говорить:
Зачем «изобретать велосипед»
Как спроектировать систему тестирования
И как ее реализовать
И о чем не будем:
Универсальные решения на все случаи жизни
Процессы тестирования
Как мы все здорово протестировали
![Page 3: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/3.jpg)
3© Copyright 2013 EMC Corporation. All rights reserved.
Зачем «изобретать велосипед»
![Page 4: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/4.jpg)
4© Copyright 2013 EMC Corporation. All rights reserved.
Тестируемые продукты
VPLEX
ACCESS
ANYWHERE
RECOVERPOINT
PROTECTEVERYWHERE
VM
AX
![Page 5: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/5.jpg)
5© Copyright 2013 EMC Corporation. All rights reserved.
Тестовый стенд
Application
Data Center A Data Center B
Data Center CTest engine
![Page 6: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/6.jpg)
6© Copyright 2013 EMC Corporation. All rights reserved.
Элементы идеальной тестовой системы
Структура• Иерархия• Параметризация
Сценарии• Простота и гибкость• Универсальность
Структура• Иерархия• Параметризация
Сценарии • Простота и гибкость• Универсальность
Модель• Уровень абстракции• Адаптеры
Конфигурация
![Page 7: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/7.jpg)
7© Copyright 2013 EMC Corporation. All rights reserved.
Структура сценариев
Структура
Сценарии
Модель
Конфигурация
• Иерархия• Параметризация
• Простота и гибкость• Универсальность
• Уровень абстракции• Адаптеры
![Page 8: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/8.jpg)
8© Copyright 2013 EMC Corporation. All rights reserved.
Структура блоков скриптового сценария
Suite
ScenarioTest Case
Test Step
Verification
Action
![Page 9: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/9.jpg)
9© Copyright 2013 EMC Corporation. All rights reserved.
Проектирования языка сценариев
Структура
Сценарии
Модель
Конфигурация
• Иерархия• Параметризация
• Простота и гибкость• Универсальность
• Уровень абстракции• Адаптеры
![Page 10: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/10.jpg)
10© Copyright 2013 EMC Corporation. All rights reserved.
Предметно-ориентированный язык (DSL)
+ Разделение логики сценариев и среды для их запуска+ Создание и изменение сценариев силами QA
- Дополнительная затрата ресурсов на разработку скриптового языка
![Page 11: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/11.jpg)
11© Copyright 2013 EMC Corporation. All rights reserved.
Groovy как основа для создания DSL
Интерпретация вместо компиляции
Полная интеграция с JAVA
Возможность перегрузки стандартных конструкций языка
Лаконичность
Поддержка со стороны основных IDE
![Page 12: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/12.jpg)
12© Copyright 2013 EMC Corporation. All rights reserved.
Предметно-ориентированный язык
Компоненты предметно-ориентированного языка
groovy.lang.Script
BaseSript
Script Engine
Filters
Blocks
Verifications
• Бесконтекстные операции• Операторы • Структура блоков
![Page 13: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/13.jpg)
13© Copyright 2013 EMC Corporation. All rights reserved.
DSL как средство агрегации знаний
Знания
DSL
Model
Groovy
Библиотеказнаний
![Page 14: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/14.jpg)
14© Copyright 2013 EMC Corporation. All rights reserved.
Концепция фильтров
Декларативно описывает свойства объекта
Во время прогона теста выделяет коллекцию объектов модели
Возможность комбинировать вместе несколько фильтров
![Page 15: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/15.jpg)
15© Copyright 2013 EMC Corporation. All rights reserved.
Операции над множествами
+
*-
Доменная область
Примеры кода:
• Figure.RED * Figure.Star
• ((Figure.CIRCLE + Figure.TRIANGLE)
* Figure.GREEN)
![Page 16: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/16.jpg)
16© Copyright 2013 EMC Corporation. All rights reserved.
expected events in 1.min { every Host.PRODUCTION => Event.10203}
Логика проверок
Expected
Темпоральный оператор Время Квантор Фильтр Событие/
состояние
![Page 17: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/18.jpg)
18© Copyright 2013 EMC Corporation. All rights reserved.
Модель тестового стенда
Структура
Сценарии
Модель
Конфигурация
• Иерархия• Параметризация
• Простота и гибкость• Универсальность
• Уровень абстракции• Адаптеры
![Page 19: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/19.jpg)
19© Copyright 2013 EMC Corporation. All rights reserved.
Пример
h1 h2 h3 h4 h5
SW1 SW2
Test enginePRODUCTION REPLICA
Зап
ись
Чте
ни
е
Репликация
![Page 20: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/22.jpg)
22© Copyright 2013 EMC Corporation. All rights reserved.
Конфигурация системы
Структура
• Иерархия
• Параметризация
Сценарии
• Простота и гибкость
• Универсальность
Модель
• Уровень абстракции
• Адаптеры
Конфигурация
![Page 23: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/23.jpg)
23© Copyright 2013 EMC Corporation. All rights reserved.
КонфигурацияКонфигурационный файл: Минимальный набор данных об оборудовании
Построение топологии FC сети
![Page 24: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/24.jpg)
24© Copyright 2013 EMC Corporation. All rights reserved.
Что дальше...
ITE (Integrated Testing Environment)
Непрерывная интеграция
Виртуальная/облачная тестовая среда
![Page 25: Интеллектуальная система автоматизации тестирования на базе Groovy](https://reader033.vdocuments.us/reader033/viewer/2022061613/557f8406d8b42a55278b4e5d/html5/thumbnails/25.jpg)
25© Copyright 2013 EMC Corporation. All rights reserved.
Итоги
Составляющие эффективной тестовой системы
Библиотека знаний
Гибкое конфигурирование