Горящие глаза
На своей первой работе я тестировал производительность игры World of Warships. Это было не нагрузочное тестирование в привычном его понимании. Мы не стреляли Джиметром и не проверяли RPS-ки, мы контролировали производительность клиента.
Перед каждым релизом нам нужно было убедиться, что на разных конфигах не просели FPS, не появились фризы и утечки памяти. Про особенности такого тестирования расскажу как-нибудь отдельно, текущий пост будет про другое.
Для тестирования мы писали собственные тулзы. Но тулзы не покрывали все сценарии, и половину времени приходилось заниматься ручной работой. В то время я хотел писать код. Много кода. Я вставал в 6 утра, чтобы полтора-два часа перед работой позаниматься программированием. Работа руками не вписывалась в мою картину мира, она тормозила моё развитие, я начинал выгорать.
Вообще, вопрос можно было решить общением с моим лидом, но я был молод, глуп и горяч, поэтому начал ходить по собеседованиям на позицию Automation QA. Почему не на разработчика? Сейчас поясню.
В Варгейминге мы сидели в одном кабинете с автоматизаторами. Это были очень крутые ребята, которые не просто покрывали регресс автотестами, но и отвечали за всю инфраструктуру вокруг: писали аналог Селениума, но внутри игры, разрабатывали серверных ботов, поддерживали кластер линуксовых серверов и виндовых клиентов, настраивали Дженкинс и писали свои веб-тулзы.
Они делали так, чтобы разработчики сами могли запускать нужные тесты и видеть понятные отчёты со скриншотами. Короче говоря, они занимались не просто тестами, они создавали внутренний продукт для повышения качества. Меня это вдохновляло, я хотел делать подобными вещи, поэтому и начал искать позицию автоматизатора.
Через месяц мне пришёл оффер из Dino Systems, и я покинул ВГ. На собеседовании в Dino я с горящими глазами рассказывал про своё видение роли автоматизатора: про создание внутреннего продукта для повышения качества, про развитие кластера серверов, про удобные веб-приложения. HR и тимлид в ответ радостно кивали. Я решил, что мы на одной волне.
Когда в Dino мне дали доступ к репозиторию и назначили первые задачи, я офигел. Моя команда имела право только на написание автотестов для покрытия регресса. Всё, что мы делали — переводили тесты с английского на Python.
Нам было запрещено создавать утилиты внутри нашего проекта. Разрешалось использовать только API библиотеки, которую разрабатывала другая команда. Например, в половине тестов присутствовали одинаковые 5 строчек кода, в которых менялся только один параметр. Нам нельзя было вынести эти пять строчек в отдельную функцию.
Когда в своих тестах я вынес дублирование в отдельную функцию, моё ревью завернул тимлид. Он предложил сделать презентацию перед командой, чтобы объяснить всем, почему нужно убирать дублирование. Я провёл презентацию, но мой МР всё равно не приняли и заставили дублировать код.
В этой истории нет подводных камней или других толкований. Нам просто запрещали писать хоть что-то, кроме тестов на уже готовом API. Из программиста я превратился в оператора внутренней библиотеки Dino на языке Python. Моя работа была максимально далека от того, что я с горящими глазами описывал на собеседовании. Впервые в жизни у меня начался нервный тик левого глаза.
В ВГ наши самописные тулзы для тестов производительности ворочали гигабайты данных в ELK-стеке, мы писали виндовых агентов для мониторинга тачек, разрабатывали веб-морду на React (в 2015 году) для анализа графиков FPS с детализацией по десяткам подсистем. И всё это осталось в прошлом. Моё желание исполнилось. Я начал писать код всё рабочее время, но какой ценой.
Я проработал в Dino ровно три месяца и получил бесценный опыт. Теперь я лучше формулирую свои желания и не нанимаю ребят с горящими глазами, если мне нечем поддержать их запал.