Test Automation Wargaming SQA Days 17
-
Upload
igor-khrol -
Category
Technology
-
view
2.693 -
download
1
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
Контакты:Игорь Хрол[email protected] [email protected] skype: igor.khrolhttp://www.khroliz.com