Test Automation Wargaming SQA Days 17

59
Автоматизация тестирования: доступна каждому или удел избранных? Игорь Хрол QA Automation Team Lead Wargaming.NET

Transcript of Test Automation Wargaming SQA Days 17

Page 1: Test Automation Wargaming SQA Days 17

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

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

Wargaming.NET

Page 2: Test Automation Wargaming SQA Days 17

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

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

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

Page 3: Test Automation Wargaming SQA Days 17

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

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

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

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

Page 4: Test Automation Wargaming SQA Days 17
Page 5: Test Automation Wargaming SQA Days 17

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

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

Page 6: Test Automation Wargaming SQA Days 17

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

Page 7: Test Automation Wargaming SQA Days 17

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

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

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

Page 8: Test Automation Wargaming SQA Days 17

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

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

Page 9: Test Automation Wargaming SQA Days 17

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

Page 10: Test Automation Wargaming SQA Days 17
Page 11: Test Automation Wargaming SQA Days 17

Жила-была…

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

Page 12: Test Automation Wargaming SQA Days 17

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

JIRA-1Created

JIRA-2Created

JIRA-3Created

JIRA-1Resolved

JIRA-2Resolved

JIRA-3Resolved

Page 13: Test Automation Wargaming SQA Days 17

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

Page 14: Test Automation Wargaming SQA Days 17

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

Page 15: Test Automation Wargaming SQA Days 17

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

Page 16: Test Automation Wargaming SQA Days 17

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

Page 17: Test Automation Wargaming SQA Days 17

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

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

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

Page 18: Test Automation Wargaming SQA Days 17

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

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

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

Page 19: Test Automation Wargaming SQA Days 17

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

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

Киев

Минск

Page 20: Test Automation Wargaming SQA Days 17

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

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

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

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

Page 21: Test Automation Wargaming SQA Days 17

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

Page 22: Test Automation Wargaming SQA Days 17

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

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

Page 23: Test Automation Wargaming SQA Days 17

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

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

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

Page 24: Test Automation Wargaming SQA Days 17

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

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

Page 25: Test Automation Wargaming SQA Days 17

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

Page 26: Test Automation Wargaming SQA Days 17

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

Page 27: Test Automation Wargaming SQA Days 17

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

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

Скрипт

Page 28: Test Automation Wargaming SQA Days 17

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(): …

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

Page 29: Test Automation Wargaming SQA Days 17

Как решить?

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

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

Шагов

Page 30: Test Automation Wargaming SQA Days 17

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

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

Keyword Driven и прочего…

Page 31: Test Automation Wargaming SQA Days 17
Page 32: Test Automation Wargaming SQA Days 17

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

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

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

Page 33: Test Automation Wargaming SQA Days 17

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

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

Page 34: Test Automation Wargaming SQA Days 17

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

Page 35: Test Automation Wargaming SQA Days 17

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

Page 36: Test Automation Wargaming SQA Days 17

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

Page 37: Test Automation Wargaming SQA Days 17

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

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

Page 38: Test Automation Wargaming SQA Days 17

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

Задача

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

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

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

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

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

Подзадача

Задача

Разделяем

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

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

Соединяем

Подзадача

Page 39: Test Automation Wargaming SQA Days 17

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

Page 40: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Page 41: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Page 42: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Page 43: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 1

Проект 5

Проект 6

Проект 4

Проект 3

Page 44: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 4

Проект 3

Page 45: Test Automation Wargaming SQA Days 17

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

Проект 2

Проект 4

Проект 3

Тесты

Page 46: Test Automation Wargaming SQA Days 17

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

Заглушка

Проект 4

Заглушка

Тесты

Page 47: Test Automation Wargaming SQA Days 17

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

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

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

Заглушка

Тесты

Page 48: Test Automation Wargaming SQA Days 17

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

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

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

Page 49: Test Automation Wargaming SQA Days 17

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

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

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

Page 50: Test Automation Wargaming SQA Days 17

Белый ящик

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

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

разработке

Page 51: Test Automation Wargaming SQA Days 17

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

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

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

тестов

Page 52: Test Automation Wargaming SQA Days 17

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

Page 53: Test Automation Wargaming SQA Days 17

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

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

человек

Page 54: Test Automation Wargaming SQA Days 17

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

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

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

Page 55: Test Automation Wargaming SQA Days 17

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

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

Page 56: Test Automation Wargaming SQA Days 17

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

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

Page 57: Test Automation Wargaming SQA Days 17
Page 58: Test Automation Wargaming SQA Days 17

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

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

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

Page 59: Test Automation Wargaming SQA Days 17

Спасибо!Q&A

Контакты:Игорь Хрол[email protected] [email protected] skype: igor.khrolhttp://www.khroliz.com