интервью

Сабина Хасанова рассказывает о профессии QA-инженера

Сабина Хасанова: «Это свобода с большой ответственностью, нужно быть очень собранным»


В интервью ALMAMAT Blog QA-инженер компании Setka Сабина Хасанова рассказывает о своей профессии и образе жизни. Зона ответственности Quality Assurance Engineer – качество продукта. Он прогнозирует и предотвращает проблемы в работе системы, а также тестирует то, что создают программисты. Репутация продукта, пользовательский опыт и рост клиентской базы во многом зависят от QA-инженера.
Сабина Хасанова
Software Quality Assurance Engineer в Setka
Сабина, расскажи о себе?

Сабина Хасанова: Мне 27 лет, я живу в Москве, четыре года работаю Quality Assurance инженером. Сейчас я в Таиланде на Пангане – второй год уезжаю на зиму в Юго-Восточную Азию.

У меня совершенно не технический бэкграунд. В 16 лет я окончила лицей и поехала в Казань учиться. Мне казалось, что есть два варианта – либо химик либо экономист. Не знаю, почему у меня был такой недостаток информации. В институте я выбрала факультет финансов, потому что звучало красиво.

На последних курсах института я начала работать, пробовала себя в разных компаниях. В какой-то момент я устроилась модератором в IT-стартап, который занимался недвижимостью. Поскольку после релизов постоянно что-то отваливалось, я репортила об этом, не зная, что выполняю работу тестировщика. Узнала я об этом только через пару лет, когда разработка стала офисной, а не удаленной, и у нас появилась девушка-тестировщик. Она начала меня обучать: объясняла теоретические моменты, рассказывала, как происходят разработка и тестирование. Для меня это был новый мир. Я планировала плавно перейти в него, потому что знала, что эта девушка получает предложения от компаний из разных стран, а у меня была давняя мечта – уезжать на зимовку. Но сложилось так, что мы пришли на работу и нам сообщили, что стартап закрывается, – обычное дело для стартапов.

И вот я понимаю, что через месяц у меня путешествие по Европе, а мне нужно искать работу. Тогда я просто осталась с невозвратными билетами в Москве и начала много всего изучать. Я приглашала в гости коллегу, чтобы она мне что-то объясняла. Я сидела с конспектами, смотрела материалы в Интернете и решала распространенные задачи, которые дают на собеседованиях. Сейчас любую профессию можно изучить в Интернете, и по факту для этого даже не нужны деньги. Когда у тебя мало практических знаний, сложно вникать в теорию. Думаю, если бы была возможность пройти курсы, то мне было бы сильно проще. К работе с тестированием можно подготовиться очень быстро, учитывая то, что сейчас много курсов, которые дают теоретические знания: как подойти к веб-сайту, что нужно смотреть, что можно узнать. Я думаю, после курсов можно сразу пойти работать джуниором. Пусть это будет не сложный суперпроект, но устроиться можно мгновенно.

Где-то через месяц я устроилась QA-инженером в IT-компанию. Взять меня взяли – а потом ты сталкиваешься с новой действительностью. Каждый день узнаешь столько всего: о новых программных продуктах, логах и базах данных; о том, как релизить и работать в консоли и т. д. Сегодня эти вещи видятся мне такими очевидными. Все это очень интересно, здорово и классно, потому что за короткое время ты сильно развиваешься и прокачиваешься.

Собственно, так я попала в IT. Можно было бы сказать, что так вышло. Но это как с английским: когда тебя спрашивают, откуда ты так хорошо знаешь язык, ты говоришь, что «так вышло». На самом деле это большая работа – но достичь этого реально. Сейчас я понимаю, что долго и последовательно к этому шла.


Как происходит собеседование на позицию QA-инженера?

Сабина Хасанова: Тебе задают вопросы на логику, математику. У меня был такой вопрос: «Представь механические часы со стрелками и время 15:15. Есть ли угол между часовой и минутной стрелками – и если есть, то какой?». Тебе не нужно разбираться в вебе и программировании, чтобы ответить на такой вопрос. Он просто показывает, как ты думаешь. И такие вопросы помогают пройти собеседование успешно. Такое есть и во многих больших компаниях и в стартапах. Адекватные интервьюеры не будут давать тебе задачи типа «протестируйте треугольник».


