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/Dev
Environment
QA
Environment
SIT
Environment
Pred-Prod
Environment
Production
Environment
Updatable,
Predictable
Partially updatable,
Pretty predictable
Not-updatable,
Unpredictable
5
Проблемы при автоматизации: сервисы
Local/Dev
Environment
QA
Environment
SIT
Environment
Pred-Prod
Environment
Production
Environment
Mockable,
Restricted
Partially mockable,
Partially restricted
Non-mockable,
Fully-deployed
X X
V
V X
V
V V
V
6
Проблемы при ручном тестировании
Такие же:
Данные меняются непредсказуемым образом на “старших” тестовых окружениях.
7
Методы решения проблем
Дуплицирование тестов
Дуплицирование данных
Добавление
синтетических данных
Генерация данных
Фильтрованные потоки
данных
Stubs, Mocks, Fakes
8
Пусть тесты сами найдут себе данные
Test 1
1. Get fresh data
2. Do test
Test 2
1. Get fresh data
2. Do test
Test N
1. Get fresh data
2. Do test
...
9
Пусть тесты сами найдут себе данные
Test 1
1. Get fresh data
2. Do test
Test 2
1. Get fresh data
2. Do test
Test N
1. Get fresh data
2. Do test
...
Sub-suite 1
1. Get fresh data
2. Do test
Sub-suite 2
1. Get fresh data
2. Do test
Sub-suite N
1. Get fresh data
2. Do test
...
10
Задача
Написать один тест, который в зависимости от окружения и настроек будет
подбирать необходимые данные для проведения эксперимента, соответствующие
тому окружению, на котором тест запущен.
11
Решение
Использовать в тестах атрибутированные данные, которые тесты могут выбрать из
заранее подготовленного “пула данных”, заполненного непосредственно перед
тестом на том окружении, в котором он запущен.
12
Концепция дата-пулов
Define Data Types
Write 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
Контакты:
budabum@gmail.com (Alexey Lyanguzov)

Data Pools - средство управления тестовыми данными