Когда я только села писать эту статью про QA Automation Day, у меня было хорошее настроение: «Не буду говорить о сложностях и страданиях, глубокой аналитике, а расскажу о том, как у нас прошло гладко, без эксцессов, именно так, как мы и намечали». Если бы…
Привет, меня зовут Яна, я технический лидер тестирования Платежей и переводов Альфа-банка и сегодня мне бы хотелось поделиться с вами интересным опытом, который, в перспективе, можно использовать и как добрую традицию. Речь пойдет о мероприятии под названием «QA Automation Day».

Сначала была боль
Сначала было слово наша изначальная проблема…Заключалась она в бэклоге, а точнее, в его большом объеме. Что же там объемного?
Банк выделяет достаточное количество ресурсов, чтобы обеспечить сохранность личных данных клиентов. И чтобы свести к минимуму возможность возникновения IDOR-уязвимости — веб-уязвимости, когда пользователь-мошенник может получить или воспользоваться личной информацией другого клиента банка, мы взяли на себя амбициозную цель покрыть все микросервисы платежей и переводов автотестами, утверждающими отсутствие данной уязвимости для каждого открытого в сети эндпоинта.
Мы должны быть уверены, что мошенники не могут с помощью своего токена получить данные другого клиента банка. Задача не из простых!
Собравшись с коллегами на анализ решения данной задачи быстро посчитали, что имея в прямом пользовании около 30 микросервисов мы перейдем черту за 150 тестовых сценариев, требуемых для анализа, воспроизведения и автоматизации. А до конца месяца их нужно срочно автоматизировать.
Вроде мало? Можно быстро закрыть. Ведь у нас 30 боевых единиц профессиональных QA. Это по 5 эндпоинтов на человека, минимум.
Однако есть пара нюансов…
№ 1. Один эндпоинт может иметь несколько потенциально уязвимых данных, требуемых проверки. Это увеличивает общий объем работы.
№2. Тестировщики распределены по бизнес-командам и выполняют свои непосредственные обязанности — проводят функциональное тестирование поставляемого функционала и поэтому не могут срочно приступить к нашей потребности в закрытии технического долга. Другими словами — они заняты. Условно, один QA может взять одну «задачу» в виде эндпоинта в день. Итого получаем 150 условных дней на закрытие.
№3. Покрыть автотестами уязвимые данные ни аналитик, ни разработчик не могут. Нет, конечно, могут, но им придется на одну задачу убить один день, без учета времени на обучение. В этом варианте получаем дней гораздо больше, чем 150.
Масштаб проблемы нам был ясен.
Итак, у нас было два
стулаварианта: закрывать бэклог в «свободное время» (несколько месяцев) или как-то закрыть бэклог за один раз.
На самом деле вариантов не было — закрывать бэклог в свободное время мы не можем, нам нужно сделать все это за один раз.
Прекрасная идея, но возникает нюанс — как собрать всех в одном месте?
Тестировщики не могут прямо сейчас приступить к этим задачам, если они, опять же, заняты в своих командах. А дополнительных ресурсов и людей, которые могли бы закрыть срочную техническую потребность на стороне не найти — нужен опыт и знания коллег, работающих в платежах и переводах. Время поджимает, нам понадобятся все силы коллег в течении нескольких дней для покрытия такого объемного технического долга.
И здесь мы вспомнили про багатон
Мы также вспомнили опыт проведения багатонов, когда команды закрывали десятки багов за один день. Мы подумали, что можем проецировать подобное решение на бэклог автотестов.

Технические направления и бизнес работают вместе над качеством продукта для наших пользователей, и понимая, что нам срочно нужны все силы тестировщиков в моменте, мы пошли к бизнесу.
За что я люблю корпоративную культуру Альфа-Банка, так это за то, что мы всегда идем навстречу друг другу! В трудные и критические моменты мы помогаем друг другу.
Мы договорились, что тестировщики будут освобождены от любых других активностей в пользу epsilon автотестов два рабочих дня подряд.

Начальство поддержало нашу инициативу покрыть весь техдолг за раз и даже выделило нам призовой фонд, которые мы распределили бы между победителями.

Итак, игра была объявлена!
Но запланировать мероприятие и получить бюджет не равно провести мероприятие. Это только самые первые маленькие шаги к победе над задачей! Здесь начинается самое интересное.
Опыт проведения багатона показал, что успех мероприятия напрямую зависит от качества планирования. Поэтому к этой задаче мы решили подойти основательно — регулярно созванивались группой организаторов и прописывали план. Ниже можно увидеть примерный перечень работ, который мы обсуждали и выполняли.