В каких компаниях ты уже поработала в качестве QA Engineer?

Сабина Хасанова: Сайт бронирования отелей «Островок», сайт по продаже авиабилетов Anywayanyday. А сейчас это Setka: мы помогаем редакторам и дизайнерам самостоятельно делать красивый анимированный контент.

* Setka Editor – онлайн-редактор для создания дизайна материалов с помощью сеток, шаблонов, анимаций, фонов и т. п. силами редактора, дизайнера, контент-менеджера без привлечения разработчиков.


В чем заключается твоя работа?

Сабина Хасанова: Полное название моей позиции – Software Quality Assurance Engineer. По-русски в трудовой книжке часто пишут «Специалист по качеству ПО» или «Тестировщик». Есть споры по поводу того, различаются ли QA-инженер и тестировщик. Считается, что Quality Assurance – это превентивная работа: этот человек предотвращает возникновение проблем. Существуют различия между мобильными тестировщиками, теми, кто отвечает за фронт, и теми, кто тестирует серверную разработку. Меня больше привлекает серверная разработка.

Я отвечаю за качество продуктов и занимаюсь непосредственно тестированием. По факту в каждой компании идет непрерывный процесс разработки и тестирования. Когда вы разрабатываете новый функционал, нужно убедиться в том, что он работоспособен и ничего не поломалось. Я прогнозирую ошибки, помогаю предотвратить их и могу увидеть их постфактум, когда продукт уже работает. В мою работу входят ручное тестирование и автотесты. Поскольку один из наших продуктов – это встраиваемый редактор, я работаю с разными интеграциями, такими как Wordpress, Bitrix, Drupal, Magento, кастомные CMS. Для регресса* по возможности пишу автотесты, а новый функционал тестирую руками.

* Регрессивное тестирование – тестирование ПО, направленное на обнаружение ошибок в уже протестированных участках.


Каким QA-инженером продуктивно быть – и наоборот?

Сабина Хасанова: Есть очень усидчивые люди, которые находят сотни багов, но при этом пропускают важные поломки. Продукт выпускают, и пользователи получают систему, которая при каких-то действиях ломается. Давать пользователю такой продукт – это создавать очень плохой User Experience и соответствующее мнение о продукте.

Пару лет назад я сдала экзамен ISTQB и получила международный сертификат тестировщика. Одна из аксиом, которая была в тесте, гласит: "Exhaustive testing is impractical and impossible". В переводе на русский: «Исчерпывающее тестирование нецелесообразно и невозможно».

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

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


Каких еще правил ты придерживаешься?

Сабина Хасанова: У всех IT-специалистов есть главное правило: не делать релизов в пятницу, перед праздниками и отпусками. Вы никогда не знаете, где возникнет проблема.

Есть еще такая штука из методологии тестирования, которая называется Smoke Test. Смысл вот в чем: когда берешь что-то в тестирование, ты не придумываешь нечто особенное, а пробуешь элементарные действия – и система ломается. Тогда ты возвращаешь задачу на доработку. Использовать Smoke Test – важное правило. Часто это экономит время и QA-инженеру и разработчикам. Тестировщик может забыть об этом и делать какие-то сложные штуки, а потом оказывается, что там не работали элементарные вещи.

*Smoke Test – «дымовое тестирование», минимальный набор тестов на явные ошибки. В прошлом в инженерной среде тестирование считалось успешным, если из устройства не пошел дым.


Как специфика работы QA Engineer влияет на мышление и поведение в социальной жизни?

Сабина Хасанова: Во многом проявляется педантизм, потому что быть педантом – часть работы QA-инженера. Хочется, чтобы все было по плану и по порядку. Если что-то не так, ты хочешь разобраться, докопаться до сути и решить проблему. Выраженное критическое мышление, наверное, может вредить в социальном плане. Иногда человек говорит что-то, а я думаю: «Давай сразу к концу». Эти вещи могут усложнять социальную жизнь, поэтому нужно учиться разграничивать. Это жизнь, в ней не нужно все контролировать.

