Pull to refresh
ab_dgtl
Центр технологического развития

Как мы сделали свой чемпионат для тестировщиков и что получилось

Reading time9 min
Views4.8K

«Привет! В этом году мы решили сделать новое отделение в Средиземье совместно с местным Мордор банком. Программисты закончили нашу веб версию, осталось только протестировать. Верстка должна адекватно работать в популярных браузерах в этом регионе — Chrome и FF. Макеты ты получил отдельно в Телеге».

Недавно мы провели чемпионат по тестированию среди казанских тестировщиков — «БагБастерс», и это были первые слова технического задания для участников. 

Меня зовут Николай, я руковожу направлением автоматизированного тестирования в компании Ak Bars Digital. Расскажу, как и зачем мы придумали чемпионат для QA, как сделали сайт вымышленного Мордор банка, как собрали 30 команд за 2,5 часа и какие задания по багам подготовили. 

Немного контекста: первый «БагБастерс»

Для тестировщиков мало мероприятий. Есть митапы и конференции, но вот чтобы что-то поделать руками – такого крайне мало.

На хакатонах для разработчиков, data science инженеров, мероприятиях для дизайнеров или на Capture the Flag (формат соревнований по поиску уязвимостей для безопасников) тестировщикам делать-то, по большей части, нечего.

Можно просто сидеть в уголке, пить кофе, наблюдать как растут деревья за окном и ничего не изменится. 

Поэтому осенью 2021 года мы и сделали мероприятие (сначала для себя) именно для тестировщиков, где нет ничего, кроме тестирования.

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

  • Пригласили наших тестировщиков (у нас их на момент первого мероприятия было 150 в компании), еще пришли несколько аналитиков, безопасников и разработчиков.

  • «Посидели» в формате «квартирника», без официоза, формальностей, каких-то докладов. Повеселились, да и разошлись. 

Всем понравилось (по отзывам внутри это было видно): это не «еще один хакатон», а что-то новое и необычное для тестировщиков. И подумали: «Может быть, сделаем так же, но для всех? Пригласим ребят и из других компаний». Решили попробовать. Как итог – провели наш первый открытый чемпионат «БагБастерс». Кажется, получилось неплохо.

«Фэнтезийный» сервис для чемпионата

Итак, мы решили провести чемпионат по тестированию. Для этого нам нужен «объект» для тестирования — сервис, на котором участники будут искать ошибки. Каким должен быть сервис для такого тестирования на чемпионате?

  • Он должен быть прост и понятен всем, чтобы успеть целиком протестировать за несколько часов.

  • При этом он должен быть достаточно сложным, не слишком синтетическим, и содержать бизнес-логику, приближенную к реальной, чтобы все было похоже на реальное тестирование, а не на список олимпиадных задач.

Подумали и решили сделать минималистичный игровой банковский сервис там, где юридические ограничения не действуют — в Средиземье. Придумали «легенду», что банк открывает филиал в Мордоре и запускает сайт для выдачи кредитных продуктов, его и нужно потестить. Главная страница выглядела так.

Делали мы его долго — 2 месяца. Сейчас понимаю, что можно было бы «поднять» все за неделю, но мы подходили ответственно: часами спорили о багах, меняли задания в последний момент, потому что внезапно пришла отличная идея, вытачивали графику до последнего пикселя. К тому же задача была не продовая, и мы работали вполсилы, растягивая удовольствие. «Мы» — это небольшая команда: 2 бэкендера, 1 фронтендер, и задания придумывали 4 человека.

Перейдем к заданиям.

«Мордор банк открывает свои двери»

Каждая команда получила техническое задание (которое само было наполнено ошибками больше, чем сам сервис) и экземпляр приложения на своей БД. Всего на сайте было 4 секции для поиска багов: «Змейка», подача заявки на кредит, гадание от местного астролога и само ТЗ. Также нужно было написать письмо продакту, в котором убедить его не релизить сайт.

О них чуть подробнее.

Змейка

По задумке — расслабляющая игра, как мобильная «Змейка», только вместо ее тела — цепочка из персонажей книг Толкина во главе с Гэндальфом. Когда их собираешь, гномы или хоббиты встают к хвосту змейки. Так это описали в ТЗ.

Так она выглядела на экране.

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

  • очки считались неверно;

  • присутствовало ограничение на количество очков, о котором не сказано в ТЗ;

  • игра начиналась в случайном месте, хотя в ТЗ прописали, что в одном и том же;

  • игра ускорялась там, где должна была сбрасываться;

  • персонажи начинали смотреть в другую сторону;

  • а сообщения были неинформативны. 

Но нашелся один человек, кого игра все же расслабила. В итоге змейка стала внутренним мемом.

Скрин из ответа с формы обратной связи.

