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

Preview:

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

Контакты:budabum@gmail.com (Alexey Lyanguzov)

Recommended