В этом году я привнесла в свою жизнь лучшие методики Agile-разработки. У нас с подругой, которая тоже работает в IT, есть свои амбиции, поэтому мы хотим изучать курсы, связанные и не связанные с работой. Человеку в большом городе невозможно найти на это время, потому что ты много работаешь, тратишь время на логистику, ведешь социальную жизнь, а в Москве происходит столько интересного. Мы нашли бесплатные инструменты – канбан-доску и трекер задач. Раз в неделю мы созваниваемся и исходя из больших планов декомпозируем задачи на неделю. Например: спорт три раза за неделю, пройти этот курс, почитать такие-то книги. Мы создаем совсем маленькие задачи и видим их на доске друг у друга. Это мотивирует, когда кто-то что-то сделал, а ты нет. В конце недели у нас снова созвон, поэтому будет стыдно, если запланированное не сделано. Понятно, что какие-то недели бывают провальными. Но такое и в работе случается. Если вы не успели к дедлайну, вы же не бросаете работать, а просто переносите задачи на следующий недельный спринт. Так мы продвигаемся к целям: очередной скрам, очередная ретроспектива.

Когда привносишь этот подход в свою жизнь, он помогает не только изучить то, что хотелось, но и дает ощущение, что я эффективно провела неделю. Ты знаешь, сколько часов уделила изучению чего-либо и сколько материала освоила. Без этого сложно понять: радоваться тому, что изучила много, – или нужно сделать больше, потому что недоработала?

Сабина Хасанова: «QA-инженер развивается и в экспертизе, и в техническом плане – а дальше выбирает вектор. Опытный QA-инженер может стать QA-лидом, проджект-менеджером, преподавателем, консультантом, разработчиком».

Что нужно уметь и знать для работы QA Engineer?

Сабина Хасанова: Есть какие-то общие требования, а есть частные. Я работаю только с web-проектами. Для моей работы важно понимать, как работают Интернет, веб-сайт, http-запросы. Нужно уметь писать элементарные запросы SQL или работать с базой данных; создавать простые запросы из командной строки через Curl; работать с системой контроля версий Git, с Get и Post-запросами; использовать различные плагины и расширения для браузера; знать сервисы для браузерного тестирования, например, BrowserStack – программу, которая эмулирует устройства и браузеры. Понадобятся базовые знания HTML и CSS. Важны грамотный русский и английский, потому что в некоторых компаниях управлять задачами в багтрекинговых системах нужно на английском языке. Для автоматизации процессов нужно изучать языки программирования. Все это инструменты и скиллы для обыденной работы тестировщика, QA-инженера, работающего с web-проектами. Для тестирования десктопных и мобильных приложений есть другие инструменты и технологии, которые необходимо знать.

Если ты не знаешь ничего, то начинаешь с консоли разработчика: разбираешься, где что смотреть, какие чекбоксы отжимать-зажимать, как работать с запросами. Со временем ты начинаешь работать с кучей подручных инструментов для различных целей. Мне потребовалось очень скоро начать работать с базой данных. С элементарным уровнем знаний и навыков тестирования я перешла в компанию, где нужно было что-то редактировать и менять в базе данных, обращаться к ней, делать запросы, создавать json для отправки информации через API-запросы. Для меня это был большой стресс и одновременно колоссальный профессиональный рост. Я так полюбила работать с базой данных, что в шутку говорила, что стану администратором баз данных.

В какой-то момент все тестировщики начинают учить языки программирования. Моим первым языком был С#, я долго пыталась учить его. В текущей компании я начала делать первые автотесты – их я писала на Ruby. После С# это было очень круто, потому что я увидела, насколько Ruby лаконичный язык программирования. Тебе не нужно создавать громадные классы просто для того, чтобы написать свой первый калькулятор. Я была в таком восторге, что за очень короткое время написала первые автотесты на Ruby в связке с Selenium.

Сейчас я пишу автотесты на JavaScript, использую API Puppeteer, который работает с браузером Chromium. Это высокоуровневый API, он позволяет тебе контролировать браузер. Почти все действия, которые пользователи могут сделать в браузере, ты можешь автоматизировать. Мои коллеги называют эти автотесты мультиками, потому что они видят, как все открывается в браузере, регистрируются формы, задействуется весь функционал, а я просто сижу и смотрю эти «мультики». Это очень здорово и нужно.