Приятно такое читать. Буду перечитывать это предложение всю жизнь в темные моменты, чтобы воодушевиться.

А еще кнопка «Поиграть» вела на оформление кредита, хех.

Личный кабинет и заявка на кредит

По «легенде», подавать заявки на кредит…

…может только авторизованный пользователь, поэтому надо зарегистрироваться и заполнить заявку.

После пользователям показывается информация о поданной заявке в личном кабинете.

Это задание — хедлайнер чемпионата. В нём мы собрали почти всё, что знали о плохих формах: проблемы с граничными значениями, несоответствие ТЗ, плохие требования самого ТЗ, кривую вёрстку, логические и фактические ошибки в сообщениях, проблемы с безопасностью. Например, по ссылке admin мог пройти любой, а пароли хранились в открытом виде (скрин одной команды).

Вылезали надписи на английском языке. Мы не знаем мордорского, поэтому у нас иногда встречался английский. Вдруг мордорчане на нем говорят? Все-таки, Толкин англичанин, логично.

Не на все экраны у участников были макеты и приходилось как-то обосновывать, что верстка ужасно режет глаз, и надо что-то с этим делать.

Еще не смог себе отказать в удовольствии добавить баг для любителей докопаться до каждого элемента в макете. Кто-то заметил (жаль, что не все), что цвет кнопки лишь чуть отличается от макетного и плохо заметен для глаз, если не сравнивать напрямую по коду цвета.

Тысяча и одно запретное удовольствие для любителей тестировать верстку
Тысяча и одно запретное удовольствие для любителей тестировать верстку

Админка

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

Примерно столько ошибок на одном маленьком попапе.

А еще на странице админа «рыба» вместо телефона: мы не знаем телефонный код Средиземья, поэтому поставили заглушку. 

Гадание

Здесь, якобы, оракул делает предсказание: в центре появляется светящееся кольцо и текст предсказания. 

Но кольцо персональное: его параметры зависят от машины пользователя, времени дня, количества букв имени и самого имени. Например, если в имени пользователя гласных больше, чем согласных, то выводится сообщение «Ваш кредитный лимит будет увеличен в два раза!». А ночью кольцо будет светиться синим цветом. Правил было много и составить тест-кейсы быстро и качественно было вызовом.

Но, пожалуй, самым интересным багом кольца было несоответствие его цвета техническому заданию. В ТЗ целевые цвета были указаны как рапсово-жёлтый, #474A51 и #002137. Правильным решением было пойти посмотреть ответы API, где ответ приходил в виде RGB, перевести в HEX формат и разобраться, что считать рапсово-желтым. Но были команды, которые просто тыкали пипеткой в центр кольца (которое еще и в некоторых вариантах могло ярко светиться) и кидали в ответы так.

Неправильный способ разобраться в рапсово-желтом.

А это терпимый способ — найти в замусоренном API нужный цвет и убедиться, что выпал рапсово-желтый.

Письмо продакту

Итак, тестирование было закончено и осталось самое серьезное испытание: написать product owner'у, высказать общее мнение о сервисе и убедить не релизить. Вот так выглядело описание задания (как уже говорил, в нем полно ошибок). 

Команды старались…

…писали письма специально приглашенному product owner'у, который продукт в глаза не видел — Артуру.

Оффтоп

Пока шло соревнование, в общий чат люди иногда кидали скриншоты своих любимых багов, например, фото верстки, которая разъехалась..

…вырезки кадров со мной, когда на них появлялся мой кот…

…фото с домашним животными добавляя надписи, например, «Это я когда устал у вас тестировать»…

…и рабочие места. Кто-то солидно подошел к вопросу:

Судейство

Кто-то записывал баги без скринов:

А кто-то к каждому прикладывал скрин и давал ссылки:

Оценки за найденные баги мы оформляли в судейских листах:

Если заметили, то названия команд… каламбурные. Очень много команд пытались шутливо обыграть слово баг: «Мои БАГини», «Бухбастерс», «Пляжные Багги» и подобные. Мы до этого не знали, что можно столько шуток придумать со словом баг :-) Было забавно:

Как оценивали

Оценивали по шкале от 0 до 3 баллов по правилам, которые сразу же всем озвучили открыто. Даже составили гайд по оценке ошибок в баллах.

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

Значимость оценивали всего по двум критериям:

  • Major дефект: прямое нарушение требований, серьезное влияние на бизнес логику, невозможность пройти пользовательский путь, безопасность — 3 балла.

  • Minor: верстка, опечатка, мелкая грязь, неудачное usability решение, мелкое несоответствие макетам — от 0,1 до 1 балла.

На разных этапах у ошибок разная значимость. Например, в заявке на кредит они оцениваются в 3 балла (потому что важный сервис), на змейке — в 1,5, а опечатка оценивалась до 0,5 балла. Соответственно, каждая команда могла определять, на чем ей больше сосредоточиться и какую стратегию выбрать.

