2. 2
Введение: от слов к делу
http://sqadays.com/en/talk/34880 https://github.com/griddynamics/test-data-pool
3. 3
1.
План
1. Проблема.
2. Традиционные подходы решения.
3. Концепция дата-пулов.
4. Как пользоваться java-библиотекой для автоматизированного
тестирования.
5. Как можно было бы пользоваться для ручного тестирования.
4. 4
Проблемы при автоматизации: данные
Local/Dev
Environment
QA
Environment
SIT
Environment
Pred-Prod
Environment
Production
Environment
Updatable,
Predictable
Partially updatable,
Pretty predictable
Not-updatable,
Unpredictable
5. 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. 6
Проблемы при ручном тестировании
Такие же:
Данные меняются непредсказуемым образом на “старших” тестовых окружениях.
7. 7
Методы решения проблем
Дуплицирование тестов
Дуплицирование данных
Добавление
синтетических данных
Генерация данных
Фильтрованные потоки
данных
Stubs, Mocks, Fakes
8. 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. 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. 10
Задача
Написать один тест, который в зависимости от окружения и настроек будет
подбирать необходимые данные для проведения эксперимента, соответствующие
тому окружению, на котором тест запущен.
11. 11
Решение
Использовать в тестах атрибутированные данные, которые тесты могут выбрать из
заранее подготовленного “пула данных”, заполненного непосредственно перед
тестом на том окружении, в котором он запущен.
12. 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