Таблицу делали «для себя», поэтому я могу лишь извиниться за формат и расписать подробнее, что же подразумевалось под каждым пунктом.
Итак, пойдем сверху вниз.
-
Формирование бюджета. Здесь все просто, начальство согласовывало нам призовой фонд, который я оставлю секретом.
-
Привлечение аналитиков к участию. Так как анализ каждого эндпоинта занимает энное количество времени, мы должны были подготовить максимально понятную документацию на каждый готовый к автоматизации эндпоинт, чтобы это время не увеличивалось.
-
Бэклог. Список эндпоинтов мы имели на руках, но надо было привести его в такой формат, чтобы коллегам было удобно брать эднпоинты в автоматизацию, а нам после считать результаты. Ничто лучше, чем таски в Jira на специальной доске не могло подходить для такой наглядности.
-
Обучение. Опять же, чтобы ребята максимально круто перформили по автотестам, они должны были знать, что от них требуется. Поэтому я и мой коллега провели ряд обучений (лекции и воркшопы) для подробного анализа действий тестировщика в процессе покрытия автотестом потенциально уязвимого эндпоинта «с нуля».
-
Игровая механика. Описали свод правил и процесс работы во время «автодня».
-
Согласование дня проведения. Мы понимали что за один день уложиться нереально и смогли убедить коллег выделить тестировщиков на два дня подряд. Честно скажу, я не верила, что такое получится. Однако, удалось. Но этот момент я затрону еще раз чуть позже.
-
«Реклама» и анонс: мы рассказывали коллегам о своем процессе подготовки, в основном, на созвонах, таким образом «заряжая» их атмосферой предстоящего событием. Ну и конечно же, показывали важность покрытия всех эндпоинтов автотестами.
Как таковой «рекламной кампании» не было, но, тем не менее, о мероприятии узнали соседние дирекции, оценили идею и присоединились к нам. Лиды QA провели аналогичные работы для своих дирекций и были готовы присоединиться к нашей активности в намеченные даты.
В списке пункты выглядят идущими друг за другом, но все эти «этапы» шли параллельно (что добавляло сложностей) Одним самым сложным для нас, организаторов, была аналитика.
Аналитика, что ты делаешь, прекрати
Когда я только села за эту статью, одно из моих первых предложений было таким: «Не буду говорить о сложностях и страданиях, глубокой аналитике, а расскажу о том, как у нас прошло гладко, без эксцессов, именно так, как мы и намечали».

Но я не могу держать это в себе, честно. Это было больно.
В чем же боль? Как уже было упомянуто, бизнес согласился отпустить тестировщиков всего на два дня. Задача — покрыть все эндпоинты автотестами, и за два дня без предварительной аналитики это невозможно сделать. Представьте себе, что мы соберем людей, дадим им список всего лишь из 150 эндпоинтов, они потратят неделю на их изучение и только потом смогут написать на них автотесты. Не нужно даже считать, чтобы понимать, что в два дня такую работу не уместить.
Что мы сделали? На каждый потенциально уязвимый эндпоинт мы создали по задаче в Jira и приложили в каждую из них данные на воспроизведение.
Дальше участник мог бы работать с задачей по такому алгоритму…

Это скрин алгоритма из нашего манифеста Идеального Automation Day, каким он нам виделся. В принципе, он таковым он и вышел, ведь участникам во время мероприятия оставалось только перенести данные в фреймворк автотестов. И с такой задачей любой человек во время дня мог повторять одну итерацию: взял задачу — написал тест из документации — прошел ревью ПР.
И вот для этого нам пришлось знатно потрудиться. Наша аналитика заняла много, очень много времени: больше двух недель мы создавали задачи, обновляли документацию, сводили данные. На помощь пришли наши лучшие друзья — аналитики!
Они на самом деле реально нас спасли. Провести анализ 200+ эндпоинтов за три недели было неподъемной задачей для кучки организаторов, но аналитики уже писали функциональные требования на все на микросервисы, благодаря чему приложили в разы меньше усилий, чем это делали бы тестировщики даже бОльшим составом нежели группа организаторов.
Мне стоит упомянуть, что требования к эндпоинтам были написаны и так же мы имели тест-кейсы на воспроизведение IDOR уязвимостей. Но информация не везде была актуальная. Что именно мы попросили сделать аналитиков? Убедиться, что их документация актуальная и обновить ее, при необходимости.
Может возникнуть закономерный вопрос — тестировщикам выделили время, а как работали аналитики? Им тоже согласовали заменить некоторые задачи на актуализацию требований.
В итоге, мы получили даже больше, чем 150 задач, всего лишь 230. «Как мы и хотели».

Итак — настал день X
Утром четверга собрались со всеми участниками мероприятия плюс начальники и официально начали нашу гонку.
Я бы хотела подчеркнуть тот момент, что AutoDay в нашем понимании не был событием на уровне оффлайн-багатона или другого «модного» мероприятия. Мы планировали максимально эффективно провести этот день. А когда мы эффективно работаем? Когда нам удобно и никто не отвлекает. Отчасти поэтому мероприятие и проводилось в онлайн формате, чтобы участвовало максимальное количество человек.
Часто организаторы заморачиватся над тем, чтобы сделать какие-то лендинги, легенды, отрисовать дизайн, геймификацию, снимают помещение, баннеры, находят фотографа и пр.
У нас всё прошло «по-домашнему».
Мы просто созвонились в Альфа-Толк (как в «Зуме»), раздали задачи и погнали.