Мне хочется максимально автоматизировать тестирование, потому что этим интересно заниматься. Мы разрастаемся и делаем все больше интеграций с платформами и CMS, поэтому мой объем работы растет в геометрической прогрессии. Не хочется становиться Bottleneck*. Сейчас моя самая амбициозная задача – создать локальные инструменты для менеджеров, чтобы в каких-то вопросах они могли не зависеть от меня и убеждаться в работоспособности системы самостоятельно. Так я облегчу жизнь им и себе – и при этому буду заниматься тем, чем действительно хочу.

* Bottleneck – «бутылочное горло», «узкое место»; в бизнесе и разработке ПО то, что имеет низкую пропускную способность и снижает производительность.


Какие языки программирования ты знаешь на данный момент?

Сабина Хасанова: Для автоматизации тестирования не обязательно знать их полностью. Я использую их в той мере, в какой мне достаточно. Мне хватает знаний, чтобы использовать Ruby в связке с Selenium, но это не значит, что я могу серьезно заниматься разработкой на Ruby. Сейчас я активно использую JavaScript: тут мне пришлось углубиться, потому что мои автотесты стали сложнее, захотелось писать уже какие-то функции. Сначала ты прибегаешь к разработчикам за помощью, а потом разбираешься сама.

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


Как выглядят «хороший день» и «плохой день» для QA Engineer?

Сабина Хасанова: Самое тяжелое и скучное в работе QA-инженера – это, наверное, кроссбраузерное тестирование. Вот буквально неделю назад со мной случилось кроссбраузерное тестирование. Вначале им интересно заниматься, а сейчас оно может просто «заходить» под настроение, когда хочется монотонной медитативной работы.

Классные дни – когда, есть интересные задачи, где надо включать мозг. Потому что в реальной жизни много ситуаций, которые ты не можешь воспроизвести при тестировании. Это может быть связано с платежами или с клиентским сайтом. Например, интернет-платеж прерывается из-за неполадок в соединении или платежный шлюз дал какой-то ответ. Тебе нужно придумать, как это протестировать. Ты находишь расширения для браузера или сервисы, которые помогают решить твою задачу. Тебе нужно отлавливать на сервере какие-то запросы, использовать Regular Expressions, чтобы подменять ответы или находить нужное. Это своеобразный брейншторминг, и это интересно, я люблю. Похоже на решение математических задач.

Второй вариант хорошего дня: когда есть время и желание, у меня флоу, у меня открыт Sublime Text, и я могу автоматизировать то, что хочу. Иногда я автоматизирую что-то, потому что вижу, что менеджер часто этим пользуется. Ты тратишь время на автоматизацию, но она сэкономит много времени в будущем. Когда я делаю кроссбраузерное тестирование, я пишу функции браузера в консоли и автоматизирую свою работу даже в мелочах. Это творческий процесс. Дни, когда я занимаюсь автоматизацией, – мои самые любимые, но их не так много, потому что объем работы большой, и, опять же, ты не хочешь быть Bottleneck.


Давай расскажем о твоем рабочем дне и обрисуем, какой лайфстайл позволяет вести эта профессия?

Сабина Хасанова: Когда я уезжаю в Юго-Восточную Азию на зимовку, у меня тот же 8-часовой рабочий день, я такой же штатный сотрудник, я не фрилансер. Когда работаешь удаленно, для удобства коммуникации важно, чтобы у вас было пересечение какого-то количества часов с командой в офисе. Я выбираю московский график, это удобно всем. Световой день в Таиланде заканчивается рано, и мне удобно так строить себе день, что утром я занимаюсь своими делами, а потом работаю параллельно с офисом в Москве. Мои дни проходят очень продуктивно.

Я просыпаюсь без будильника – это счастье. Это приятное пробуждение: либо оттого что пора включить кондиционер, либо потому что цикады под окнами поют. Дальше я думаю, чем хочу заняться сегодня. Чаще всего мои заботы – пойти ли сегодня в тренажерку, какой из любимых пляжей выбрать, заехать ли по пути в лондри и в каком кафе позавтракать перед рабочим днем.

