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.

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

1,750 views

Published on

Доклад Игоря Хрола на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

  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

×