24
Создаем команду автотестирования в нетипичных условиях «Время разбрасывать камни, и время собирать камни» Экклезиаст Team Leader, Parallels Test Automation Vasilii Nikishin April 08, 2016

Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Parallels, Таллин

Embed Size (px)

Citation preview

Создаем команду автотестирования в нетипичных условиях

«Время разбрасывать камни, и время собирать камни»Экклезиаст

Team Leader, Parallels Test AutomationVasilii Nikishin

April 08, 2016

2

Начало• Исходные данные

• Команда разработчиков 10 SDETов• Собственный фрэймворк• Собственная инфраструктура• ~2500 тестов (~250000 тесткейсов)• Python, Linux, Windows, Virtuozzo• 10 лет

• Цель• Создать новую команду• Склонировать существующую систему• В кратчайший срок

3

Team

Test Framework

Tests

Test HW resources

Test infrastructure

Network

Virtuozzo + Parallels

Одна команда

4

Team

Test Framework

Tests

Test HW resources

Test infrastructure

Network

Team

Virtuozzo + Parallels

Создание команды Parallels

5

Свистать всех наверх!• Формирование команды

• 3 SDETа, 4 ручника• Знакомство с наследием

• Технические консультации с командой Virtuozzo, документация

• Нахождение ограничений системы по Голдратту (TOC)

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

6

Принципы TOC• Система как цепь

• Всегда существует слабое звено (ограничение системы)• Основные усилия на устранение ограничения• Поиск ограничений с помощью логических деревьев

• Дерево текущей реальности• Диаграмма разрешения конфликтов• Дерево будущей реальности• Дерево перехода• План преобразований

• Процесс непрерывных улучшений• Поиск новых ограничений

7

Дерево текущей реальности

8

На буксире• Тесты и «железо» под присмотром

• Каждому тесту по мантейнеру• Каждой «железке» свое место

• Поддержка тестов и «железа» в инфраструктуре Virtuozzo под строгим контролем команды Virtuozzo.

• «Прокачка скилзов» команды • Знакомство с проектами Parallels• Написание тестов для новых проектов• Митинги, техтоки

9

Team

Test Framework

Tests

Test HW resources

Test infrastructure

Network

Team

Virtuozzo + Parallels

Поддержка своих тестов и «железа»

Test HW resources

Tests

10

Организация процесса• Взаимодействие внутри команды и с внешним

миром • Стэндапы, спринты, постмортемы • Jira dashboards• Виды активностей

o Разбор баговo Разработка новых тестовo Поддержка инфраструктуры (дежурство)

• Области компетенции• Раскраска спринтов

11

Области компетенции

12

Раскраска спринтов

13

Поднять паруса!

• Отправляемся в самостоятельное плавание

• Клонируем репозиторий с тестами и тестовым фрэймворком

• Изменяем review workflowo Был e-mailo Стал Stash + 2 reviewers

• Вводим сode style

14

Team

Test Framework

Tests

Test HW resources

Test infrastructure

Network

Team

Virtuozzo + Parallels

Клонирование тестового фрэймворка

Test HW resources

Tests

Test Framework

15

Полный вперёд!• В пути

• Клонируем тестовую инфраструктуру Virtuozzo в сеть Parallels

• Под полными парусами! • Самостоятельно поддерживаем

унаследованную  инфраструктуру• Пишем автотесты для всех проектов

Parallels• Разрабатываем свою инфраструктуру

16

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

Release

Robot

Validator

Report

Test repo

Jira

Builds meta info CI

Test plans

17

Team

Test Framework

Tests

Test HW resources

Test infrastructure

Network

Team

Virtuozzo + Parallels

Перенос тестовой инфраструктуры

Test HW resources

Tests

Test Framework

Test infrastructure

Network

18

Шторм!• Проверка на зрелость

• Переезд в новый офис• Восстановление сервиса deploy из

архива• Безболезненный запуск тестовой

инфраструктуры o Подключение нод (60 шт./1 день)o Запуск сервисов и тестов (1 день)

19

Team

Test HW resources

Test Framework

Tests

Test infrastructure

Network

Parallels

Team

Test HW resources

Test Framework

Tests

Test infrastructure

Network

Virtuozzo

Переезд в новый офис

20

Итого

• Новая команда – 8 SDETов• Боевая система авто тестирования• ~300 тестов(~20000 тесткейсов)• Python, Windows, Mac OS X, Linux, iOS, Android, web• 10 месяцев

21

Продукты и технологии• Parallels Remote Application Server

• Python, Windows, Mac OS X, Linux, iOS, Android, web, Java, Ruby • Parallels Desktop

• Python, Mac OS X, Linux, Windows, GUI• Parallels Access

• Python, iOS, Android, web, , Java, Ruby• Parallels Mac Management

• Python, Windows, MS SCCM, Mac OS X• Parallels web site

• Python, web

22

Новые горизонты

• Выявление новых ограничений, истинных причин и ключевых проблем

• Ключевая проблема – легаси-инфраструктура• Трудно масштабировать• Сложно поддерживать и

развивать

23

Необходима новая МИКРОСЕРВИСНАЯ инфраструктураОсновной девиз создания новой системы: «Всё уже написано до нас!»

Thank you!

Василий НикишинTeam Leader, Parallels Test [email protected]