Upload
sqalab
View
217
Download
3
Embed Size (px)
Citation preview
План
А давайте поговорим про тестовые данные.
*Спасибо интернету за картинки. Все права принадлежат авторам изображений.
Проблематика
Чтобы что-то протестировать нужны …
ЛЮДИ!
Планируют и тестируют
самостоятельно
Заставляют тестировать
других
Доказывают существование
проблем
Проблематика
Чтобы что-то протестировать нужны …
ЛЮДИ!
Планируют и тестируют
самостоятельно
Заставляют тестировать
других
Доказывают существование
проблем
ТЕСТОВЫЕ ДАННЫЕ
...а им для этого нужны
ТЕСТОВЫЕ ДАННЫЕ
Проблематика
Чтобы что-то протестировать нужны …
Ну хоть какие-нибудь!
Для позитивных
тестов
Для негативных
тестов
Большиедля нагрузки
Маленькиедля смоков
Разнообразные
Полноценные
НеустаревающиеТочные
Достаточные
Непротиворечивые
Зависимые
Не зависимые
ТЕСТОВЫЕ ДАННЫЕ
Проблематика
Чтобы что-то протестировать нужны …
Ну хоть какие-нибудь!
Для позитивных
тестов
Для негативных
тестов
Большиедля нагрузки
Маленькиедля смоков
Разнообразные
Полноценные
НеустаревающиеТочные
Достаточные
Непротиворечивые
Зависимые
Не зависимые
И чтобы всем этим было просто и легко управлять
ТЕСТОВЫЕ ДАННЫЕ
Проблематика
Чтобы что-то протестировать нужны …
Ну хоть какие-нибудь!
Для позитивных
тестов
Для негативных
тестов
Большиедля нагрузки
Маленькиедля смоков
Разнообразные
Полноценные
НеустаревающиеТочные
Достаточные
Непротиворечивые
Зависимые
Не зависимые
И чтобы всем этим было просто и легко управлять
Реальные или нереальные
Реальные данныеМинусы: - неизвестны - громоздки - изменчивы
Самодельные данныеМинусы: - надо делать - надо знать тех. детали - синтетичны
Реальные или нереальные
Реальные данныеМинусы: - неизвестны - громоздки - изменчивыПлюсы:- они есть!- многообразны- реальны
Самодельные данныеМинусы: - надо делать - надо знать тех. детали - синтетичныПлюсы: - легки - точны - постоянны
Предсказуемые случайности 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
Другие проблемы
Проблемы:● Нет доступа к БД● Нет данных (не готовы)● Нет возможности установить стаб● Недоступны внешние каналы
Причины:● Чудаки● Чудозвоны
Решения:● Кнут● Пряник● НЛП● НЛО
Как измерить покрытие?
???
Как узнать покрытие по тестовым данным?
Даже если мы предполагаем, что эти данные используются, мы не знаем как в этом убедиться.
Решение: Пулы данных
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