Тема доклада
Тема доклада
Тема доклада
KYIV 2019
Параллельное покрытие автотестами и другие изящные
способы ускорить доставку фич (Badoo)
QA CONFERENCE #1 IN UKRAINE
! ускорение процесса доставки фич;
! технический рост;
! ускорение автотестов.
О чем я хочу рассказать?
2
Senior iOS QA.
Хочу помочь вам:
* сократить количество ручной регрессии;
* быстрее релизить фичи;
* использовать освободившееся время для
более интересных задач.
О себе
3
О 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
Переключение
контекста
RetestОчередь
Retest
Сравним
24
Разработка Очередь
Review
Reopen Мастер!Тестирование
в ветке
Bug fixing ReviewПереключение
контекста
RetestОчередь
Retest
Разработка Тестирование
в ветке
Мастер!
25
26
Спасибо
за внимание!
Вакансия в Лондоне
! тестируем руками, но редко;
! отдаем часть ручного тестирования разработчикам;
! покрываем тестами параллельно.
Как мы снизили количество reopen-ов?
27
! увеличили покрытие;
! вырастили сильную команду;
! сократили время на выполнение рутинных задач вручную;
! улучшили процессы тестирования;
! ускорили доставку фич.
К чему это привело?
28
На свой страх и риск
или 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 % 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
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_QA=YES. Процесс
67
Automation_QA=YES. Процесс
68
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_QA=YES. Процесс
69
Имплементация
фичи
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Имплементация
фичи
Имплементация
end-to-end тестов
Automation_QA=YES. Процесс
70
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_QA=YES. Процесс
71
Review
Review
Имплементация
фичи
Имплементация
end-to-end тестов
Выбор
фичи
Выбор QA
инженера
Обзор
документации
Kickoff
Создание
тестовых
сценариев
Выбор уровня
имплементации
Automation_QA=YES. Процесс
72
Master
Review
Review
Имплементация
фичи
Имплементация
end-to-end тестов
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
Профилирование
+метрики помогают найти узкие места;
+ускорить и стабилизировать сами тесты;
+короткая и надежная обратная связь.
85
Команда, готовая развиваться
86
Команда, готовая развиваться
87
Как мы росли?
+анализ тестового покрытия;
+изучения языка программирования и фреймворка;
+создание тестов с уже существующими шагами;
+создание тестов с новыми методами, объектами и классами;
+починка упавших и нестабильных тестов;
+параллельное покрытие фич автотестами.
88
!непонимание чужого кода;
!код разного качества;
!инфраструктурные проблемы;
!нестабильные тесты.
Подводные камни и как мы их обходим
89
С чего же начать?
90
С чего же начать?
+анализ рутинных задач;
+анализ процессов;
+обсуждение и поиск путей улучшения;
+тестовый эксперимент;
+анализ метрик после улучшение;
+коррекция;
+повторение.
91
Спасибо
за внимание!
Все материалы здесь:
https://t.me/kat_tests

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