Test Automation Wargaming SQA Days 17

Post on 26-Jul-2015

2.693 views 1 download

Transcript of Test Automation Wargaming SQA Days 17

Автоматизация тестирования: доступна каждому или удел избранных?

Игорь ХролQA Automation Team Lead

Wargaming.NET

О себе• Игорь Хрол• QA Automation Team Lead в

Wargaming.NET• 9 лет в отрасли• Инженер, архитектор,

менеджер, консультант, тренер• Докладчик на SQA Days 12 и 15• www.khroliz.com

О чём говорим сегодня?

• QA – инженерная специальностьпродолжение к SQA Days 15 http://

sqadays.com/ru/talk/19552 • Пример Wargaming’a в доказательство

реализуемости на практике

О чём говорим сегодня?

1. Проблемы в конце 20132. Организационные изменения3. Технологические изменения4. «Пирамидальные» подходы5. Стало ли лучше?

Проблемы в конце 2013

Проблемы в конце 2013

Отделённость автоматизации тестирования:• Организационно (отдельная команда)• Технологически (тесты на Java, а 80%

разработки – на Python)Много различных подходовСлабое межофисное взаимодействие

Проблемы в конце 2013

Типичные проблемы с автотестами:• Долгие• Нестабильные• Низкое покрытие• Мало используются

Организационные изменения

Жила-была…

Команда автоматизации тестирования

…и получала она на вход задачи…а отдавала в статусе Resolved

JIRA-1Created

JIRA-2Created

JIRA-3Created

JIRA-1Resolved

JIRA-2Resolved

JIRA-3Resolved

…и не понимали Проекты, когда они получат автоматизацию

…и не понимала Команда, что от неё хотели Проекты

…«ручные» QA-соратники вне команды не умели автоматизировать, хотя и очень хотели

…требовалось написать детальные тест-кейсы, чтобы автоматизатор заавтоматизировал, а времени не хватало

Проект 2Проект 1

…и разошлись автоматизаторы по Проектам, дабы на местах распространять знания и автотесты

Проект 5Проект 4Проект 3

Проект 2Проект 1

…но дабы не терять связей объединились они в Орден, несущий знания всем и сразу!

Проект 5Проект 4Проект 3

…и стал Орден распределённым по офисам

Санкт-Петербург

Киев

Минск

Орден: результаты

• Community по автоматизации тестирования внутри Wargaming

• Включает всех, кто пишет автотесты• Обмен опытом большого числа людей из

разных офисов

Технологические изменения

Технологические изменения

Переход с Java на Python

Переход с Java на Python

• Тестирование ближе к разработке• Изучение автотестов толкает к изучению

тестируемого приложения• Обмен знаниями с другими

Технологические изменения

Разработка проектно-независимых библиотек

Webium

https://github.com/wgnet/webium Реализация PageObject в PythonПочитать-посмотреть подробнее тут:• http://www.slideshare.net/khroliz/webium-page-objects-in-python • https://www.youtube.com/watch?v=XrL1BLgkKyA

Grailhttps://github.com/wgnet/grailГрааль ОрденаПодключение «ручных» тестировщиков к написанию автотестовПодробно здесь: http://2015.codefest.ru/lecture/989

Как обычно выглядит процесс написания автотестов…

«Ручной» QA Тест Кейс Auto QA Тест

Скрипт

Test Case vs Test ScriptStep 1: login to application def login_to_application():

Step 2: verify user is logged in def verify_user_is_logged_in(): …

Step 3: do some important thing def do_some_important_thing(): …

Как-то оно похоже..Надо писать два раза…И исправлять в двух местах…

Как решить?

А давайте генерировать тест-кейс из кода!

«Ручной» QA Тест Скрипт Auto QA Реализация

Шагов

Плюсы подхода

• Нет дублирования работы• Повышается технический уровень QA• Нет новых «языков» вроде BDD-style,

Keyword Driven и прочего…

Внедрение автотестов в массы: обучение

• Python– http://www.codecademy.com/en/tracks/python – Grail– Код приложения

• Автоматизация тестирования– Внутренняя программа обучения

Внедрение автотестов в массы

• Интеграция с TestRail– Автотесты выглядят, как ручные– Одна кнопка для запуска

Выглядят, как «ручные»

Одна кнопка для запуска

«Пирамидальные» подходы

Некоторые предпочитают треугольник…

http://www.slideshare.net/orgeirIngvarsson/pptx9

Разделяй и властвуй

Задача

Подзадача Подзадача

Решениеподзадачи

Решениеподзадачи

Решениеподзадачи

Решениеподзадачи

Подзадача

Задача

Разделяем

РазделяемРазделяем

Соединяем Соединяем

Соединяем

Подзадача

Модульное тестирование

Изолированное тестирование проектов

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Изолированное тестирование проектов

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Изолированное тестирование проектов

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Изолированное тестирование проектов

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Изолированное тестирование проектов

Проект 2

Проект 4

Проект 3

Изолированное тестирование проектов

Проект 2

Проект 4

Проект 3

Тесты

Изолированное тестирование проектов

Заглушка

Проект 4

Заглушка

Тесты

Изолированное тестирование проектов

• Изоляция силами QA• Чётко определяет вход, выход, зависимости• Ускоряет тесты• Локализует проблемы

Заглушка Проект 4

Заглушка

Тесты

Фокус на компонентах без UI

• Начинаем с бизнес-логики• По максимуму проверяем через API• End-to-end сценарии и пользовательский

интерфейс можно проверять и руками

Что же дальше?

• Знаем Python• Знаем программные интерфейсы

Логичный следующий шаг – читать код проектов

Белый ящик

• Незаменимо для проектов с недостатком документации

• Выявляет спектр новых проблем• Позволяет не писать лишние тесты• При необходимости можно помогать в

разработке

Запуск тестов по комитам

• Работает, если тесты быстрые– До 5-10 минут

• …и стабильные• Максимальная отдача от автоматических

тестов

Что же в итоге?

Текущие успехи

Автотесты пишет большее число людейРост количества вовлечённых c 6 до 40-50

человек

Текущие успехи

Стабильные и быстрые тесты– В идеале до 5-10 мин– Запуск по «комитам»– Красные тесты исправляются в процессе

разработки функциональности– Быстро находятся дефекты

Текущие успехи

Проекты в состоянии выпускать новые версии• без ручного тестирования• в течение дня

Текущие успехи

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

Что дальше?..

• Более плотная интеграция с Unit Test’ами• Стабильное интеграционное тестирование• Автоматизация релизных проверок• Эффективное тестирование

пользовательского интерфейса

Спасибо!Q&A

Контакты:Игорь Хролi_khrol@wargaming.net khroliz@gmail.com skype: igor.khrolhttp://www.khroliz.com