Баг трекеры в вконтакте что это
Не баг-трекер, а…
Настоящий IT-шник всегда любит сварить «кашу из топора». А если этой кашей еще и получается вкусно накормить коллег, то выходит вообще замечательно.
По долгу службы мне постоянно приходится сталкиваться с различными инсталляциями bug и issue-трекеров (далее просто баг-трекеров) и среди них попадалось довольно много нестандартных решений. Что-то мне приходилось разворачивать самому, что-то я «подсмотрел» у клиентов, но поделиться наблюдениями было бы полезно.
С этой темой я уже выступал на конференции SQADays, но для тех, кому лениво смотреть 18 минут видео, все будет кратко расписано в статье.
Смысл?
Disclaimer
Примеры, которые пойдут дальше, взяты из реальной жизни. Но успешное внедрение у кого-угодно никак не означает, что и у вас все пойдет как по маслу. Не забывайте думать, пробовать и советоваться со старшими товарищами.
Ну и сразу попрошу прощения, что частенько упор пойдет на использование JIRA (можете кинуть в меня помидор), т.к. эту систему я использую на повседневной основе, но и другие баг-трекеры не были забыты — практически все нижеописанное можно сделать и с их помощью.
Поехали!
HelpDesk
Наиболее частым, не совсем стандартным, применением баг-трекера, которое мне приходилось наблюдать, было использование его в качестве HelpDesk-а в службе технической поддержки.
Из плюсов такого применения можно отметить удобство связывания обращений в HelpDesk и багов, по ним заведенных (интеграции с HelpDesk-ами с каждым днем хорошеют, но идеала все нет), и отсутствие необходимости учить техподдержку работать с двумя системами. Но нужно понимать, что такая система будет чуть менее удобна, чем отдельный HelpDesk, и если вам приходится работать с большим количеством обращений, большинство из которых решается службой поддержки самостоятельно, то лучше смотреть на отдельную HelpDesk-систему.
Ближе к делу. Как такую систему можно настроить?
Использование этих плагинов/обработчиков позволяет парсить письма, сохранять тему письма в теме созданной заявки, аттачить вложения из письма к заявке, привязывать ответные сообщения к соответствующим заявкам.
Но даже если вы не планируете разворачивать у себя HelpDesk, попробуйте использовать создание и комментирование заявок через email в повседневной работе. Некоторые находят это очень удобным.
Для JIRA отдельно стоит отметить плагин Issue Collector, который позволяет настроить удобные формы обратной связи для последующего размещения у себя на сайте.
К сожалению, плагин еще сыроват и не во всех случаях может надежно работать.
Наличие службы поддержки обычно подразумевает и наличие SLA (Service Level Agreement), по которому вы обязаны решать инциденты за строго определенное время. А для искоренения забывчивости администраторы, с подачи руководства, настраивают всякие напоминалки:
Бюрократия
Согласования, отфутболивания, заявки, многоуровневые иерархии сотрудников, что может быть лучше… для автоматизации? На самом деле, автоматизация каких-то бюрократических моментов организации, если и не помогает сделать их проще, то уж прозрачнее так точно делает.
Доводилось видеть баг-трекеры, с помощью которых делали согласование закупок оборудования, отслеживание бюджета проекта, работу с документами и т.п.
В основе такой кастомизации обычно лежит создание своего Workflow — жизненного цикла заявки. Т.е. какие состояния у заявки есть и какие переходы могут быть между ними. Кроме того, благодаря настройке прав доступа отдельные переходы можно разрешить только для специально обученных ответственных товарищей.
Помогает создание своего workflow и в ежедневной рутине разработчика. Например, могут быть введены новые промежуточные состояния для задач вроде «в тестировании» или «идет приемка заказчиком».
Новые типы заявок (например, «согласование документа», «закупка», «проектирование» или «тестирование») позволяют не только сделать процесс работы более наглядным, но и привязать к каждому типу заявки отдельный Workflow. Так если для задачи «разработка» имеет смысл ввести состояние «тестирование» в жизненном цикле, то для задачи «дизайн» такое может и не понадобится.
Почтовые рассылки
Баг-трекер это не только ценный инструмент, но обычно и система почтовых нотификаций, в него встроенных. И эти нотификации можно использовать себе во благо для создания почтовых рассылок внутри организации. Рецепт прост:
Дележ ресурсов
Вам определенно следует позаботиться о контроле за ресурсами, если одни и те же сервера часто одновременно используются для различных нагрузочных тестов, либо два сотрудника одновременно пытаются забрать один и тот же iPad в командировку для демонстрации.
Воспитывать совесть у коллег с помощью баг-трекера сложно, но повысить уровень организации можно. Рецепт:
Естественно, никто не может запретить человеку забрать ресурс и «не отметиться в системе», но с помощью доброго слова и удобного инструмента можно сделать больше, чем с помощью одного доброго слова.
Голосования
Довольно распространенную функцию голосования за реализацию тех или иных заявок тоже можно использовать себе на благо. Если вы задались вопросом «куда пойти на корпоратив» или «что подарить директору на день рождения», то можете смело использовать баг-трекер (убедитесь только, что директор им не пользуется :). Рецепт:
JIRA и Bugzilla имеют встроенную функцию для голосований. Для Redmine есть плагин.
Тест-менеджмент
Есть любители использовать баг-трекер в качестве системы для хранения набора регресcионных тестов, которые нужно выполнять вручную на каждой очередной версии продукта. Сам я не фанат такого способа, но раз люди используют, то что-то в этом есть. Рецепт:
Плюсы такого решения: очень удобно из тестов ссылаться на заявки/баги в баг-трекере, нельзя закрыть версию, в которой есть «незакрытые» тесты. В целом может быть не так удобно, как специализированная система для тест-менеджмента.
Технические возможности расширения
Кроме возможностей по настройке баг-трекеров (а все предыдущие рецепты по сути настройки) часто есть возможность расширить функциональность баг-трекера и программно.
Все основные баг-трекеры имеют интерфейсы для удаленного доступа, которые можно использовать для какой-то своей автоматизации. Например, автоматически постить заявки по каким-то событиями или из внешних систем.
Кто не хочет заморачиваться с программированием, может использовать для автоматизации клиенты командной строки:
Для разжигания холиваров скажу, что самый развитый клиент у JIRA 🙂
Опять-таки здесь JIRA впереди планеты всей. В основном благодаря экосистеме для разработчиков плагинов, которая при должном уровне подготовки позволяет очень здорово кастомизировать поведение JIRA и добавлять всякие «полезности» и «свистелки».
Итоги
Пару мыслей, которые я хотел донести до слушателей на SQADays и до читателей на Хабре:
А в комментариях буду рад увидеть какие-то нестандартные использования баг-трекеров, которые попадались Хаброжителям.
Баг-трекер
Трансляция найденных багов в Ваши новости.
Сообщество отключено. Исправленные: vk.com/bugsfx
Баг-трекер запись закреплена
Раздел стал слишком популярным, что привело к снижению качества.
А публикации упираются в лимиты.
Баг-трекер запись закреплена
Продукт: m.vk.com
Показать полностью.
Приоритет: Средний
Тип проблемы: Неработающая функциональность
Теги: Сообщения
Автор: Андрей Купчинский
Фактический результат:
Когда я записываю голосовое, потом прослушиваю, оно обрезано
Баг-трекер запись закреплена
Багнутая иконка в тегах отчета
Продукт: Баг-трекер
Показать полностью.
Приоритет: Низкий
Тип проблемы: Потеря данных
Теги: Другое
Автор: Алексей Котовский
Фактический результат:
Можно наблюдать странный тег без текста
Баг-трекер запись закреплена
Возможность отвечать голосовыми комментариями
Продукт: VK.com
Приоритет: Низкий
Тип проблемы: Пожелание
Теги: Голосовые сообщения
Автор: Ника Мясо
Баг-трекер запись закреплена
Ошибка при нажатии кнопки «воспроизвелось»
Продукт: VK.com
Показать полностью.
Приоритет: Средний
Тип проблемы: Производительность
Теги: Другое
Автор: Лёша Жерлыгин
Фактический результат:
Пишет ошибка (подробнее на скриншоте)
Баг-трекер запись закреплена
при листании страницы Firefox появляется/исчезает фотография пользователя возле написать комментарий
Продукт: VK API
Показать полностью.
Приоритет: Низкий
Тип проблемы: Косметическое несоответствие
Теги: Wall
Автор: Андрей Огурцов
Фактический результат:
появляется картинка
Баг-трекер запись закреплена
Невозможно переслать сообщение с ключом группы
Продукт: VK API
Показать полностью.
Приоритет: Средний
Тип проблемы: Неработающая функциональность
Теги: Messages
Автор: Егор Плотников
«ВКонтакте» не платит пользователям за найденные уязвимости
В конце мая ВКонтакте торжественно объявила о запуске открытой программы вознаграждений за уязвимости. Это, как и некоторые другие события, побудило меня на написание этой статьи. История началась еще в сентября 2014, когда во время написания мною сервиса, основанного на API социальной сети, я обнаружил уязвимость, которая позволяла узнавать как администратора сообщества, сделавшего пост, так и человека предложившего эту запись.
1. Обнаружение уязвимости
Уязвимость заключалась в методе API newsfeed.get. При выполнении самого обычного запроса к нему, в объекте, среди прочих, возвращался массив из 4-5 пользователей (profiles). Они, судя по документации, должны были являться пользователями из ленты новостей. Однако я никак не мог найти в ленте этих людей, и зачастую в массиве встречался только мой собственный аккаунт.
Меня заинтересовало это и я начал тестировать этот метод на ленте новостей с записями от моей собственной группы. Потратив вечер на тесты, я нашел закономерности: в массиве возвращались администраторы, сделавшие запись в группу, и люди предложившие эту запись в группу, причем не для одного поста, а для последних четырех, и отдавались они вперемешку, без определенного порядка.
То есть, сделав к newsfeed.get запрос для получения последнего поста в ленте новостей, в массиве profiles мне возвращало администратора написавшего и пользователя предложившего как эту запись, так и предыдущие три.
Это было уже достаточно серьезной уязвимостью, однако мне хотелось связать конкретные посты с конкретными людьми.
Первым делом я стал выносить каждую анализируемое сообщество в отдельный список новостей, так я смог решить проблему, когда пользователи разных сообществ находились в одном массиве. Вторым моим шагом стало сокращение параметра count до одного, таким образом я получил массив profiles для каждого поста группы. После этих действий стало значительно легче анализировать выдачу.
Я написал скрипт, который первым делом создавал список новостей с определенным сообществом. Затем собирал для каждого поста этого сообщества свой массив с профилями. Здесь я столкнулся с лимитами API, оно отдавало мне посты лишь за последние 12 дней, но с этим тоже можно было работать.
После сбора массивов для максимально возможного количества постов, скрипт начинал их анализировать. Для начала находились те пользовательские id, которые встречаются ровно в четырех массивах. Из четырех постов, связанных с этими массивами я находил самый ранний. Этот пост был предложен в сообщество пользователем, чей id мы нашли. Затем эти пользователи отфильтровывались из массивов и мною составлялся список администраторов.
2. Сообщаем об уязвимости
Являясь сознательным пользователем, после этого я отправился сообщать об уязвимости. Так как открытый баг-трекер я счел не лучшим местом для такого рода уязвимости, я связался сразу напрямую с разработчиками. Первый из разработчиков просто не ответил на мое сообщение, второй ответил спустя 4 дня, поблагодарил и обещал подумать, как это исправить.
Я знал об отсутствии официальной bug bounty программы у ВКонтакте, но также знал, что нередки были случаи поощрения за уязвимости внутренней валютой (голосами), однако решил отложить эти вопросы на момент исправления уязвимости. После этого я стал изредка мониторить уязвимость. Это продолжалось до апреля 2015, когда прочитав очередную статью об уязвимости и вознаграждении, я снова проверил свою уязвимость и она не была исправлена.
Я решил связаться по поводу уязвимости с техподдержкой где, спустя две недели ожидания, мне написали, что код передан разработчикам и меня оповестят, как только появятся новости.
Наступил май, я снова решил проверить уязвимость, и она, наконец, была исправлена. На это потребовалось 8 месяцев. Со мной, несмотря на обещания, никто так и не связался, поэтому я решил написать сам, и заодно узнать критерии, по которым социальная сеть выплачивает вознаграждения. Меня ждала очередная неделя ожидания ответа от техподдержки, и сам ответ, в котором мне предложили подождать ещё.
Со мной связались лишь 29 мая, спустя несколько часов после запуска программы вознаграждения за уязвимости, заявив, что раз «уязвимость уже исправлена, то она не подпадает под новую программу и им мне нечего предложить».
Итоги
UPD: Похоже, после запуска программы поощрения ситуация изменилась не сильно.
Баг-трекер, геймификация и сильное комьюнити: как 36 тысяч участников VK Testers охотятся за багами
Привет! Меня зовут Мария Захарова, я возглавляю команду VK Testers — программы бета-тестирования ВКонтакте. Сегодня ей исполняется пять лет. В честь нашего праздника (а ещё Дня тестировщика) расскажу, как появилась программа и какая она сейчас. Также вас ждёт бонус: в статье можно узнать, как попасть в ряды VK Testers.
Ровно 74 года назад был задокументирован первый баг-репорт. Он связан с именем талантливой американской учёной Грейс Хоппер.
В 1947 году она принимала участие в разработке Mark II — одного из первых программируемых компьютеров. Однажды в реле застрял мотылёк, что блокировало передачу сигнала. Когда коллеги Грейс обнаружили насекомое, она произнесла легендарное слово bug, что переводится как «жук». Позже мотылька извлекли, вклеили в технический дневник и подписали: First actual case of bug being found — «Первый случай в практике, когда был обнаружен баг». А само слово стало термином, который обозначает компьютерную ошибку.
Благодаря этой истории 9 сентября стал профессиональным праздником тестировщиков. Но для нас дата имеет особое значение: именно в этот день была создана программа бета-тестирования ВКонтакте VK Testers.
Если 74 года назад всё началось с мотылька, то наша история начинается с конкурса по тестированию VK Testing Challenge.
В 2016 году ВКонтакте активно запускала новые продукты и представляла релизы. При этом отдел тестирования состоял из шести человек — очередь на проверку становилась всё больше и в какой-то момент достигла нескольких месяцев. Чтобы быстро масштабировать мощности, мы открыли конкурс и создали собственный баг-трекер. Участники заводили туда отчёты по десктопному мессенджеру ВКонтакте.
Эксперимент оказался успешным: мы получили более 20 000 отчётов об ошибках. Некоторое время мессенджер ВКонтакте проверялся только нашим сообществом бета-тестировщиков.
За пять лет многое изменилось:
Всё это время мы исследовали разнообразные подходы и гипотезы: создавали уникальный симбиоз собственного программного продукта и комьюнити тестировщиков, построенного вокруг. Сейчас в нашем сообществе 36 000 пользователей — именно они помогают продуктам на последнем этапе перед запуском.
Сейчас все мажорные обновления ВКонтакте в обязательном порядке проходят бета-тестирование. А, например, бета-версии клиента для Android и вовсе могут выходить несколько раз в день, чтобы конечный пользователь встретил как можно меньше ошибок.
Участники программы не только постоянно проверяют обновления в рамках недельного релизного цикла, но и оставляют предложения — они нередко обретают форму в следующих версиях.
Конечно, часто пожелания пересекаются с планами команды. Но это лишь подтверждает, что для развития продукта выбрано верное направление.
Как правило, участники предлагают небольшие фичреквесты, чтобы пользоваться платформой стало ещё удобнее. Например, добавить новые функции в клиентах: возможность отображать реплаи и переходы к ним, делиться стилями стикеров, выбирать, публиковать ли историю о смене фото в профиле.
Мы часто обращаемся к комьюнити за помощью в нестандартных ситуациях: к примеру, когда ищем стабильные шаги воспроизведения редких ошибок или крашей, сталкиваемся с проблемами на необычных Android-девайсах. Кроме того, перед крупными релизами мы проводим марафоны по тестированию, чтобы в кратчайшие сроки проверить новые функции и получить пользовательский фидбэк. Так было, когда мы запускали Клипы ВКонтакте или обновляли мессенджер. Также этап беты проходят все сервисы на платформе VK Mini Apps, прежде чем попасть в каталог.
Справка: для участия в марафонах по тестированию мы предварительно собираем заявки, чтобы отобрать лучших тестировщиков. В VK Testrun участвуют 30–50 человек: в течение суток они охотятся за багами в новом продукте, соревнуясь друг с другом. Так команда разработки получает концентрированный фидбэк.
Параллельно разработчики исправляют найденные ошибки и выдают всё новые версии продукта тестировщикам, чтобы собрать ещё больше обратной связи. Получается хакатон, только в тестировании.
Чтобы баг-трекером было удобнее пользоваться, мы разработали мобильную версию и собственную дистрибуцию. Только представьте: установить бета-версию приложения можно прямо из баг-трекера, нажав всего одну кнопку, а рассказать об ошибке — на соседней вкладке.
Таким образом, бета-тестировщикам становится проще взаимодействовать и с Командой ВКонтакте, и с самим баг-трекером. Они могут сообщать об ошибках за считаные минуты и тем самым совершенствовать продукты платформы.
Сила VK Testers — в комьюнити. В программе бета-тестировщики плотно взаимодействуют с командами продуктов ВКонтакте и друг с другом. А ещё — много учатся. Мы уделяем пристальное внимание образовательному контенту: постоянно публикуем статьи с теорией, рассказываем об особенностях продуктов. А пару месяцев назад выпустили целый образовательный видеокурс. Получились отличные материалы для полноценного старта в специальности: от истории методов и подходов до автоматизации тестирования мобильных приложений.
Одна из ценностей ВКонтакте — это люди. Поэтому с самого начала мы решили обойтись без пропасти бюрократии и формальностей между участниками программы и сотрудниками ВКонтакте. Этому немало помогла легендарная «Тестировочная №1» — чат-предвестник комьюнити, первыми участниками которого стали ребята из VK Mobile в 2017 году. Именно здесь зародился один из основных форматов работы: тесное сотрудничество в обстановке, где не страшно ошибиться или сказать глупость.
Прямой доступ к общению с Командой ВКонтакте — один из главных мотиваторов. Это поддерживает лояльность, мотивирует на поиск багов и саморазвитие.
Важное место в системе занимают офлайн-мероприятия. В течение года мы проводим несколько встреч, где все могут познакомиться и пообщаться вживую. Также события и конкурсы, которые помогают раскрыть творческий потенциал, регулярно проходят онлайн.
Всё это вместе с высокой вовлечённостью команды помогает программе VK Testers оставаться практически уникальным явлением в мире тестирования.
Мы гордимся, что в нашем сообществе царит атмосфера дружеского соревнования. В этом помогает геймификация: она внедрена в процесс поиска ошибок, чтобы поддерживать здоровую конкуренцию.
Так, пару недель назад мы представили систему достижений. Можно получать значки, если совершать разные действия: например, заводить отчёты, участвовать в крупных проектах и мероприятиях. Большинство ачивок увеличивают рейтинг тестировщика в программе, но некоторые его уменьшают — и хорошие ребята вряд ли их получат. Такие «награды» мы держим в секрете, чтобы не соблазнять участников нарушать правила.
Также мы уже во второй раз проводим премию VK Testers Awards, где отмечаем успехи тестировщиков за год. Премия проходит в день рождения программы. В этот раз мы подготовили 16 номинаций: лучших ждут награды за большое количество принятых отчётов или за качественный поиск уязвимостей. Победителей мы объявим уже сегодня. Они получат диплом, специальную ачивку, а победители в главных номинациях — ещё и короткий адрес ВКонтакте.
Однако в программе VK Testers участников ждут не только виртуальные, но и реальные вознаграждения. За активность бета-тестировщикам даются баллы. Это внутренняя валюта, которую можно потратить в «лавке тестировщика»: на новенький MacBook или iPhone, премиальные устройства на Android или мерч.
Накопить на топовые устройства можно за 4–6 месяцев активного участия в бета-тестировании.
Элементы геймификации мы используем и при тестировании новых продуктов. Например, при крупном обновлении бэкенда историй важно было протестировать их загрузку в формате видео. Мы предложили тестировщикам не просто проверить раздел, но и поучаствовать в конкурсе на лучшую историю — с сюжетом, как ожидаемый и фактический результат драматично не совпадают в жизни. Чтобы победить, нужно было не только снять легендарное видео, но и создать отчёт о баге — желательно, не менее легендарный.
VK Testers — история не только про бета-тестирование. Это настоящая стартовая площадка для ребят, которые хотят начать карьерный путь в IT. Десятки наших «выпускников» работают ВКонтакте и в других компаниях благодаря своим теоретическим знаниям, а главное — огромному количеству практики, полученной в программе.
За пять лет наши тестировщики оставили более 280 000 отчётов в 1 341 продукте.
В VK Testers каждый найдёт что-то своё. Можно научиться тестировать и попасть в Команду ВКонтакте. А кто-то просто будет рад узнавать об обновлениях на платформе раньше других пользователей. Лучше всего нашу работу отражает один из девизов программы — We test with love: мы совершенствуем продукт, к которому неравнодушны.