Гайд отправили вместе с заданиями и шаблоном отчета.

Примечание. Критерии оценок открыты, но мы хотели добавить что-то нетехническое, из реального мира, в котором есть непреодолимая сила в виде продакта, у которого есть свой взгляд на оценки. Он выставлял оценки от 1 за самое неубедительное общение, и 5, когда точно был уверен, что релизить нельзя. Мы умножали его оценку на определенный мультипликатор. Поэтому за конкретные баги еще можно было похоливарить в судейском составе, а вот с Артуром уже не поспоришь. Предполагаем, что здесь участникам пригодились те самые софт скиллы — умение договариваться.

Оргмоменты

Мы собрались на БагБастерс в субботу утром, полчаса ушло на оргмоменты: рассказать об игровых условностях, показать примеры работы с прошлого чемпионата, объяснить как заполнять таблицу, раздать доступы, объяснить смысл мероприятия, познакомиться. 

На работу выделили 2,5 часа: мы очень хотели не затягивать, а сделать быструю и насыщенную сессию, а когда время вышло, доступ пропадал (но заранее говорили, сколько времени дано), и ушли судить.   

Всего было 94 участника: 30 команд по 3 человека, и несколько по 2. Поэтому у нас ушел день и ночь на проверку ответов команд. Нас, судей, было немного — 7 человек и продакт оунер, который оценивал свою часть. 

На следующий день в 9 утра мы всех собрали на часовую церемонию награждения.

Призы

Всем выслали мерч, футболки, стикерпаки и поясные сумки, но главный приз — это кубок лучшему казанскому тестировщику. На кубке так и написано без лишней скромности. 

Понятно, что это лучшему казанскому тестировщику по версии одной компании, но все равно людям приятно. По крайнем мере, нам так писали победители. Кубок выдали на всех участников команды — 3 штуки.

Также подарили каждому участнику первых трех команд сертификаты федерального магазина бытовой техники (отовариться можно не только в Казани). Судьи тоже получили мерч, но мы работали больше на энтузиазме. 

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

По итогу моральное удовлетворение было огромным. Но хотелось просто упасть и отключиться после двух месяцев подготовки.

Все пошло не по плану изначально

Вообще, мы не рассчитывали, что к нам придёт столько участников. В прошлый раз, осенью, было всего 30 и мы думали, что и в этот раз будет примерно столько же. Поэтому раскидали анонс всего в двух чатах: посвященном другому нашему регулярному мероприятию Three Amigos Talk, и в чате казанских тестировщиков.

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

Мы думали, что если людей будет немного, то обойдемся своими казанскими тестировщиками, но не угадали. К нам пришли люди из 20 с лишним компаний и других городов: Иннополиса, Москвы, Пензы, Нижнего Новгорода, Ижевска, Чебоксар, Новочебоксарска, Воронежа, Йошкар-Олы, Севастополя, Краснодара, Самары, Перми, Санкт-Петербурга, Ульяновска и Набережных Челнов. 

Еще у нас также много аутстаф-сотрудников, которые работают в других городах. Плюс наши собственные, которые тоже участвовали. Так и набралось 94 человека.

Как уже писал, проект можно было запустить и за неделю, наверное, но у нас ушло 2 месяца. Старались тщательно подойти к ТЗ, к дизайну, к самим багам, решали другие организационные вопросы. Большую часть багов мы старались подобрать так, чтобы они имели естественное происхождение. Но в этом плане очень «помогло», что я всю жизнь пишу для бэкенда, и моё владение JS просто ужасное. Поэтому, когда мы закончили сервис, то думали, что внесли несколько десятков ошибок, но участники нашли сотни. 

Первый баг участники нашли еще до соревнования — не работала форма регистрации на участие. Когда мы кинули анонс и форму регистрации в чат казанских тестировщиков, нам начали писать, что не могут зарегистрироваться заканчивая сообщение словами «Это что, первое задание?»

Вывод

Получилось фановое мероприятие без разнарядки сверху. Мы предложили людям просто развлечься, посоревноваться только в своей специальности (хотя на чемпионате было несколько аналитиков и безопасников). Просто захотелось сделать что-то интересное без официоза вроде докладов или рекламы вакансий. Если вы участвовали в нашем БагБастерс — напишите в комментарии ваши впечатления (спустя время), нам будет интересно, а если впечатления хорошие, то и приятно.

Как-то так :)

Tags:
Hubs:
Total votes 23: ↑23 and ↓0+23
Comments12

Articles

Information

Website
career.akbars.digital
Registered
Founded
Employees
501–1,000 employees
Location
Россия
Representative
Карина Горбунова