Доклад о том, как провести 17 тысяч тестов за три минуты, помочь тестировщикам не умереть со скуки и научить автоматическое тестирование быть ещё более автоматическим.
Из доклада вы узнаете:
1. Как мы пришли к необходимости такого решения
и как решали эти проблемы изначально.
2. Какие решения этой проблемы уже существуют в мире OpenSource
и почему мы от них отказались.
3. Какие "гениальные" идеи мы пытались реализовать
и почему все их отвергли.
4. На какой архитектуре мы остановились
и как она себя показала (с нескучными цифрами и графиками!).
5. Какие дополнительные возможности приносит сотрудничество PHPUnit с TeamCity
и как с их помощью тестировщики могут терроризировать разработчиков.
6. Что обещают сделать в этом направлении разработчики PHPUnit
и как обстоят эти дела на данный момент.
21. Итоговая схема Многопоточной пускалки
КЛАСС ДЛЯ СБОРА
И СОХРАНЕНИЯ СТАТИСТИКИ
КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
КЛАСС ДЛЯ
РАСПРЕДЕЛЕНИЯ ТЕСТОВ
ПО ПОТОКАМ
22. КЛАСС ДЛЯ СБОРА И СОХРАНЕНИЯСТАТИСТИКИ
БД TeamCity БД для хранения
статистики
Обработкаинформации
тест => время
файл => время
Поиск соответствия
тест => файл;
Простейшая система
кешированияинформации
для ускорения процесса
23. КЛАСС ДЛЯ СБОРА И СОХРАНЕНИЯ СТАТИСТИКИ
Понедельник Вторник Среда Четверг
Пятница Суббота Воскресенье
7 состояний с накапливаемымиданными
Чем новее статистика – тем больший “вес” она имеет
при распределениитестов
Возрастстатистики Вес статистики
< 1 суток 100
< 2 суток 50
< 3 суток 25
> 3 суток 10
24. КЛАСС ДЛЯ РАСПРЕДЕЛЕНИЯ ТЕСТОВ ПО ПОТОКАМ
Длительность тестов
Потоки с уже распределённымитестами
Тест с известной длительностью
26. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Сбор файлов
с тестами
27. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
28. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
29. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
30. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
Запуск процессов
PHPUnit с нужными
параметрами
31. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
Запуск процессов
PHPUnit с нужными
параметрами
Вывод информации
с помощью наших
TestListener'ов
32. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
Запуск процессов
PHPUnit с нужными
параметрами
Вывод информации
с помощью наших
TestListener'ов
Сбор и сохранение
статистики
(если необходимо)
33. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
Запуск процессов
PHPUnit с нужными
параметрами
Вывод информации
с помощью наших
TestListener'ов
Сбор и сохранение
статистики
(если необходимо)
???
34. КЛАСС ДЛЯ ЗАПУСКА ТЕСТОВ
Чтение входного
XML-файла PHPUnit
Расчёт времени
выполнения тестов
Сбор файлов
с тестами
Распределение
тестов по потокам
Генерация
динамического
XML-конфига
Запуск процессов
PHPUnit с нужными
параметрами
Вывод информации
с помощью наших
TestListener'ов
Сбор и сохранение
статистики
(если необходимо)
???
P R O F I T ! ! !