С утра можно поехать на водопады, на море, позаниматься сапбордингом или виндсерфингом. В Москве день традиционно устроен так, что вечером после работы уже ничего не хочешь из-за усталости. А здесь я успеваю провести личное время до начала рабочего дня с большим удовольствием. В 2-3 часа по местному времени, это 10-11 по Москве, я начинаю работать и заканчиваю поздним вечером. Мне очень нравится этот образ жизни.

Сейчас я на Пангане, а в прошлом году была на Пангане и на Бали, у меня очень приятные воспоминания. Каждый день как маленькая жизнь, настолько яркие эмоции: на выходных ты можешь спуститься в кратер вулкана и увидеть Млечный путь, а в понедельник работаешь уже с другого острова. С утра, до работы, ты едешь на изумительный пляж или катаешься на качелях над рисовыми полями. Ты успеваешь жить, и все это дает какие-то инсайты. Время идет, ты работаешь всегда, поэтому важно, можешь ли ты получать эмоции. Все больше компаний приходят к идее распределенных команд. И в IT это, конечно же, делается легче всего.
Какую пользу QA-инженер приносит технологической компании?

Сабина Хасанова: Тестировщики, QA-инженеры есть не во всех компаниях, например из-за экономии. Когда нет QA, не до конца понятно, на ком лежит ответственность за качество. На мой взгляд, Quality Assurance инженер нужен так же, как разработчики или менеджеры, которые контролируют процессы. Есть твоя личная ответственность за твою работу. Если где-то что-то пошло не так, то это нервные полчаса в моей работе, когда я пытаюсь локализовать поломку. Если что-то случилось, это означает, что это упустила я, а не программист. В такой ситуации не нужно расстраиваться и паниковать, все люди ошибаются. Нужно быстро локализовать проблему, откатить релиз либо отправить патч. Главное – ощущать ответственность.


Люди с гуманитарными профессиями, которые хотели бы перейти в IT, интересуются порядком доходов в профессии QA-инженера.

Сабина Хасанова: Когда меняешь сферу, сначала это всегда снижение. Дальше доход зависит от уровня знаний и умения договариваться. В целом QA-инженеры зарабатывают достойные деньги. Если хочется работать QA-инженером удаленно и постоянно жить в Юго-Восточной Азии, то, возможно, стоит искать валютные контракты с удаленкой, чтобы не терять из-за курса валют. Я живу на Пангане, это недешевый остров, он дороже Бали и дорожает с каждым годом.


QA-инженер может быстро найти работу в иностранной компании?

Сабина Хасанова: Я пока не искала работу за границей. IT-рынок достаточно хорошо развит в России, и, возможно, в чем-то мы гораздо интереснее и веселее. Я знаю успешные примеры друзей, которые находили работу как автоматизаторы тестирования и переезжали. Найти работу QA легко. Эта профессия не локализована.


Как выглядит вертикаль и горизонталь развития QA-инженера? Какие у тебя цели?

Сабина Хасанова: QA-инженер развивается и в экспертизе, и в техническом плане – а дальше выбирает вектор. Опытный QA-инженер может стать QA-лидом и проджект-менеджером, потому что прекрасно понимает все процессы разработки и тайминги. Также он может консультировать и преподавать.

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

Если говорить о целях, то мне интересно взять какую-то компанию и поднять там тестирование на API Puppeteer, это настолько классная технология. IT-рынок не стоит на месте, появляются новые технологии, и нужно изучать их. В общем, мне хочется развиваться в техническом направлении.

Есть много примеров, когда тестировщики становились разработчиками. Я пересекалась с таким разработчиком. Он предусматривает все кейсы, после него редко находятся ошибки и поломки системы. QA-инженер – это очень хороший бэкграунд.

В работе QA-инженера могут быть рутинные моменты и моменты усталости, но есть и возможность проявлять творческий подход к задачам. Я люблю свою работу. Я вижу, что в IT-компаниях есть уважение к людям и понимание, что люди ценны. Я бы уже не смогла работать в другой атмосфере. almamat blog
Информация о программе Almamat #Women_In_Tech
Фото предоставлены: Сабина Хасанова