53
«Сокращение времени регрессионного тестирования» Павел Моцарь КЮЕЙНАУЧФИЛЬМ Харьков, 2010

Сокращение времени регрессионного тестирования

  • Upload
    sqalab

  • View
    973

  • Download
    5

Embed Size (px)

DESCRIPTION

Доклад Моцарь Павла на SQA Days 7

Citation preview

Page 1: Сокращение времени регрессионного тестирования

«Сокращение времени регрессионного тестирования»

Павел Моцарь

КЮЕЙНАУЧФИЛЬМХарьков, 2010

Page 2: Сокращение времени регрессионного тестирования

Новый билд

Page 3: Сокращение времени регрессионного тестирования

Можно делать это и ночью

Page 4: Сокращение времени регрессионного тестирования

One-click testing!

Page 5: Сокращение времени регрессионного тестирования
Page 6: Сокращение времени регрессионного тестирования
Page 7: Сокращение времени регрессионного тестирования
Page 8: Сокращение времени регрессионного тестирования

Результаты тестирования

Page 9: Сокращение времени регрессионного тестирования

Интересны не сами результаты,а их сравнение

Page 10: Сокращение времени регрессионного тестирования

Регресс

Page 11: Сокращение времени регрессионного тестирования
Page 12: Сокращение времени регрессионного тестирования

Задача №1

• минимизировать количество ручных действий

Page 13: Сокращение времени регрессионного тестирования

Задача №2• минимизировать время выполнения

Page 14: Сокращение времени регрессионного тестирования

Задача №3

• минимизировать количество тестовых серверов

Page 15: Сокращение времени регрессионного тестирования

Хорошо бы …

• Web-интерфейс для запуска сборки, запуска тестирования, анализа результатов

• Интеграцию с системой контроля версий• Интеграцию с системой багтрекинга• Управление массивом тестовых серверов и

пользовательских машин– в т.ч. использование слабо загруженных

пользовательских машин для выполнения тестов в фоновом режиме

• Механизм расписания и оповещений

Page 16: Сокращение времени регрессионного тестирования

Архитектура системы

Пользователи

Веб-сервер

Сервер БДТестовые сервера

Page 17: Сокращение времени регрессионного тестирования

Условно клиентская часть

TEST

RO

BOT

TEST

RU

NN

ER ПРОДУКТ

СЕТЕВОЙ РЕСУРС

БАЗА ДАННЫХ

локальныйКЭШ ТЕСТОВ

тесты

упра

влен

ие

результаты, логи

статус

Page 18: Сокращение времени регрессионного тестирования

Позволяет

• создавать тестовые конфигурации• запускать циклы «сборка версии продукта» – «регрессионное тестирование»• просматривать результаты запуска, сравнения и историю• управлять локальными «тестовыми роботами»

Условно серверная часть

Веб-сервер

Сервер БД Хранит

• задания для тестовых машин• результаты и историю запусков тестовых конфигураций• логи упавших тестов

Page 19: Сокращение времени регрессионного тестирования

Тестирование «в одно нажатие»

Веб-сервер

Сервер БД

Page 20: Сокращение времени регрессионного тестирования

Локальный «тестовый робот»Пример структуры папок

• [test_robot]– [builds] (установленные версии продуктов, подлежащих тестированию)

• [our_product_v1.3.1]• [our_product_v1.3.2]• …

– [scripts] (исполняемые и конфигурационные файлы локального робота)• test_robot.pl• test_robot.ini• …

– [tests_cache] (кэш тестовых наборов)• test_group_A-ts512.tar.gz• test_group_A-ts513.tar.gz• test_group_B-ts513.tar.gz• …

– [work] (рабочая папка для выполнения тестов)• [our_product_v1.3.1]

– [test_group_A-ts512]• [our_product_v1.3.2]

– [test_group_A-ts513]– [test_group_B-ts513]

Page 21: Сокращение времени регрессионного тестирования

Совет: Давайте удалённый доступ

Page 22: Сокращение времени регрессионного тестирования
Page 23: Сокращение времени регрессионного тестирования
Page 24: Сокращение времени регрессионного тестирования

Совет: Контроль времени на функциональных тестах тоже

Page 25: Сокращение времени регрессионного тестирования

