Upload
sqalab
View
588
Download
6
Embed Size (px)
DESCRIPTION
Доклад Артема Семенова на конференции SQA Days-12, 30 ноября-1 декабря, Минск
Citation preview
Сервисы на базе автоматизации тестированияАртем Семенов
Align Technology, Inc.
Обо мне
Артем Семенов
Автоматизатор тестирования
Align Technology, Inc.
[email protected]@gmail.com
2
Предметная область
• Стоматология и ортодонтия
3
Предметная область
• Стоматология и ортодонтия
4
Предметная область
• Стоматология и ортодонтия
5
Предметная область
• Стоматология и ортодонтия
6
ROCS
• Веб приложение
• Кластер виртуальных машин
• БД
• Логгер и отчеты
7
ROCS
• Веб приложение
• Кластер виртуальных машин
• БД
• Логгер и отчеты
8
Выполняет QTP скрипты Централизованная кодовая база
– обновление через git
ROCS
• Веб приложение
• Кластер виртуальных машин
• БД
• Логгер и отчеты
9
Информация о запусках и параметрах
Обмен информацией между скриптами
Статистика Автоматические отчеты
ROCS
• Веб приложение
• Кластер виртуальных машин
• БД
• Логгер и отчеты- Фильтры- Скриншоты- Вложенные файлы- Понятны
пользователю
10
ROCS
• Веб приложение
• Кластер виртуальных машин
• БД
• Логгер и отчеты
11
Смотри подробней на SQADAYS-8goo.gl/phNx2
• Пользователи запускают автоматизацию для• Проверки дефекта• Выполнения регрессионного набора• Smoke test тестового стенда• Подготовки тестовых данных• Проверки состояние тестового стенда• …
Решения своей задачи
Автоматизация next gen - почему
12
Автоматизация next gen - почему
• Пользователи запускают автоматизацию для• …
Решения своей задачи
Дадим им инструмент решения задачи:
13
Автоматизация next gen - как
• Сервисы на основе автоматизации:
- Подготовка данных
- Запуск регрессионного набора
- Отчет о состоянии тестовых стендов
- …
14
Подготовка тестовых пациентов
15
Подготовка тестовых пациентов
• Задача- Генерация данных для UAT на производстве
• Особенности- Много пациентов (>1000)- Сжатые сроки(<2 недель)- Нестабильный тестовый стенд- Затрудненные коммуникации с бизнес пользователями
• Входные данные- Файлы в shared папке- Список сценариев и параметров (xls)
• Выход- Данные подготовлены- Отчет в xls
16
Подготовка пациентов - проблемы
• Нестабильная тестовая среда- Скрипты падают из-за проблем окружения
• Некорректные входные файлы- Не подходят для генерации- Меняются в процессе генерации
• Большие временные затраты на коммуникацию
• Много ручной работы для команды автоматизации- Проверка данных- Запуск скриптов- Отслеживание- Перезапуски и решение проблем- Отчеты
17
Подготовка пациентов - сервис
• Проверка входных файлов- Непрерывный мониторинг входных файлов- Проверка входных данных на корректность- Мониторинг изменений
• Генерация данных- Используется существующий кластер
• Отчет- Wiki-страница- Генерация в реальном времени- Понятен business пользователям- Email уведомления
18
Проверка файлов
Генерация данных
Live - отчет
Подготовка пациентов – решение
• VM в сети пользователя
• Сервис на python
• Непрерывный мониторинг
• Репортинг в БД
• Вызов QTP для проверки данных
19
Проверка файлов
Генерация данных
Live - отчет
Подготовка пациентов – решение
• Python сервис в ROCS кластере
• Непрерывная генерация задач
• Мониторинг выполнения скриптов
• Автоматический перезапуск
• Репортинг в БД
20
Проверка файлов
Генерация данных
Live - отчет
Подготовка пациентов – решение
• Wiki страница
• Используем Confluence + SQL + Run
• Информация о проблемах свходными данными
• Информация о подготовленныхданных
• Конфигурация системы
21
Проверка файлов
Генерация данных
Live - отчет
Подготовка пациентов – решение
• Wiki отчет
22
Проверка файлов
Генерация данных
Live - отчет
Подготовка пациентов – результаты
23
Этап Затраты раньше Затраты сейчас
Подготовка входных данных(включая проверку)
7-12 дней (Астрономических)
3-4 дня (Астрономических)
Проверка входных данных
4 дня 0
Генерация данных,запуски, мониторинг, перезапуски
8-10 дней 0.5 дня
Отчет о сгенерированных данных (ежедневный)
1-1.5 часа 0
С точки зрения пользователя
• Подготовка входных файлов до1. Положил данные в входную папку2. Написал письмо3. Подождал ответа (обычно на след. день)4. Получил ответ5. Исправил проблемы, иди к п.2
• Подготовка входных файлов после1. Положил данные во входную папку2. Получил письмо с результатами3. Исправил проблемы, иди к п.2
• Value- Быстрый отклик на изменения- Пользователь видит текущие проблемы
24
С точки зрения пользователя
25
• Получение результатов до- Раз в сутки- Письмо с вложением(.xls)- Необходима конвертация данных
• Получение результатов после- В любой момент времени- Письмо о статусе раз в сутки- Eye-candy
• Value- Удобный доступ к актуальным данным- Множество представлений результатов
Подготовка пациентов – результаты
• Создан сервис, который решает задачу бизнес пользователя
• Экономия (каждый цикл подготовки данных)- Пользователей – 4 дня- Команды автоматизации – 11 дней
• Более быстрая подготовка данных- Ускорение – 1.5х
• Пользователи сами контролируют качество входных данных
• Больше счастья ;)
26
Запуск регрессии
27
Запуск регрессии
• Задача- Провести автоматическое регрессионное тестирование
• Особенности- Большой набор различных тестов - Ограничение по времени и ресурсам- Нестабильный тестовый стенд
• Входные данные- Список сценариев для выполнения
• Выход- Отчет о результатах запусков`
28
Запуск регрессии - проблемы
• Автоматический запуск- В один клик- Только весь набор- Занимает время
• Нестабильное окружение- Возможно падение скриптов из-за проблем тестового стенда- Требуется ручной перезапуск
• Ограниченность ресурсов- Кластер занят задачами других пользователей- Ручной перезапуск осуществляется в рабочее время
29
Запуск регрессии - сервис
• Входные данные- Список сценариев- Временные рамки выполнения
• Процесс- Запускаем набор на выполнение- В случае падения – приоритезированный перезапуск, пока
вписывается во временные рамки- Постоянный репортинг в БД
• Результат- Wiki-страница- Результаты выполнения тестов- Ссылки на подробный лог
30
Запуск регрессии - сервис
• Запуск- В один клик – из wiki или ROCS
• Особенности процесса- 100% использование доступных ресурсов- Используем результаты других пользователей на данном
тестовом окружении- Актуальная информация о выполнении - всегда в БД
• Технически- Сервис на Python- Механизм меток запуска для задачи в кластере
31
Запуск регрессии - отчет
• Результаты общие:
• Для запуска:
32
Запуск регрессии - результаты
• Сервис для автоматического выполнения регрессионных наборов
• Существенно экономит время пользователей
• Ручная работа по запуску и отслеживанию больше не нужна
• Устранение рутины
33
Статус тестового стенда
Статус тестового стенда
• Задача- Подготовить и выслать ежедневный отчет о состоянии
тестовых стендов
• Особенности- Ручной анализ результатов автоматических HC - Ручное заполнение шаблона письма- Ручное заведение тикетов в трекер
• Проблемы- Много ручной работы - Human factor
35
Статус тестового стенда - сервис
• Входные данные- Информация о результатах всех запусков тестов из БД- Доступ в трекер по API (Jira)
• Процесс- Вычисляется статус стенда на основе результатов всех
полных E2E за последнее время- Автоматическая параметризованная генерация шаблона
отчета- Существующие тикеты попадают в отчет автоматически
• Результат- Готовый к рассылке шаблон отчета- Шаблон рассылается ответственным за отчет
36
Статус тестового стенда - результаты
• Время подготовки отчета снизилосьс 30 минут до 10 минут
• Избавление от рутинных операций
• Устранение human factor
37
Результаты
Сервисы на основе АТ
• Позволяют экономить время- Пользователей автоматизации- Автоматизаторов
• Предоставляют удобный инструмент для конечных пользователей
• Просты в использовании
• Увеличивают уровень использования автоматизации
39
Советы
• Логгируйте все в БД- На основе этих данных потом просто сделать сервис
• Создавайте мини веб-приложения- Сейчас это просто (WIKI, CMS)- Это удобно пользователям
• Ориентируйтесь на пользователей- Знайте их проблемы и запросы
• Автоматизация не для тестирования, она для людей!
40
•Вопросы?
Спасибо!
43