Чтобы обеспечить драйвовую атмосферу и быстро решать возникающие вопросы организаторы спрятались остались в комнате Альфа-Банк и в течение всего мероприятия дежурили и отвечали на все вопросы.
Участники, конечно, могли как сидеть с нами в общей комнате, так и заходить по необходимости с вопросами. В целом, ребята работали как им было удобно
До сих пор я вспоминаю прошедшие дни с улыбкой, хоть и было тяжело. Мы почувствовали себя большой дружной командой, семьей, которая весело и активно решала приятные задачи, а не работала (спасибо готовым задачам).
В течении дня, я следила за статусами задач и время от времени закидывала в ребят информацию о том, сколько уже ими было сделано и сколько нам еще осталось. Так как у нас не был прикручен Burndown Chart (была обычная канбан-доска, ребят, настроить всё не успели) то я могла лишь отображать участникам график перехода задач по статусам.

Что на скриншоте:
-
Зеленое — завершенные задачи.
-
Оранжевое — ToDo.
-
Фиолетовое — In Progress
-
Синее — Review.
Около сотни задач уже было закрыто на начало мероприятия, чему поспособствовало наше раннее обучение: после воркшопов мы раздали ребятам задачи на «разгонку», которые и отражены завершенными на графике до утра 8 февраля
В конце дня мы объявили об окончании дежурства, однако участники разошлись отдыхать чуть позже (на графике видно, что после 8 вечера еще кто-то решал задачи), так как результаты суммировались за весь календарный день.
Около 5 задач так и остались незакрытыми из-за особенностей эднпоинтов, их мы решали в отдельное время уже после подведения итогов.
Что было дальше?
А дальше мы выдохнули, так как самое сложное и волнительное для организаторов было завершено; дали ребятам ещё пару дней на возможность поправить замечания на пул реквестах; а сами в параллель подводили итоги.
За эти два дня ребята обращались к нам с нетривиальными случаями, с которыми столкнулись во время более подробного изучения потенциально уязвимых эндпоинтов. Всё-таки при анализе более 200 эндпоинтов организаторы могли что-то да пропустить. Так и случилось — мы выяснили что несколько эндпоинтов невозможно покрыть автотестами в текущей реализаици нашего тестового фреймворка, и нам придется искать обходные пути уже после завершения всех остальных работ.
Но самым вкусным считаем то, что мы обнаружили 6 багов с высоким приоритетом и исправили в самые короткие сроки.
Меньше чем через неделю мы объявляли наших победителей и раздавали призы, будучи увереными в том, что в нашем направлении больше не имеется IDOR уязвимостей и при будущих поставках мы будем отлавливать их появление!
Мораль сей басни такова
-
Можно провести хакатон, багатон, и прочий «тон» без внешней мишуры, «по-простому».
-
Качественное планирование залог наилучших результатов не только при планировании разработки и поставки нового функционала, но и при вышеперечисленных мероприятий.
-
Альфа-Банк любит и поддерживает массовые инициативы внутри IT! Только благодаря поддержке Бизнеса и коллег мы смогли такое организовать. Я рада, что мы показали что мы настоящая команда!
Больше всего из этой истории меня впечатляет отзывчивость начальства и коллег в Альфа-Банке по организации подобного мероприятия! (не реклама, меня не заставляли писать этот текст
).
Из негативного: не всем участникам понравилась идея «два дня автоматизации». Два дня подряд показались некоторым утомительными, и если бы они хотели повторить, то в формате «одного дня». Хотя такого шага от нас потребовал объем технического долга, мы были с ними согласны. И если рискнем повторить, обязательно учтём!
И в конце хотела бы оставить хвалебные отзывы участников Автодня.


Спасибо, если у вас был опыт участия или организации подобных мероприятий, поделитесь опытом: что можно было бы сделать лучше, а что получилось хорошо
Статьи, которые могут быть интересны:
-
Эксперименты на 3,5 квадратах: качнул сетап от «бомж-уровня» до «мини-студии»
-
Как у нас почти получилось сделать автономного робота для «Битвы Роботов»
-
Как дизайнеру с помощью макетов оптимизировать процессы и сэкономить время
-
База об организации процесса разметки: команда, онбординг, метрики
Подписывайтесь на Телеграм-канал Alfa Digital. Рассказываем о работе в IT и Digital, делимся полезными советами, новостями, видео с митапов, краткими выжимками из статей и многим другим, иногда шутим.
Подписывайтесь на блог Альфа-Банка на Хабре, впереди много хороших статей.
ссылка на оригинал статьи https://habr.com/ru/articles/810983/
Добавить комментарий