Тестовая конфигурация

версия продукта

версия тест-сьюта

платформа

настройки

Page 26: Сокращение времени регрессионного тестирования

Разработка на ветках

Page 27: Сокращение времени регрессионного тестирования

Решение о сборке билда

Page 28: Сокращение времени регрессионного тестирования

Тандемный принцип

Page 29: Сокращение времени регрессионного тестирования

Совет: Кластеры серверного пула

Веб-сервер

Сервер БДHoney, I’m still freeTake a chance on me!

Page 30: Сокращение времени регрессионного тестирования

Совет: Декомпозировать test-suite

Page 31: Сокращение времени регрессионного тестирования

Совет: Параметры тестовых машин

Page 32: Сокращение времени регрессионного тестирования

Совет: Параметры тестовых машин

Green

Blue

Black

Reso

urce

-spec

ific t

ests

Page 33: Сокращение времени регрессионного тестирования

Совет: Ключевые слова для групп

КАТАЛОГ КОРЗИНАСЧЁТЧИКПОИСК

БДИЗБРАННОЕ

API

Long

ИНТЕРФЕЙС

Page 34: Сокращение времени регрессионного тестирования

Совет: Подписка на события

Page 35: Сокращение времени регрессионного тестирования

Совет: Лог коммитов на билд – в письмо

Page 36: Сокращение времени регрессионного тестирования

Идея: Автоматизация багов

Page 37: Сокращение времени регрессионного тестирования

Когда?

Page 38: Сокращение времени регрессионного тестирования

Продукт

Page 39: Сокращение времени регрессионного тестирования

Прирост тестов

release 1.0 release 1.1 release 1.2 release 1.30

50

100

150

200

250

300

350

functionalperformancemanual

Page 40: Сокращение времени регрессионного тестирования

Время выполнения тест-сьюта

• перевалило за 2 часа

Page 41: Сокращение времени регрессионного тестирования

Ежедневная сборка

Page 42: Сокращение времени регрессионного тестирования

Осёдлан локальныйтестовый инструмент

Page 43: Сокращение времени регрессионного тестирования

Реализованные решения

Параметр СИСТЕМА 1 СИСТЕМА 2

Количество тестовых серверов 4 200

Количество пользовательских машин 25 70

Количество сборок в день 3-6 20-40

Время выполнения тест-сьюта на одной машине 2 часа 7.5 дней

Количество тестов в тест-сьюте 6K+ 60K+ и 110K+

База данных PostgreSQL

Языки разработки и технологии Perl, PHP C, Perl, PHP, Ajax

Срок разработки 1 человеко-год 3 человеко-года

Page 44: Сокращение времени регрессионного тестирования

Вкалывают роботы

Page 45: Сокращение времени регрессионного тестирования

Обычный вечер в отделе SQA

Page 46: Сокращение времени регрессионного тестирования

Есть время украсить отдел SQA

Page 47: Сокращение времени регрессионного тестирования

Экономия времени

1. Распределённое выполнение2. Используем все машины

включая пользовательские3. Разработчики сами запускают

,

Page 48: Сокращение времени регрессионного тестирования

ПО для регрессионного тестирования

Харьков

TestComplete

SeleniumRC

WebAii

QA Wizard Pro

Своё

Другое

Ничего

Page 49: Сокращение времени регрессионного тестирования

ПО для распределённого тестирования

Харьков

Ничего, всё локальноSeleniumGridHP Quality CenterДругое

Page 50: Сокращение времени регрессионного тестирования

Использование средств автоматизации

10 20 40 60 80 90 10005

1015202530354045

% команд (Харьков)

% инженеров

Page 51: Сокращение времени регрессионного тестирования

Автоматизировано тестов

10 20 40 60 80 90 1000

5

10

15

20

25

% команд (Харьков)

% тестов

Page 52: Сокращение времени регрессионного тестирования

Причины автоматизации

Не знаю

Это модно

Интересно

Указание сверху

Качество тестирования

Рост количества билдов

Рост времени тестирования

Рост количества тестов

0 5 10 15 20 25 30

% команд (Харьков)

%

Page 53: Сокращение времени регрессионного тестирования

Спасибо, друзья!

[email protected]