Представьте, что вам платят зарплату за то, что вы смотрите порно. Я тот счастливчик, у которого была такая работа.
Два года я работал QA-инженером в команде Яндекс.Видео, а теперь страсть как неймется рассказать про любимый сервис, в том числе с позиции тестирования.
Выбрал «клубничную» часть, ведь в интернете ищут совсем не котиков. По количеству запросов
С таким докладом я хотел поехать на QA-конференцию, но COVID-19 спутал не только мои планы. Данная статья собрана по материалам несостоявшегося выступления.
Отказ от ответственности: Написанное ниже является личным мнением автора и может не совпадать с официальной позицией компании Яндекс. Статья не является предложением или рекламой какого-либо продукта или сервиса и носит информационно-развлекательный характер. Короче, не воспринимайте это слишком серьезно, а если вам становится плохо при виде женской груди – просто закройте вкладку.
Прелюдия
Яндекс.Видео – сервис поиска и просмотра видеороликов и фильмов в интернете.
Это не хостинг. В отличии от YouTube или Pornhub сервис не хранит видео, а ищет в сети. При этом смотреть его можно, не переходя на сайт источника.
Ежедневно миллионы людей смотрят тут кино, мультики, контент блогеров, обучающее ролики, записи игровых стримов, клипы, рецепты. А еще здесь можно смотреть порно.
NDA не позволяет мне назвать, какую часть порно запросы составляют от общего числа на сервисе, однако могу привести немного статистки рунета, по которой количество сайтов со взрослым контентом
Все, что можно найти в Яндекс.Видео – уже представлено в интернет. Сервис не занимается распространением порнографии, зато позволяет пользователю найти ответ на свой запрос. Поиск соблюдает законы страны, в которой работает, а материалы, нарушающие законодательство, блокируются.
Камасутра технологий
Яндекс.Видео – часть большой экосистемы, тесно связано с Поиском и Директом. Есть интеграции с Яндекс.Станцией, объектным ответом, Кинопоиском, подпиской Яндекс.Плюс и покупкой фильмов.
Сервис работает на всех платформах. Это значит, что смотреть видео с Сашей Грей можно на компьютерах, смартфонах, планшетах и телевизорах. Нужен только браузер или поисковое приложение Яндекс (
У каждой платформы своя верстка.
Фронтэнд на TypeScript. Бэкенд на C++. У фронтэнда гибридный стек: есть
Для кода у Яндекс.Видео свой репозиторий с тёплым названием Fiji (по названию острова, где зимой и летом можно бегать голышом).
Кто бывал на Я.Субботниках по разработке интерфейсов знает, как сильно в Яндексе любят Гермиону (
Тестирование с двойным проникновением
В Яндекс.Видео ежедневный релизный цикл. Вместе с мной горячее видео смотрела армия внешних тестировщиков, попутно делая регресс в поисках багов релиза. Но это завершающий этап, а начинается все с задачи в
Задачу (или баг) может завести любой член команды. Кроме багов, которые находим сами, их приносят другие любители клубнички из числа коллег, поддержки, внешних тестировщиков. И это хорошо, ведь рук на всё не хватает.
Приоритет по задачам устанавливает менеджер. Тестировщики в свою очередь контролируют SLA на починку багов.
Когда разработчик кончил писать код, он тестирует свою задачу и если все хорошо, открывает пул-реквест.
Включается автоматика и начинается возбуждающий процесс. Собирается тестовый стенд. Линтеры проверяют соответствие кода нашим правилам и договоренностям. Одновременно с линтерами проходят юнит тесты. Так разработчики убеждаются, что за просмотром девушек в коротких видео не накосячили в коде. А пока в пул-реквесте бегут проверки, они делают друг другу ревью. Что может быть волнительнее, чем подглядывать в чужой код.
За юнитами стартуют функциональные и e2e-тесты. Тут на помощь спешит Гермиона, проверяет не разломался ли сервис. Кликает в порно-колдунщики, смотрит не потерялись ли порно тэги, сравнивает карусельки порно актрис и всякое такое.
Если Гермиона покраснела, возможно что-то отвалилось из-за новой фичи. Разработчику придется совершить еще один подход и удовлетворить расстроенную Гермиону.
Кроме указанных проверок, есть и другие. Например, вместе с автотестами пул-реквест проходит проверки на скорость, чтобы убедиться, что новый код не замедлил сервис.
Прежде чем задача попадет на тестирование к QA, разработчик убеждается, что следующие пункты чек-листа выполнены.
- Проверки в пул-реквесте успешно пройдены, ревью завершено.
- Автотесты зеленые.
- На фичу, баг написаны автотесты. Если тест сложный или их много, заводится отдельная задача на автоматизацию.
- Тестовый стенд актуален.
- Разработчик самостоятельно проверил что фича работает, баг исправлен (на это тоже есть чек-лист).
- У задачи есть описание, указано, что и как тестировать.
В прошлом указанный список – это топ причин переоткрытий задач, теперь же – один из простых способов повышения скорости производства.
Я не писал автотестов, хоть и умею, зато бдительно следил за тестовым покрытием и последующей автоматизацией тест-кейсов.
Не каждый разработчик захочет забавляться с Гермионой, когда под рукой терабайты Саши Грей. И все же у нас соблюдалась договоренность, что вместе с фичей или исправленным багом разработчик напишет автотесты. Иногда хватало юнита, иногда приходилось написать десяток проверок.
Автотесты сопровождают ручные тест-кейсы. Кейсы на мелкие фичи разработчик делает сам. Не всегда выходит хорошо.
Большие куски функционала покрывают тестировщики.
Тест-кейсы пишутся в формате YAML и хранятся вместе с кодом фичи и автотестами. При выкатке в продакшн они синхронизируются с TMS (test management system). В Яндекс собственная система управления тест-кейсами под названием TestPalm.
Дорогие ручные проверки дублируют дешевые автотесты не просто так. При тестовых прогонах, если на ручной написан автотест, он не упал и не заскипан (skip), то ручной будет исключен из текущего сьюта. Ровно, как и наоборот, если автотест упал или временно отключен, в тестовый прогон будет добавлен ручной тест-кейс.
Для фичей с хорошем покрытием, при тестировании задачи делаются лишь базовые проверки. Дальше они проходят проверку у внешних консультантов – асессоров. Простые задачи помогают решать исполнители сервиса
Если с фичей все хорошо, QA мержит ее в DEV. Там она ждет своего часа поехать в релиз.
И так каждый день. Вечером собирается релиз и попадает на тестирование асессорам, ночью гоняются автотесты, утром анализ результатов, разбираем баги и если все хорошо, к 11 утра пользователя уже ждут новые sexy-фичи.
Гарем фичей
На Яндекс.Видео есть не только порно, хотя по моему мнению, это самая вкусная часть. Здесь смотрят фильмы, мультики и видеоролики. Есть много крутых фичей, но я расскажу про свои любимые.
Поиск
Задача поиска – помочь пользователю найти ответ на свой запрос. Если просит порно, нужно подать. Главное никакой чернухи, малолеток, зоофилии и прочего извращения – это табу! Проблема в том, что считать порно запросом. Не для всех пользователей «клубничка» – сладкая ягода, а «мокрая киска» – домашний питомец после принятия ванны. Но вдруг за компьютером ребенок.
По отношению к порно, поиск делит запросы на три типа.
Белые – не имеют отношения к порнографии. Например: девушки, досуг.
Серые – двусмысленные: клубничка, золотой дождь, медсестра, школьницы, трансвеститы. Кто-то точно ищет по ним порно, другие – точно нет, и расстроятся, увидев порноответ.
Черные – явно ассоциирующиеся с темой секса: Саша Грей, анал, pornhub, русское порно, секс с толстой мамашей.
Чтобы оградить себя или детей от порно выдачи, в настройках Яндекса можно включить «семейный» режим поиска, он уберет из результатов взрослый контент и останется активным даже после перезапуска браузера.
В «умеренном» режиме взрослый контент попадает в поисковую выдачу только по явному «черному» запросу, «серые» будут исключены.
Я не боюсь нефильтрованной выдачи, поэтому выбираю режим «без защиты», но при тестировании поиска проверяю работу остальных режимов, особенного «детского». Кроме того, важно смотреть на релевантность, работу фильтров длительности, верстку сниппетов, ajax-переходы по страницам.
Порноколдунщик
Когда пользователь вводит порно запрос в поиске, Яндекс наколдовывает ему красивый ответ и добавляет в выдачу так называемый колдунщик.
Колдунщик нравится пользователям. Они кликают в него. Чтобы это происходило еще чаще, мы сделали анимацию превью и добавили автоплей. Теперь за блюром происходит нечто интригующее. И как по мне, так у Google порноответ гораздо хуже.
Бывают и другие колдунщики, например:
При тестировании порноколдунщика важно убедиться, что клик по сниппету открывает правильное видео, превьюшки автоматически запускаются по порядку и когда отыграют все – воспроизведение начнется заново, при наведении мышки на сниппет автоплей выключается и играет превью выделенного сниппета. Превью у порно сниппетов должно быть заблюрено, а замминистра обороны блюрить не надо.
Колдунщик использует общие компоненты с другими командами на Поиске и иногда его может сломать чужой релиз, но такое случается не часто.
Песочница
На Яндекс.Видео, кроме собственных источников (КиноПоиск, Эфир) можно смотреть ролики, размещённые на сторонних ресурсах: от YouTube до Vimeo, от ВКонтакте до Facebook, от Pornhub до XVideos. Сервис индексирует все, до чего дотянется поисковый бот.
Фишка в том, что плеер с роликом изолируется и воспроизводится в т.н. «песочнице». Даже если сайт-источник содержит вредоносный код, Яндекс.Видео не пропустит вирус на компьютер пользователя и не передаст никакой личной информации. Смотреть порно на Яндекс.Видео абсолютно безопасно. При условии, что не будете тыкать на ссылки в плеере и всплывающую рекламу.
Директ
Если поиск, порноколдунщик и плеер работают, значит уже можно зарабатывать деньги.
Нет денег – нет серверов, программистов, QA, пива и женщин. Каждый тестировщик знает, что на любом сервисе, самая важная фича та, которая приносит прибыль. Не трудно догадаться, что для поиска – это Яндеĸс.Диреĸт.
На порно запросах показывается особенный Директ, со специальными «взрослыми» тематиками.
Карусель порноактрис и порнорекомендации
Карусель с порноактрисами – моя любимая фича. Клик на фото понравившейся актрисы ведет на выдачу фильмов с ее участием.
Рядом с каруселью есть блок со связанными запросами, который помогает пользователю уточнить запрос и показать более релевантные результаты поиска.
А если пользователь не хочет ничего уточнять, ему наверняка придутся по вкусу рекомендации с топ подборочкой.
Из-за моего повышенного внимания эти фичи почти не ломались. На тестировании, в нужно было проверить их наличие, кликабельность, адаптивную верстку на разных устройствах. Убедиться, что кнопки прокрутки не пропали, и что карусели можно листать на планшетах.
Доступность в мире и вообще
Яндекс.Видео заботится о доступности. Это не про девушек легкого поведения, а про то, что люди с ограниченными возможностями должны пользоваться сервисом наравне с остальными пользователями. Например, мы знаем, что слабовидящие слушают видео на сервисе, поэтому при разработке и тестировании фичей старались учитывать это.
Еще Яндекс.Видео
С 2020 года Яндекс затеял экспансию в Европу. Я участвовал в запуске со стороны Яндекс.Видео. Весной запустились на финском, польском и прибалтийских доменах, а по осени на остальных доменах
Счетчики и аналитика
Для меня аналитика созвучна с популярным порнозапросом, но у менеджера другие ассоциации. Если она не смотрит порно, значит что-то анализирует.
Для каждого сервиса важно знать, сколько пользователей получили удовольствие, а сколько остались неудовлетворёнными. Поэтому надо считать все – запросы, клики, просмотры, переходы по страницам.
Самый главный показатель мне не позволяет назвать NDA. Но могу назвать один из главных показателей у YouTube – это время смотрения.
Только не переживайте – в Яндекс.Метрике данные обезличены и вашей приватности никто и ничто не угрожает, смотрите хоть Лунтика, хоть Мию Малкову.
Порно нон-стоп
Раньше у Яндекс.Видео был просто нон-стоп. Когда кончалось одно видео, запускалось следующее, между ними рекламный ролик. Пользователь получал релевантный контент, а сервис – рост времени смотрения и доход от рекламы.
Теперь для порно тоже есть нон-стоп. Жаль, что пока не для всех порно-хостингов.
Порно эксперименты
Ежедневно в Яндексе идут сотни экспериментов, так называемые A/B-тесты. Меняется дизайн, цвет ссылок, размер текста, появляются новые кнопки. Страница, открытая пользователем, скорее всего будет отличаться от просматриваемой его соседом.
Прежде чем в продакшене переместить блок с рекламой, увеличить фоточки в карусельке порноактрис, покрасить заголовки или скрыть порноколдунщик, нужно проверить это на тестовой группе, чтобы посмотреть не снижает ли метрики выкаченный функциона, посчитать, счастливее стали пользователи или нет и прикинуть сколько денег это принесёт. Только после этого изменения увидит весь свет.
Игрушки для взрослых
Из-за того, что девушки в роликах постоянно меняются, начинаешь путать их имена. Тяжело переключаться между задачами из-за смены контекста. Средств для снятия эмоционального напряжения нет. Зато есть уютный офис, бесплатная еда, массажное кресло и самокаты.
А еще есть ящик всяких девайсов размером с холодильник, айфоны от 5 до новых Pro Max, айпады всех моделей, разные андройды. Когда не хватает, есть Parallels, VirtualBox и собственная ферма устройств. Если надоест смотреть хентай на одном девайсе, можно взять другой – попутно и адаптивность проверить.
Когда хочется отвлечься, есть черное окно терминала. Можно смотреть как мигает курсор или запушить пул-реквестов с тест-кейсами.
В арсенал инструментов входит: Charles, Postman, ADB, VS Code, пачка расширений для Chrome и десяток браузеров. Как никто другой я представляю, что такое кроссбраузерность.
Но любимый инструмент тестировщика фронтенда – dev-тулзы. Иногда мне кажется, что я смотрю туда больше, чем на Мию Малкову.
Чем занимаемся, когда не смотрим порно
В перерывах между просмотром порно – встречи с командой. Виной тому Scrum – ежедневный групповой 30 минутный стендап, чтобы запланировать активностей на текущий день.
У Яндекс.Видео двухнедельные спринты. Команда старается придерживаться плана, но иногда приходится «превознемогать себя». Тут как в БДСМ: важно договориться о стоп-слове и применить его, когда менеджер пытается впихнуть в тебя невпихуемое.
Из-за обилия встреч некогда было смотреть порно по пятницам. Сначала общая встреча тестировщиков Поиска, затем общеяндексовый Хурал, следом LSR (live site review) — разбор факапов.
В конце спринта команда презентует новые sexy фичи на собственной дэмо-встрече. Так появляется общее понимание, куда движется сервис.
Демо плавно перетекает в ретро. Те, у кого Scrum, знают, что это типа встречи анонимных алкоголиков. Участники команды по очереди делятся болями, а потом все радуются достижениям и фиксируют action items чего ещё для счастья надо. Ходят слухи, что свои ретро команда Яндекс.Видео заканчивает просмотром новинок независимого артхаусного кино. Я не отвечу, чтобы сохранить интригу.
Результаты
Кому написанное выше показалось несерьезным и возникли мысли, что кроме просмотра порно мы больше ничего не делали, приведу результаты работы команды за 2020 год.
У Яндекс.Видео теперь новый дизайн, сервис стал современнее, удобней и быстрее.
На выдаче появился покупной контент от Кинопоиска. Фильмы можно купить прямо на Яндекс.Видео. Вариантов подписки Яндекс.Плюс стало меньше, зато теперь она понятнее пользователю и включает больше фильмов.
Много успешных экспериментов с рекламой.
В период пандемии COVID-19 мы придумали и первыми запустили совместный просмотр. Любимые фильмы можно смотреть вместе с друзьями, находясь даже далеко друг от друга.
Продолжили наступление на Европу. Яндекс.Видео теперь доступен на .eu и других европейских доменах.
Разработчики, кроме разбора технического долга, преуспели в скорости производства. Фичи доставляются в продакшн быстрее, количество продуктовых задач возросло, а очередь в тестировании уменьшилась.
Хочется привести цифры сколько задач и экспериментов протестировано, и сколько кейсов написано силами QA-инженеров, но цифры попадают под NDA.
Релиз теперь выкатывается быстрее на 8 часов по сравнению с предыдущим годом, а его проверка у тестирования занимает не более часа. Отчасти это благодаря совершенствованию процессов, отчасти потому, что за первый семестр ручными тестами была покрыта вся критичная функциональность сервиса, большая часть из них автоматизирована. Переработана половина тест-кейсов.
Достижения, в том числе в обеспечении качества продукта – заслуга крутой дружной команды. Кого попало делать sexy-фичи не берут!
Один из частых вопросов, есть ли в команде девушки. Да, есть. Руководитель, менеджер, один из дизайнеров и разработчиков, часть смежных коллег – девушки. Никакого гендерного неравенства – горячий контент доступен всем желающим.
В команде рады
А если хотите смотреть порно на дому, можно попробовать поработать асессором или стать
Кончая
Зачем я ушел, раз все прекрасно? Пришло время попробовать силы в другом проекте. Яндекс многому научил, тепло отношусь к нему, но нужно двигаться дальше.
Приятно, что многомиллионная аудитория, среди которых мои друзья, каждый день пользуется Яндекс.Видео.
Мне не за что краснеть, люди потребляют взрослый контент. Это нормально, если никому не вредит и не нарушает законов.
«Пятьдесят оттенков серого» все еще читают. Только за первый год было продано 40 млн. экземпляров. В Великобритании книга по продажам обогнала «Гарри Поттера».
Сашу Грей ежемесячно
Порноиндустрия одной из первых поддерживает новые технологии и помогает внедрению их в массы. Видеокассеты VHS, кабельное телевидение, Blue-Ray, онлайн платежи, стриминг, робототехника – лишь небольшая часть. Кто знает, что было бы с ними, если бы не порно. Интернет в вашем доме есть благодаря Министерству обороны США и DARPA, а быстрый интернет благодаря PornHub. Страсть и технологичность, вот за что я люблю порно.
Тем же, кто не хочет смотреть порнографию, перефразирую Павла Дурова: – Не ищите ее!
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.