Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Автоматизация тестирования:
доступна каждому или удел
избранных?
Игорь Хрол
QA Automation Team Lead
Wargaming.NET
О себе
• Игорь Хрол
• QA Automation Team Lead в
Wargaming.NET
• 9 лет в отрасли
• Инженер, архитектор,
менеджер, консульта...
О чём говорим сегодня?
• QA – инженерная специальность
продолжение к SQA Days 15
http://sqadays.com/ru/talk/19552
• Пример...
О чём говорим сегодня?
1. Проблемы в конце 2013
2. Организационные изменения
3. Технологические изменения
4. «Пирамидальны...
Проблемы
в конце 2013
Проблемы в конце 2013
Отделённость автоматизации тестирования:
• Организационно (отдельная команда)
• Технологически (тест...
Проблемы в конце 2013
Типичные проблемы с автотестами:
• Долгие
• Нестабильные
• Низкое покрытие
• Мало используются
Организационные
изменения
Жила-была…
Команда автоматизации тестирования
…и получала она на вход задачи
…а отдавала в статусе Resolved
JIRA-1
Created
JIRA-2
Created
JIRA-3
Created
JIRA-1
Resolved...
…и не понимали Проекты, когда они
получат автоматизацию
…и не понимала Команда, что от неё
хотели Проекты
…«ручные» QA-соратники вне команды
не умели автоматизировать, хотя и
очень хотели
…требовалось написать детальные тест-
кейсы, чтобы автоматизатор
заавтоматизировал, а времени не хватало
Проект 2Проект 1
…и разошлись автоматизаторы по
Проектам, дабы на местах
распространять знания и автотесты
Проект 5Проект ...
Проект 2Проект 1
…но дабы не терять связей
объединились они в Орден,
несущий знания всем и сразу!
Проект 5Проект 4Проект 3
…и стал Орден
распределённым по офисам
Санкт-Петербург
Киев
Минск
Орден: результаты
• Community по автоматизации тестирования
внутри Wargaming
• Включает всех, кто пишет автотесты
• Обмен ...
Технологические изменения
Технологические изменения
Переход с Java на Python
Переход с Java на Python
• Тестирование ближе к разработке
• Изучение автотестов толкает к изучению
тестируемого приложени...
Технологические изменения
Разработка проектно-независимых библиотек
Webium
https://github.com/wgnet/webium
Реализация PageObject в Python
Почитать-посмотреть подробнее тут:
• http://www.slid...
Grail
https://github.com/wgnet/grail
Грааль Ордена
Подключение «ручных» тестировщиков к
написанию автотестов
Подробно здес...
Как обычно выглядит процесс
написания автотестов…
«Ручной»
QA Тест Кейс Auto QA
Тест
Скрипт
Test Case vs Test Script
Step 1: login to application def login_to_application():
…
Step 2: verify user is logged in def v...
Как решить?
А давайте генерировать тест-кейс из кода!
«Ручной»
QA
Тест Скрипт Auto QA
Реализация
Шагов
Плюсы подхода
• Нет дублирования работы
• Повышается технический уровень QA
• Нет новых «языков» вроде BDD-style,
Keyword ...
Внедрение автотестов в
массы: обучение
• 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
• Чётко определяет вход, выход, зависимости
• Ускоряет тесты
• Ло...
Фокус на компонентах без 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.khrol
http://www.khroliz.com
Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17
Upcoming SlideShare
Loading in …5
×

Test Automation Wargaming SQA Days 17

27,135 views

Published on

My speech about test automation in Wargaming Online Presence at SQA Days 17

Published in: Technology
  • @Andrey Kalganov условно на это можно смотреть как на количество тестов разных типов из общего числа. Покрытие - это отдельный разговор. По хорошему 100% code coverage можно уже получить уже после UnitTest.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Так какое в итоге покрытие тестами с использованием данного подхода? Так понимаю, это не UnitTests, т.е. покрытие гораздо меньше, чем 70% (слайд 36)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Test Automation Wargaming SQA Days 17

  1. 1. Автоматизация тестирования: доступна каждому или удел избранных? Игорь Хрол QA Automation Team Lead Wargaming.NET
  2. 2. О себе • Игорь Хрол • QA Automation Team Lead в Wargaming.NET • 9 лет в отрасли • Инженер, архитектор, менеджер, консультант, тренер • Докладчик на SQA Days 12 и 15 • www.khroliz.com
  3. 3. О чём говорим сегодня? • QA – инженерная специальность продолжение к SQA Days 15 http://sqadays.com/ru/talk/19552 • Пример Wargaming’a в доказательство реализуемости на практике
  4. 4. О чём говорим сегодня? 1. Проблемы в конце 2013 2. Организационные изменения 3. Технологические изменения 4. «Пирамидальные» подходы 5. Стало ли лучше?
  5. 5. Проблемы в конце 2013
  6. 6. Проблемы в конце 2013 Отделённость автоматизации тестирования: • Организационно (отдельная команда) • Технологически (тесты на Java, а 80% разработки – на Python) Много различных подходов Слабое межофисное взаимодействие
  7. 7. Проблемы в конце 2013 Типичные проблемы с автотестами: • Долгие • Нестабильные • Низкое покрытие • Мало используются
  8. 8. Организационные изменения
  9. 9. Жила-была… Команда автоматизации тестирования
  10. 10. …и получала она на вход задачи …а отдавала в статусе Resolved JIRA-1 Created JIRA-2 Created JIRA-3 Created JIRA-1 Resolved JIRA-2 Resolved JIRA-3 Resolved
  11. 11. …и не понимали Проекты, когда они получат автоматизацию
  12. 12. …и не понимала Команда, что от неё хотели Проекты
  13. 13. …«ручные» QA-соратники вне команды не умели автоматизировать, хотя и очень хотели
  14. 14. …требовалось написать детальные тест- кейсы, чтобы автоматизатор заавтоматизировал, а времени не хватало
  15. 15. Проект 2Проект 1 …и разошлись автоматизаторы по Проектам, дабы на местах распространять знания и автотесты Проект 5Проект 4Проект 3
  16. 16. Проект 2Проект 1 …но дабы не терять связей объединились они в Орден, несущий знания всем и сразу! Проект 5Проект 4Проект 3
  17. 17. …и стал Орден распределённым по офисам Санкт-Петербург Киев Минск
  18. 18. Орден: результаты • Community по автоматизации тестирования внутри Wargaming • Включает всех, кто пишет автотесты • Обмен опытом большого числа людей из разных офисов
  19. 19. Технологические изменения
  20. 20. Технологические изменения Переход с Java на Python
  21. 21. Переход с Java на Python • Тестирование ближе к разработке • Изучение автотестов толкает к изучению тестируемого приложения • Обмен знаниями с другими
  22. 22. Технологические изменения Разработка проектно-независимых библиотек
  23. 23. 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
  24. 24. Grail https://github.com/wgnet/grail Грааль Ордена Подключение «ручных» тестировщиков к написанию автотестов Подробно здесь: http://2015.codefest.ru/lecture/989
  25. 25. Как обычно выглядит процесс написания автотестов… «Ручной» QA Тест Кейс Auto QA Тест Скрипт
  26. 26. Test Case vs Test Script Step 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(): … Как-то оно похоже.. Надо писать два раза… И исправлять в двух местах…
  27. 27. Как решить? А давайте генерировать тест-кейс из кода! «Ручной» QA Тест Скрипт Auto QA Реализация Шагов
  28. 28. Плюсы подхода • Нет дублирования работы • Повышается технический уровень QA • Нет новых «языков» вроде BDD-style, Keyword Driven и прочего…
  29. 29. Внедрение автотестов в массы: обучение • Python – http://www.codecademy.com/en/tracks/python – Grail – Код приложения • Автоматизация тестирования – Внутренняя программа обучения
  30. 30. Внедрение автотестов в массы • Интеграция с TestRail – Автотесты выглядят, как ручные – Одна кнопка для запуска
  31. 31. Выглядят, как «ручные»
  32. 32. Одна кнопка для запуска
  33. 33. «Пирамидальные» подходы
  34. 34. Некоторые предпочитают треугольник… http://www.slideshare.net/orgeirIngvarsson/pptx9
  35. 35. Разделяй и властвуй Задача Подзадача Подзадача Решение подзадачи Решение подзадачи Решение подзадачи Решение подзадачи Подзадача Задача Разделяем РазделяемРазделяем Соединяем Соединяем Соединяем Подзадача
  36. 36. Модульное тестирование
  37. 37. Изолированное тестирование проектов Проект 2 Проект 1 Проект 5 Проект 6 Проект 4 Проект 3
  38. 38. Изолированное тестирование проектов Проект 2 Проект 1 Проект 5 Проект 6 Проект 4 Проект 3
  39. 39. Изолированное тестирование проектов Проект 2 Проект 1 Проект 5 Проект 6 Проект 4 Проект 3
  40. 40. Изолированное тестирование проектов Проект 2 Проект 1 Проект 5 Проект 6 Проект 4 Проект 3
  41. 41. Изолированное тестирование проектов Проект 2 Проект 4 Проект 3
  42. 42. Изолированное тестирование проектов Проект 2 Проект 4 Проект 3 Тесты
  43. 43. Изолированное тестирование проектов Заглушка Проект 4 Заглушка Тесты
  44. 44. Изолированное тестирование проектов • Изоляция силами QA • Чётко определяет вход, выход, зависимости • Ускоряет тесты • Локализует проблемы Заглушка Проект 4 Заглушка Тесты
  45. 45. Фокус на компонентах без UI • Начинаем с бизнес-логики • По максимуму проверяем через API • End-to-end сценарии и пользовательский интерфейс можно проверять и руками
  46. 46. Что же дальше? • Знаем Python • Знаем программные интерфейсы Логичный следующий шаг – читать код проектов
  47. 47. Белый ящик • Незаменимо для проектов с недостатком документации • Выявляет спектр новых проблем • Позволяет не писать лишние тесты • При необходимости можно помогать в разработке
  48. 48. Запуск тестов по комитам • Работает, если тесты быстрые – До 5-10 минут • …и стабильные • Максимальная отдача от автоматических тестов
  49. 49. Что же в итоге?
  50. 50. Текущие успехи Автотесты пишет большее число людей Рост количества вовлечённых c 6 до 40-50 человек
  51. 51. Текущие успехи Стабильные и быстрые тесты – В идеале до 5-10 мин – Запуск по «комитам» – Красные тесты исправляются в процессе разработки функциональности – Быстро находятся дефекты
  52. 52. Текущие успехи Проекты в состоянии выпускать новые версии • без ручного тестирования • в течение дня
  53. 53. Текущие успехи Погружение в технические детали позволило находить ранее невидимые проблемы
  54. 54. Что дальше?.. • Более плотная интеграция с Unit Test’ами • Стабильное интеграционное тестирование • Автоматизация релизных проверок • Эффективное тестирование пользовательского интерфейса
  55. 55. Спасибо! Q&A Контакты: Игорь Хрол i_khrol@wargaming.net khroliz@gmail.com skype: igor.khrol http://www.khroliz.com

×