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.
Тема доклада
Тема доклада
Тема доклада
KYIV 2019
Параллельное покрытие автотестами и другие изящные
способы ускорить доста...
! ускорение процесса доставки фич;
! технический рост;
! ускорение автотестов.
О чем я хочу рассказать?
2
Senior iOS QA.
Хочу помочь вам:
* сократить количество ручной регрессии;
* быстрее релизить фичи;
* использовать освободив...
О Badoo
4
>430 000 000
people all over the world use
Badoo
5
iOS команда
Еженедельные релизы
6
Что мы хотели улучшить?
7
Deadlock ручной регрессии
8
Deadlock ручной регрессии
Много тестируем
руками
Мало автотестов
Почему
?
Почему
?
9
Automation QA команда
10
' инфраструктура;
' тестовое покрытие.
Инфраструктура
11
Инфраструктура
12
Инфраструктура
Facebash = Calabash + Facebook WebDriverAgent
13
Calabash
! Calabash сервер интегрируется в приложение и
позволяет управлять им;
! быстрая скорость.
14
Facebook WebDriverAgent
15
! стартует тестовую сессию прямо на девайсе и
позволяет выйти за рамки приложения
Тестовое покрытие
16
Тестовое покрытие,%
17
0
10
20
30
40
2014 H2 2015 H1 2015 H2 2016 H1 2016 H2
Высокий процент переоткрытых задач
из статуса "в тестировании"
18
QA=YES тикеты
Тикеты, которые проходят через команду тестирования
19
20
master
Feature_1
submission submission
QA
QA=Yes flow
QA
QA
QA QA
QA
Feature_2
Feature_3 Feature_4
В идеальном мире без багов
21
В идеальном мире без багов
Разработка
Тестирование
в ветке
Мастер!
22
Разработка Очередь
Review
Reopen Мастер!Тестирование
в ветке
Bug fixing Review
В реальности
23
Переключение
контекста
Rete...
Сравним
24
Разработка Очередь
Review
Reopen Мастер!Тестирование
в ветке
Bug fixing ReviewПереключение
контекста
RetestОчер...
25
26
Спасибо
за внимание!
Вакансия в Лондоне
! тестируем руками, но редко;
! отдаем часть ручного тестирования разработчикам;
! покрываем тестами параллельно.
Как мы с...
! увеличили покрытие;
! вырастили сильную команду;
! сократили время на выполнение рутинных задач вручную;
! улучшили проц...
На свой страх и риск
или QA=NO тикеты
29
QA=NO тикеты
Тикеты, которые не проходят через команду тестирования
30
QA=Yes flow
31
master
Feature_1
submission submission
QA
QA
QA
QA QA
QA
Feature_2
Feature_3 Feature_4
QA=NO flow
32
master
Feature_1
submission submission
Feature_2
Feature_3 Feature_4
Разрешить разработчикам
мерджить без участия QA
— звучит опасно?
33
“With great power comes great
responsibility”
34
Как обезопасить себя
от перепроверок?
Доверяй, но проверяй помогай
35
Mind Map
В помощь разработчикам и себе мы создали
iOS testing mind map
36
Mind Map
37
Ментальная карта состоит из
10 секций
38
Mind Map
39
Ментальная карта состоит из
10 секций
40
Mind Map
41
Ментальная карта состоит из
10 секций
Mind Map
42
Ментальная карта состоит из
10 секций
Mind Map
43
Mind Map
44
Ментальная карта состоит из
10 секций
45
Mind Map
46
Ментальная карта состоит из
10 секций
Mind Map
47
Ментальная карта состоит из
10 секций
Mind Map
48
Mind Map
49
Mind Map
50
Ментальная карта состоит из
10 секций
Mind Map
51
Ментальная карта состоит из
10 секций
Mind Map
52
Ментальная карта состоит из
10 секций
Mind Map
В полном варианте
выглядит так
53
Mind Map
Нам правда необходимо тестировать ВСЕ ЭТО?
Сколько же ВРЕМЕНИ это займет
54
Mind Map
Только те проверки, которые применимы к
вашей конкретной задаче
55
QA=NO тикеты
Месяц % Bug fixes % Features % Tasks % Sub-tasks
Январь 2018 35,00 % 22,22 % 80,00 % 95,74 %
Июль 2018 78,26 ...
QA=NO тикеты. Подводные баги камни
57
Параллельное покрытие или
Automation_QA = YES
58
Automation_QA=YES
Тикеты, которые не тестируются QA командой вручную, но
покрываются end-to-end тестами
59
Automation_QA=YES. Процесс
60
Выбор
фичи
Automation_QA=YES. Процесс
61
Выбор
фичи
Выбор QA
инженера
Automation_QA=YES. Процесс
62
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Automation_QA=YES. Процесс
63
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Automation_QA=YES. Процесс
64
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Automation_QA=YES. Процесс
65
Automation_QA=YES. Процесс
66
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_...
Automation_QA=YES. Процесс
68
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_...
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Имплементац...
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_...
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_...
Automation_QA=YES. Процесс
73
Тестовое покрытие,%
74
0
22,5
45
67,5
90
2016 H1 2017 H1 2017 H2 2018 H1 2018 H2 2019 H1
83,07%
Пока тесты не будут готовы, фича
не идет в master?
75
Ускоряем автотесты
76
Параллельный запуск
77
!1800+ тестов = 45 машиночасов;
!хотим знать результаты за 20-30 минут;
!прогонять тесты параллельно (Device Server).
78
П...
Настройки параметров теста
79
80
Backdoors
!логин — 20 секунд
!диалоги о доступах — 10
!повторять это в каждом тесте?
81
Backdoors
82
QA API
!серверный Backdoor;
!позволяет нашим тестам писать сообщения, добавлять лайки, посетителей,
избранные.
83
Профилирование
84
Профилирование
+метрики помогают найти узкие места;
+ускорить и стабилизировать сами тесты;
+короткая и надежная обратная ...
Команда, готовая развиваться
86
Команда, готовая развиваться
87
Как мы росли?
+анализ тестового покрытия;
+изучения языка программирования и фреймворка;
+создание тестов с уже существующ...
!непонимание чужого кода;
!код разного качества;
!инфраструктурные проблемы;
!нестабильные тесты.
Подводные камни и как мы...
С чего же начать?
90
С чего же начать?
+анализ рутинных задач;
+анализ процессов;
+обсуждение и поиск путей улучшения;
+тестовый эксперимент;
+...
Спасибо
за внимание!
Все материалы здесь:
https://t.me/kat_tests
Upcoming SlideShare
Loading in …5
×

QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие изящные способы ускорить доставку фич

58 views

Published on

Раньше мы в Badoo фокусировались в основным на ручном тестировании. Получался этакий дедлок мануальной регрессии: не было времени, чтоб писать тесты, потому что много тестировали руками, а много тестировали руками, потому что не было автотестов.
Но мы смогли наладить свою систему автоматизации и процессы, разорвали этот порочный круг и начали писать годные тесты.
В своем докладе я расскажу, как нам удалось сократить ручную регрессию с 90% до 30% рабочего времени, при этом сохранить достойный уровень качества и профессионально вырасти!

Published in: Education
  • Be the first to comment

  • Be the first to like this

QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие изящные способы ускорить доставку фич

  1. 1. Тема доклада Тема доклада Тема доклада KYIV 2019 Параллельное покрытие автотестами и другие изящные способы ускорить доставку фич (Badoo) QA CONFERENCE #1 IN UKRAINE
  2. 2. ! ускорение процесса доставки фич; ! технический рост; ! ускорение автотестов. О чем я хочу рассказать? 2
  3. 3. Senior iOS QA. Хочу помочь вам: * сократить количество ручной регрессии; * быстрее релизить фичи; * использовать освободившееся время для более интересных задач. О себе 3
  4. 4. О Badoo 4
  5. 5. >430 000 000 people all over the world use Badoo 5
  6. 6. iOS команда Еженедельные релизы 6
  7. 7. Что мы хотели улучшить? 7
  8. 8. Deadlock ручной регрессии 8
  9. 9. Deadlock ручной регрессии Много тестируем руками Мало автотестов Почему ? Почему ? 9
  10. 10. Automation QA команда 10 ' инфраструктура; ' тестовое покрытие.
  11. 11. Инфраструктура 11
  12. 12. Инфраструктура 12
  13. 13. Инфраструктура Facebash = Calabash + Facebook WebDriverAgent 13
  14. 14. Calabash ! Calabash сервер интегрируется в приложение и позволяет управлять им; ! быстрая скорость. 14
  15. 15. Facebook WebDriverAgent 15 ! стартует тестовую сессию прямо на девайсе и позволяет выйти за рамки приложения
  16. 16. Тестовое покрытие 16
  17. 17. Тестовое покрытие,% 17 0 10 20 30 40 2014 H2 2015 H1 2015 H2 2016 H1 2016 H2
  18. 18. Высокий процент переоткрытых задач из статуса "в тестировании" 18
  19. 19. QA=YES тикеты Тикеты, которые проходят через команду тестирования 19
  20. 20. 20 master Feature_1 submission submission QA QA=Yes flow QA QA QA QA QA Feature_2 Feature_3 Feature_4
  21. 21. В идеальном мире без багов 21
  22. 22. В идеальном мире без багов Разработка Тестирование в ветке Мастер! 22
  23. 23. Разработка Очередь Review Reopen Мастер!Тестирование в ветке Bug fixing Review В реальности 23 Переключение контекста RetestОчередь Retest
  24. 24. Сравним 24 Разработка Очередь Review Reopen Мастер!Тестирование в ветке Bug fixing ReviewПереключение контекста RetestОчередь Retest Разработка Тестирование в ветке Мастер!
  25. 25. 25
  26. 26. 26 Спасибо за внимание! Вакансия в Лондоне
  27. 27. ! тестируем руками, но редко; ! отдаем часть ручного тестирования разработчикам; ! покрываем тестами параллельно. Как мы снизили количество reopen-ов? 27
  28. 28. ! увеличили покрытие; ! вырастили сильную команду; ! сократили время на выполнение рутинных задач вручную; ! улучшили процессы тестирования; ! ускорили доставку фич. К чему это привело? 28
  29. 29. На свой страх и риск или QA=NO тикеты 29
  30. 30. QA=NO тикеты Тикеты, которые не проходят через команду тестирования 30
  31. 31. QA=Yes flow 31 master Feature_1 submission submission QA QA QA QA QA QA Feature_2 Feature_3 Feature_4
  32. 32. QA=NO flow 32 master Feature_1 submission submission Feature_2 Feature_3 Feature_4
  33. 33. Разрешить разработчикам мерджить без участия QA — звучит опасно? 33
  34. 34. “With great power comes great responsibility” 34
  35. 35. Как обезопасить себя от перепроверок? Доверяй, но проверяй помогай 35
  36. 36. Mind Map В помощь разработчикам и себе мы создали iOS testing mind map 36
  37. 37. Mind Map 37 Ментальная карта состоит из 10 секций
  38. 38. 38
  39. 39. Mind Map 39 Ментальная карта состоит из 10 секций
  40. 40. 40
  41. 41. Mind Map 41 Ментальная карта состоит из 10 секций
  42. 42. Mind Map 42 Ментальная карта состоит из 10 секций
  43. 43. Mind Map 43
  44. 44. Mind Map 44 Ментальная карта состоит из 10 секций
  45. 45. 45
  46. 46. Mind Map 46 Ментальная карта состоит из 10 секций
  47. 47. Mind Map 47 Ментальная карта состоит из 10 секций
  48. 48. Mind Map 48
  49. 49. Mind Map 49
  50. 50. Mind Map 50 Ментальная карта состоит из 10 секций
  51. 51. Mind Map 51 Ментальная карта состоит из 10 секций
  52. 52. Mind Map 52 Ментальная карта состоит из 10 секций
  53. 53. Mind Map В полном варианте выглядит так 53
  54. 54. Mind Map Нам правда необходимо тестировать ВСЕ ЭТО? Сколько же ВРЕМЕНИ это займет 54
  55. 55. Mind Map Только те проверки, которые применимы к вашей конкретной задаче 55
  56. 56. QA=NO тикеты Месяц % Bug fixes % Features % Tasks % Sub-tasks Январь 2018 35,00 % 22,22 % 80,00 % 95,74 % Июль 2018 78,26 % 35,48 % 94,55 % 100,00 % Январь 2019 79,17 % 88,24 % 88,24 % 100,00 % Июль 2019 97,73 % 100,00 % 100,00 % 92,31 % 56
  57. 57. QA=NO тикеты. Подводные баги камни 57
  58. 58. Параллельное покрытие или Automation_QA = YES 58
  59. 59. Automation_QA=YES Тикеты, которые не тестируются QA командой вручную, но покрываются end-to-end тестами 59
  60. 60. Automation_QA=YES. Процесс 60
  61. 61. Выбор фичи Automation_QA=YES. Процесс 61
  62. 62. Выбор фичи Выбор QA инженера Automation_QA=YES. Процесс 62
  63. 63. Выбор фичи Выбор QA инженера Обзор документации Automation_QA=YES. Процесс 63
  64. 64. Выбор фичи Выбор QA инженера Обзор документации Kickoff Automation_QA=YES. Процесс 64
  65. 65. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Automation_QA=YES. Процесс 65
  66. 66. Automation_QA=YES. Процесс 66
  67. 67. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Выбор уровня имплементации Automation_QA=YES. Процесс 67
  68. 68. Automation_QA=YES. Процесс 68
  69. 69. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Выбор уровня имплементации Automation_QA=YES. Процесс 69 Имплементация фичи
  70. 70. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Выбор уровня имплементации Имплементация фичи Имплементация end-to-end тестов Automation_QA=YES. Процесс 70
  71. 71. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Выбор уровня имплементации Automation_QA=YES. Процесс 71 Review Review Имплементация фичи Имплементация end-to-end тестов
  72. 72. Выбор фичи Выбор QA инженера Обзор документации Kickoff Создание тестовых сценариев Выбор уровня имплементации Automation_QA=YES. Процесс 72 Master Review Review Имплементация фичи Имплементация end-to-end тестов
  73. 73. Automation_QA=YES. Процесс 73
  74. 74. Тестовое покрытие,% 74 0 22,5 45 67,5 90 2016 H1 2017 H1 2017 H2 2018 H1 2018 H2 2019 H1 83,07%
  75. 75. Пока тесты не будут готовы, фича не идет в master? 75
  76. 76. Ускоряем автотесты 76
  77. 77. Параллельный запуск 77
  78. 78. !1800+ тестов = 45 машиночасов; !хотим знать результаты за 20-30 минут; !прогонять тесты параллельно (Device Server). 78 Параллельный запуск
  79. 79. Настройки параметров теста 79
  80. 80. 80
  81. 81. Backdoors !логин — 20 секунд !диалоги о доступах — 10 !повторять это в каждом тесте? 81
  82. 82. Backdoors 82
  83. 83. QA API !серверный Backdoor; !позволяет нашим тестам писать сообщения, добавлять лайки, посетителей, избранные. 83
  84. 84. Профилирование 84
  85. 85. Профилирование +метрики помогают найти узкие места; +ускорить и стабилизировать сами тесты; +короткая и надежная обратная связь. 85
  86. 86. Команда, готовая развиваться 86
  87. 87. Команда, готовая развиваться 87
  88. 88. Как мы росли? +анализ тестового покрытия; +изучения языка программирования и фреймворка; +создание тестов с уже существующими шагами; +создание тестов с новыми методами, объектами и классами; +починка упавших и нестабильных тестов; +параллельное покрытие фич автотестами. 88
  89. 89. !непонимание чужого кода; !код разного качества; !инфраструктурные проблемы; !нестабильные тесты. Подводные камни и как мы их обходим 89
  90. 90. С чего же начать? 90
  91. 91. С чего же начать? +анализ рутинных задач; +анализ процессов; +обсуждение и поиск путей улучшения; +тестовый эксперимент; +анализ метрик после улучшение; +коррекция; +повторение. 91
  92. 92. Спасибо за внимание! Все материалы здесь: https://t.me/kat_tests

×