Upload
sqalab
View
94
Download
0
Embed Size (px)
Citation preview
11
Data Pools
November 2016
средство управления тестовыми данными
Алексей Лянгузов
2
Введение: от слов к делу
http://sqadays.com/en/talk/34880 https://github.com/griddynamics/test-data-pool
3
1.
План
1. Проблема.2. Традиционные подходы решения.3. Концепция дата-пулов.4. Как пользоваться java-библиотекой для автоматизированного
тестирования.5. Как можно было бы пользоваться для ручного тестирования.
4
Проблемы при автоматизации: данные
Local/DevEnvironment
QAEnvironment
SITEnvironment
Pred-ProdEnvironment
ProductionEnvironment
Updatable,Predictable
Partially updatable,Pretty predictable
Not-updatable,Unpredictable
5
Проблемы при автоматизации: сервисы
Local/DevEnvironment
QAEnvironment
SITEnvironment
Pred-ProdEnvironment
ProductionEnvironment
Mockable,Restricted
Partially mockable,Partially restricted
Non-mockable,Fully-deployed
X XV
V XV
V VV
6
Проблемы при ручном тестировании
Такие же:
Данные меняются непредсказуемым образом на “старших” тестовых окружениях.
7
Методы решения проблем
Дуплицирование тестов
Дуплицирование данных
Добавление синтетических данных
Генерация данных
Фильтрованные потоки данных
Stubs, Mocks, Fakes
8
Пусть тесты сами найдут себе данные
Test 1
1. Get fresh data2. Do test
Test 2
1. Get fresh data2. Do test
Test N
1. Get fresh data2. Do test
...
9
Пусть тесты сами найдут себе данные
Test 1
1. Get fresh data2. Do test
Test 2
1. Get fresh data2. Do test
Test N
1. Get fresh data2. Do test
...
Sub-suite 1
1. Get fresh data2. Do test
Sub-suite 2
1. Get fresh data2. Do test
Sub-suite N
1. Get fresh data2. Do test
...
10
Задача
Написать один тест, который в зависимости от окружения и настроек будет подбирать необходимые данные для проведения эксперимента, соответствующие
тому окружению, на котором тест запущен.
11
Решение
Использовать в тестах атрибутированные данные, которые тесты могут выбрать из заранее подготовленного “пула данных”, заполненного непосредственно перед
тестом на том окружении, в котором он запущен.
12
Концепция дата-пулов
Define Data TypesWrite a Datatype
Manager for every Data Type
Fetch data from different Data Sources into Data
Pools
Use attributed data in tests
Reuse Data Pools among test runs
13
data-pool: installation
<dependency> <groupId>com.griddynamics.qa.datapool</groupId> <artifactId>data-pool</artifactId> <version>1.0.1</version></dependency>
14
data-pool: features
15
data-pool: data types
16
data-pool: data type examples
● Id● FirstUserName● MiddleUserName● LastUserName● Age● Birthday
17
data-pool: data type examples
● Id● FirstUserName● MiddleUserName● LastUserName● Age● Birthday
● Id● Type● Quote
18
data-pool: Datatype Manager
19
data-pool: fetching data
20
data-pool: использование в java коде
21
data-pool: использование с cucumber
22
future: для мануальщиков: fetching
23
future: для мануальщиков: finding
24
Полезные ссылки
GitHub:
https://github.com/griddynamics/test-data-pool
Maven:
http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22data-pool%22
Контакты:[email protected] (Alexey Lyanguzov)