Беседа о тестовых данных

38
Scalable eCommerce Plaorm Soluons Беседа о тестовых данных Алексей Лянгузов

Upload: sqalab

Post on 24-Jul-2015

217 views

Category:

Education


3 download

TRANSCRIPT

Scalable eCommerce Platform Solutions

Беседа о тестовых данных

Алексей Лянгузов

План

А давайте поговорим про тестовые данные.

*Спасибо интернету за картинки. Все права принадлежат авторам изображений.

Проблематика

Чтобы что-то протестировать нужны …

Проблематика

Чтобы что-то протестировать нужны …

ЛЮДИ!

Проблематика

Чтобы что-то протестировать нужны …

ЛЮДИ!

Планируют и тестируют

самостоятельно

Заставляют тестировать

других

Доказывают существование

проблем

Проблематика

Чтобы что-то протестировать нужны …

ЛЮДИ!

Планируют и тестируют

самостоятельно

Заставляют тестировать

других

Доказывают существование

проблем

ТЕСТОВЫЕ ДАННЫЕ

...а им для этого нужны

Проблематика

Чтобы что-то протестировать нужны …

ТЕСТОВЫЕ ДАННЫЕ

ТЕСТОВЫЕ ДАННЫЕ

Проблематика

Чтобы что-то протестировать нужны …

Ну хоть какие-нибудь!

Для позитивных

тестов

Для негативных

тестов

Большиедля нагрузки

Маленькиедля смоков

Разнообразные

Полноценные

НеустаревающиеТочные

Достаточные

Непротиворечивые

Зависимые

Не зависимые

ТЕСТОВЫЕ ДАННЫЕ

Проблематика

Чтобы что-то протестировать нужны …

Ну хоть какие-нибудь!

Для позитивных

тестов

Для негативных

тестов

Большиедля нагрузки

Маленькиедля смоков

Разнообразные

Полноценные

НеустаревающиеТочные

Достаточные

Непротиворечивые

Зависимые

Не зависимые

И чтобы всем этим было просто и легко управлять

ТЕСТОВЫЕ ДАННЫЕ

Проблематика

Чтобы что-то протестировать нужны …

Ну хоть какие-нибудь!

Для позитивных

тестов

Для негативных

тестов

Большиедля нагрузки

Маленькиедля смоков

Разнообразные

Полноценные

НеустаревающиеТочные

Достаточные

Непротиворечивые

Зависимые

Не зависимые

И чтобы всем этим было просто и легко управлять

А что у вас не так?

- На чтожалуетесь?

Реальные или нереальные

Реальные данныеМинусы: - неизвестны - громоздки - изменчивы

Самодельные данныеМинусы: - надо делать - надо знать тех. детали - синтетичны

Реальные или нереальные

Реальные данныеМинусы: - неизвестны - громоздки - изменчивыПлюсы:- они есть!- многообразны- реальны

Самодельные данныеМинусы: - надо делать - надо знать тех. детали - синтетичныПлюсы: - легки - точны - постоянны

Самодельная неизвестность

Куча данных

Самодельная неизвестность

Куча данных

5% данных

Самодельная неизвестность

Куча данных

5% данных

Копирование нужныхданных

Самодельная неизвестность

Куча данных

5% данных

Копирование нужныхданных

Поднавалитьсвоих данных

Откуда берутся данные

Ctrl+CCtrl+V

Откуда берутся данные

Каналы информации

Ctrl+CCtrl+V

КаналыИнформации

Откуда берутся данные

Каналы информации

Ctrl+CCtrl+V

КаналыИнформации

ГенераторыДанных

Откуда берутся данные

Каналы информации

Ctrl+CCtrl+V

ГенераторыДанных

КаналыИнформации

E T L

Данные - неданные

Dummy Fake

Данные - неданные

Dummy FakeStub Mock

Статика или динамика

Делать ли тестовые данные динамическими?

ДА? НЕТ?

WTF?

Не человек хардкодит данные в тесте.

Тест хардкодит данные в отчёте!

Предсказуемые случайности import java.util.Random;

public class HelloWorld{ private static final long SEED1 = 441287210; private static final long SEED2 = -6732303926L; private static final long SEED3 = 123;

public static void main(String []args){ Random random = new Random(SEED2); for (int i=0; i < 10; ++i) { System.out.print(random.nextInt(10) + " "); } System.out.println(); }}

Попробовать можно тут: http://www.tutorialspoint.com/compile_java_online.php

Данные и типы тестирования

Unit/Component

Integration/Functional

System/Acceptance/E2E

Mocks/Synthetic

Any/Combine

Real

Много датасетов или один

100 х $1 $100 х 1

Нетехнические проблемы

Как поделить тестовую среду?

Даёшь каждому свое тестовое окружение!

Лоскутное одеяло

Сгодится, когда много людей правят одни данные

Другие проблемы

Проблемы:● Нет доступа к БД● Нет данных (не готовы)● Нет возможности установить стаб● Недоступны внешние каналы

Причины:● Чудаки● Чудозвоны

Решения:● Кнут● Пряник● НЛП● НЛО

Как измерить покрытие?

???

Как узнать покрытие по тестовым данным?

Даже если мы предполагаем, что эти данные используются, мы не знаем как в этом убедиться.

Как узнать покрытие по данным?

НИКАК,КАРЛ!

Решение: Пулы данных

Environment 1 Environment 2 Environment 3

Data Pool 1 Data Pool 2 Data Pool 3

Before Testing Before Testing Before Testing

Tests

Select data by criteria

Решение-мечта

Data Pool

Вопросы

QA

Input author here

Thank you