Когда я только села писать эту статью про QA Automation Day, у меня было хорошее настроение: «Не буду говорить о сложностях и страданиях, глубокой аналитике, а расскажу о том, как у нас прошло гладко, без эксцессов, именно так, как мы и намечали». Если бы…
Привет, меня зовут Яна, я технический лидер тестирования Платежей и переводов Альфа-банка и сегодня мне бы хотелось поделиться с вами интересным опытом, который, в перспективе, можно использовать и как добрую традицию. Речь пойдет о мероприятии под названием «QA Automation Day».
![](https://habrastorage.org/getpro/habr/upload_files/41d/811/b58/41d811b586f48d9353ba5abaaceabcc3.png)
Сначала была боль
Сначала было слово наша изначальная проблема…Заключалась она в бэклоге, а точнее, в его большом объеме. Что же там объемного?
Банк выделяет достаточное количество ресурсов, чтобы обеспечить сохранность личных данных клиентов. И чтобы свести к минимуму возможность возникновения IDOR-уязвимости — веб-уязвимости, когда пользователь-мошенник может получить или воспользоваться личной информацией другого клиента банка, мы взяли на себя амбициозную цель покрыть все микросервисы платежей и переводов автотестами, утверждающими отсутствие данной уязвимости для каждого открытого в сети эндпоинта.
Мы должны быть уверены, что мошенники не могут с помощью своего токена получить данные другого клиента банка. Задача не из простых!
Собравшись с коллегами на анализ решения данной задачи быстро посчитали, что имея в прямом пользовании около 30 микросервисов мы перейдем черту за 150 тестовых сценариев, требуемых для анализа, воспроизведения и автоматизации. А до конца месяца их нужно срочно автоматизировать.
Вроде мало? Можно быстро закрыть. Ведь у нас 30 боевых единиц профессиональных QA. Это по 5 эндпоинтов на человека, минимум.
Однако есть пара нюансов…
№ 1. Один эндпоинт может иметь несколько потенциально уязвимых данных, требуемых проверки. Это увеличивает общий объем работы.
№2. Тестировщики распределены по бизнес-командам и выполняют свои непосредственные обязанности — проводят функциональное тестирование поставляемого функционала и поэтому не могут срочно приступить к нашей потребности в закрытии технического долга. Другими словами — они заняты. Условно, один QA может взять одну «задачу» в виде эндпоинта в день. Итого получаем 150 условных дней на закрытие.
№3. Покрыть автотестами уязвимые данные ни аналитик, ни разработчик не могут. Нет, конечно, могут, но им придется на одну задачу убить один день, без учета времени на обучение. В этом варианте получаем дней гораздо больше, чем 150.
Масштаб проблемы нам был ясен.
Итак, у нас было два
стулаварианта: закрывать бэклог в «свободное время» (несколько месяцев) или как-то закрыть бэклог за один раз.
На самом деле вариантов не было — закрывать бэклог в свободное время мы не можем, нам нужно сделать все это за один раз.
Прекрасная идея, но возникает нюанс — как собрать всех в одном месте?
Тестировщики не могут прямо сейчас приступить к этим задачам, если они, опять же, заняты в своих командах. А дополнительных ресурсов и людей, которые могли бы закрыть срочную техническую потребность на стороне не найти — нужен опыт и знания коллег, работающих в платежах и переводах. Время поджимает, нам понадобятся все силы коллег в течении нескольких дней для покрытия такого объемного технического долга.
И здесь мы вспомнили про багатон
Мы также вспомнили опыт проведения багатонов, когда команды закрывали десятки багов за один день. Мы подумали, что можем проецировать подобное решение на бэклог автотестов.
![](https://habrastorage.org/getpro/habr/upload_files/1aa/183/5a1/1aa1835a11432fe1023bb99dbb0795b3.png)
Технические направления и бизнес работают вместе над качеством продукта для наших пользователей, и понимая, что нам срочно нужны все силы тестировщиков в моменте, мы пошли к бизнесу.
За что я люблю корпоративную культуру Альфа-Банка, так это за то, что мы всегда идем навстречу друг другу! В трудные и критические моменты мы помогаем друг другу.
Мы договорились, что тестировщики будут освобождены от любых других активностей в пользу epsilon автотестов два рабочих дня подряд.
![](https://habrastorage.org/getpro/habr/upload_files/7ea/5a4/ca9/7ea5a4ca95270917180f429f216d6d0a.png)
Начальство поддержало нашу инициативу покрыть весь техдолг за раз и даже выделило нам призовой фонд, которые мы распределили бы между победителями.
![](https://habrastorage.org/getpro/habr/upload_files/503/600/b45/503600b45d15cf9f38006a9a978bda3a.png)
Итак, игра была объявлена!
Но запланировать мероприятие и получить бюджет не равно провести мероприятие. Это только самые первые маленькие шаги к победе над задачей! Здесь начинается самое интересное.
Опыт проведения багатона показал, что успех мероприятия напрямую зависит от качества планирования. Поэтому к этой задаче мы решили подойти основательно — регулярно созванивались группой организаторов и прописывали план. Ниже можно увидеть примерный перечень работ, который мы обсуждали и выполняли.
![](https://habrastorage.org/getpro/habr/upload_files/c49/c0f/ee7/c49c0fee7a74008781e8ffa8a9041ec4.png)
Таблицу делали «для себя», поэтому я могу лишь извиниться за формат и расписать подробнее, что же подразумевалось под каждым пунктом.
Итак, пойдем сверху вниз.
Формирование бюджета. Здесь все просто, начальство согласовывало нам призовой фонд, который я оставлю секретом.
Привлечение аналитиков к участию. Так как анализ каждого эндпоинта занимает энное количество времени, мы должны были подготовить максимально понятную документацию на каждый готовый к автоматизации эндпоинт, чтобы это время не увеличивалось.
Бэклог. Список эндпоинтов мы имели на руках, но надо было привести его в такой формат, чтобы коллегам было удобно брать эднпоинты в автоматизацию, а нам после считать результаты. Ничто лучше, чем таски в Jira на специальной доске не могло подходить для такой наглядности.
Обучение. Опять же, чтобы ребята максимально круто перформили по автотестам, они должны были знать, что от них требуется. Поэтому я и мой коллега провели ряд обучений (лекции и воркшопы) для подробного анализа действий тестировщика в процессе покрытия автотестом потенциально уязвимого эндпоинта «с нуля».
Игровая механика. Описали свод правил и процесс работы во время «автодня».
Согласование дня проведения. Мы понимали что за один день уложиться нереально и смогли убедить коллег выделить тестировщиков на два дня подряд. Честно скажу, я не верила, что такое получится. Однако, удалось. Но этот момент я затрону еще раз чуть позже.
«Реклама» и анонс: мы рассказывали коллегам о своем процессе подготовки, в основном, на созвонах, таким образом «заряжая» их атмосферой предстоящего событием. Ну и конечно же, показывали важность покрытия всех эндпоинтов автотестами.
Как таковой «рекламной кампании» не было, но, тем не менее, о мероприятии узнали соседние дирекции, оценили идею и присоединились к нам. Лиды QA провели аналогичные работы для своих дирекций и были готовы присоединиться к нашей активности в намеченные даты.
В списке пункты выглядят идущими друг за другом, но все эти «этапы» шли параллельно (что добавляло сложностей) Одним самым сложным для нас, организаторов, была аналитика.
Аналитика, что ты делаешь, прекрати
Когда я только села за эту статью, одно из моих первых предложений было таким: «Не буду говорить о сложностях и страданиях, глубокой аналитике, а расскажу о том, как у нас прошло гладко, без эксцессов, именно так, как мы и намечали».
![А вот нееееет! А вот нееееет!](https://habrastorage.org/getpro/habr/upload_files/74b/1e1/a34/74b1e1a3411b1880447bc469a7e409e8.png)
Но я не могу держать это в себе, честно. Это было больно.
В чем же боль? Как уже было упомянуто, бизнес согласился отпустить тестировщиков всего на два дня. Задача — покрыть все эндпоинты автотестами, и за два дня без предварительной аналитики это невозможно сделать. Представьте себе, что мы соберем людей, дадим им список всего лишь из 150 эндпоинтов, они потратят неделю на их изучение и только потом смогут написать на них автотесты. Не нужно даже считать, чтобы понимать, что в два дня такую работу не уместить.
Что мы сделали? На каждый потенциально уязвимый эндпоинт мы создали по задаче в Jira и приложили в каждую из них данные на воспроизведение.
Дальше участник мог бы работать с задачей по такому алгоритму…
![](https://habrastorage.org/getpro/habr/upload_files/414/942/b07/414942b074e69b2ea217c63d2aae09e6.png)
Это скрин алгоритма из нашего манифеста Идеального Automation Day, каким он нам виделся. В принципе, он таковым он и вышел, ведь участникам во время мероприятия оставалось только перенести данные в фреймворк автотестов. И с такой задачей любой человек во время дня мог повторять одну итерацию: взял задачу — написал тест из документации — прошел ревью ПР.
И вот для этого нам пришлось знатно потрудиться. Наша аналитика заняла много, очень много времени: больше двух недель мы создавали задачи, обновляли документацию, сводили данные. На помощь пришли наши лучшие друзья — аналитики!
Они на самом деле реально нас спасли. Провести анализ 200+ эндпоинтов за три недели было неподъемной задачей для кучки организаторов, но аналитики уже писали функциональные требования на все на микросервисы, благодаря чему приложили в разы меньше усилий, чем это делали бы тестировщики даже бОльшим составом нежели группа организаторов.
Мне стоит упомянуть, что требования к эндпоинтам были написаны и так же мы имели тест-кейсы на воспроизведение IDOR уязвимостей. Но информация не везде была актуальная. Что именно мы попросили сделать аналитиков? Убедиться, что их документация актуальная и обновить ее, при необходимости.
Может возникнуть закономерный вопрос - тестировщикам выделили время, а как работали аналитики? Им тоже согласовали заменить некоторые задачи на актуализацию требований.
В итоге, мы получили даже больше, чем 150 задач, всего лишь 230. «Как мы и хотели».
![Яна, технический лидер направления тестирования Платежей и переводов Альфа-банка, 26 лет. Яна, технический лидер направления тестирования Платежей и переводов Альфа-банка, 26 лет.](https://habrastorage.org/getpro/habr/upload_files/d04/d23/347/d04d23347c6a526120aee091fffc01b7.png)
Итак — настал день X
Утром четверга собрались со всеми участниками мероприятия плюс начальники и официально начали нашу гонку.
Я бы хотела подчеркнуть тот момент, что AutoDay в нашем понимании не был событием на уровне оффлайн-багатона или другого «модного» мероприятия. Мы планировали максимально эффективно провести этот день. А когда мы эффективно работаем? Когда нам удобно и никто не отвлекает. Отчасти поэтому мероприятие и проводилось в онлайн формате, чтобы участвовало максимальное количество человек.
Часто организаторы заморачиватся над тем, чтобы сделать какие-то лендинги, легенды, отрисовать дизайн, геймификацию, снимают помещение, баннеры, находят фотографа и пр.
У нас всё прошло «по-домашнему».
Мы просто созвонились в Альфа-Толк (как в «Зуме»), раздали задачи и погнали.
![Здесь должен быть скрин окна в Альфа-Толк со всеми участниками для наглядности, но его нет, поэтому мем. Здесь должен быть скрин окна в Альфа-Толк со всеми участниками для наглядности, но его нет, поэтому мем.](https://habrastorage.org/getpro/habr/upload_files/657/819/b3d/657819b3de3c5c49304d548d80d032cb.png)
Чтобы обеспечить драйвовую атмосферу и быстро решать возникающие вопросы организаторы спрятались остались в комнате Альфа-Банк и в течение всего мероприятия дежурили и отвечали на все вопросы.
Участники, конечно, могли как сидеть с нами в общей комнате, так и заходить по необходимости с вопросами. В целом, ребята работали как им было удобно
До сих пор я вспоминаю прошедшие дни с улыбкой, хоть и было тяжело. Мы почувствовали себя большой дружной командой, семьей, которая весело и активно решала приятные задачи, а не работала (спасибо готовым задачам).
В течении дня, я следила за статусами задач и время от времени закидывала в ребят информацию о том, сколько уже ими было сделано и сколько нам еще осталось. Так как у нас не был прикручен Burndown Chart (была обычная канбан-доска, ребят, настроить всё не успели) то я могла лишь отображать участникам график перехода задач по статусам.
![](https://habrastorage.org/getpro/habr/upload_files/364/1a5/208/3641a520898dc215f04c37657b073779.png)
Что на скриншоте:
Зеленое — завершенные задачи.
Оранжевое — ToDo.
Фиолетовое — In Progress
Синее — Review.
Около сотни задач уже было закрыто на начало мероприятия, чему поспособствовало наше раннее обучение: после воркшопов мы раздали ребятам задачи на «разгонку», которые и отражены завершенными на графике до утра 8 февраля
В конце дня мы объявили об окончании дежурства, однако участники разошлись отдыхать чуть позже (на графике видно, что после 8 вечера еще кто-то решал задачи), так как результаты суммировались за весь календарный день.
Около 5 задач так и остались незакрытыми из-за особенностей эднпоинтов, их мы решали в отдельное время уже после подведения итогов.
Что было дальше?
А дальше мы выдохнули, так как самое сложное и волнительное для организаторов было завершено; дали ребятам ещё пару дней на возможность поправить замечания на пул реквестах; а сами в параллель подводили итоги.
За эти два дня ребята обращались к нам с нетривиальными случаями, с которыми столкнулись во время более подробного изучения потенциально уязвимых эндпоинтов. Всё-таки при анализе более 200 эндпоинтов организаторы могли что-то да пропустить. Так и случилось — мы выяснили что несколько эндпоинтов невозможно покрыть автотестами в текущей реализаици нашего тестового фреймворка, и нам придется искать обходные пути уже после завершения всех остальных работ.
Но самым вкусным считаем то, что мы обнаружили 6 багов с высоким приоритетом и исправили в самые короткие сроки.
Меньше чем через неделю мы объявляли наших победителей и раздавали призы, будучи увереными в том, что в нашем направлении больше не имеется IDOR уязвимостей и при будущих поставках мы будем отлавливать их появление!
Мораль сей басни такова
Можно провести хакатон, багатон, и прочий «тон» без внешней мишуры, «по-простому».
Качественное планирование залог наилучших результатов не только при планировании разработки и поставки нового функционала, но и при вышеперечисленных мероприятий.
Альфа-Банк любит и поддерживает массовые инициативы внутри IT! Только благодаря поддержке Бизнеса и коллег мы смогли такое организовать. Я рада, что мы показали что мы настоящая команда!
Больше всего из этой истории меня впечатляет отзывчивость начальства и коллег в Альфа-Банке по организации подобного мероприятия! (не реклама, меня не заставляли писать этот текст
).
Из негативного: не всем участникам понравилась идея «два дня автоматизации». Два дня подряд показались некоторым утомительными, и если бы они хотели повторить, то в формате «одного дня». Хотя такого шага от нас потребовал объем технического долга, мы были с ними согласны. И если рискнем повторить, обязательно учтём!
И в конце хотела бы оставить хвалебные отзывы участников Автодня.
![](https://habrastorage.org/getpro/habr/upload_files/83a/fcc/e56/83afcce5645af85012d19e479a9c86f4.png)
![](https://habrastorage.org/getpro/habr/upload_files/fdb/e1c/422/fdbe1c42282db7234bd159c90d62518a.png)
Спасибо, если у вас был опыт участия или организации подобных мероприятий, поделитесь опытом: что можно было бы сделать лучше, а что получилось хорошо :-)
а
Комментарии (9)
spooph
27.04.2024 17:07+7Перевожу на русский: процессы в Альфа-Банке организованы так, что выставленные наружу ручки не тестировались на уязвимости и пришлось людей аврально собирать со всех команд департамента (нарушая планы в их командах), чтобы хоть как-то покрыть тестами функционал, который уже кучу времени в проде.
Хорошая антиреклама.
yignatenko Автор
27.04.2024 17:07Готовые автотесты не равно "не тестировались". Мы лишь хотим, чтобы при релизах не всплывали уязвимости, а автотесты помогут избавиться от мануальных ретестов и сэкономят всем время. TTM, все дела)
Как негативно.
IvanG
27.04.2024 17:07+2Главное, что удалось
Пописать в приятной атмосфере
Если серьезно, солидарен с вопросами выше, если это рабочий день (а если потребовалось на 2 дня откуда то "отрывать", то как-будто так и есть) то формат проведения с "огоньком" похвален, но можно было и без этого.
Еще как эффективный вариант решения, без тимбилдинг ноток, найти пару упоротых перформеров которые за половину/треть бюджета в виде премии затащили бы все это (возможно и без аналитиков), за те же "недели подготовки".
yignatenko Автор
27.04.2024 17:07О, мы тоже думали так таким вариантом, он и правда реален. В итоге все же реализовали тему моей статьи.
По поводу вопроса с рабочими днями ответила выше. Дни, конечно, рабочие, призовых мест было несколько. И если кто-т оне выиграл, то хотя бы "разгрузился" (опять же, я собирала ОС от коллег, это не мои слова)
Krasnoarmeec
27.04.2024 17:07"Ендпоинт" - это как серпом по мозгу, тем более, что в статье встречается и более привычное "эндпоинт". Конечно в виде "эндпоЙнта", но всё же лучше.
yignatenko Автор
27.04.2024 17:07+1Спасибо вам! Посмотрела на свой текст еще пару десятков раз и поправила везде где увидела!
mello1984
27.04.2024 17:07Эти истории про багатоны всегда вызывают вопросы...
Вот вы 'отпросили' тестеров на 2 дня из команд, а что стало со спринтами потом (если у вас скрам)? Тестерам потом пришлось лихорадочно тестировать задачи, которыми бы они могли заниматься эти 2 дня?
Честно говоря это все выглядит даже печальнее чем просто багатоны - похоже на то, что люди просто сидели и тупо перенабивали правила в код автотестов
Ну и 'мы команда' обычно всплывает когда надо сидеть и фигачить как не в себя, вместо того чтобы нормально запланировать нагрузку и все такое... Как говорится, 'геройство одних - это следствие раздолбайства других'...
aleksandy
Что-то я не понял:
Автотестеров (или не только?) собрали на 2 дня (рабочих, кстати, или выходных?) и по результатам кто-то "победил", читай, отбил потраченное время, если всё происходило в выходной, а кто-то "за значок" ударно поработал на благо работодателя?
А как бюджет распределился в отношении аналитиков, если задачи были описаны так, что "участникам во время мероприятия оставалось только перенести данные в фреймворк автотестов", то вся основная работа была выполнена аналитиками, а тестеры просто переписали с человеческого на фреймоворковый. Т.е. работа тупо механическая: возьми это, отправь туда, получить должен это, если не так, то выбрось ошибку.
Короче, похоже, что наградили непричастных, по большому счёту.
yignatenko Автор
Конечно рабочих! Я писала, что мы "отпросили" тестировщиков от всех остальных задач. Это подразумевает собой рабочие дни. Зачем же тогда мы бы договаривались? Я добавила пару предложений, чтобы такой путаницы ни у кого не возникло, спасибо Вам за это замечание!
Насчет аналитиков я тоже добавила информацию в текст статьи, спасибо Вам. Коллегам-аналитикам также заменили часть задач на актуализацию документации. Дело в том, что документация на епсилон кейсы была готова, но могла быть неактуальной (что часто встречается при сильно сжатых сроках поставок, сами понимаете). Поэтому аналитикам нужно было убедиться в актуальности своей же документации, по которой мы уже могли быстро написать автотест. Денежное вознаграждение за такое не вводили, хоть и были обсуждения, но после оценки объема работы техлидом аналитики, выяснилось, что работы для аналитиков там не настолько много, чтобы устраивать целый соревновательный квест. Хоть мы и старались принести тестировщикам максимально полное количество данных, но им все равно пришлось много работать, жаль, что вам показалось что тестировщики делали "тупо механическую работу". Может быть, я еще попробую поправить свое изложение этой части.