Я Алексей Лапаев, руководитель команды обеспечения качества мобильного приложения Тинькофф и организатор гильдии интервьюеров веб-стрима найма QA. Расскажу, как проходит отбор на вакансии QA-инженеров, что спрашивают на первичном интервью и какие секции и задачи ждут в технических блоках. 

Договоримся, что термины «тестировщик», «QA» и «инженер» равнозначны и используются с целью разнообразить слог. Профессионально мы строим команды фулстек-QA-инженеров, но идеологию затронем лишь вкратце. Материал будет полезен тем, кто интересуется процессами в крупных компаниях, видит свое будущее в качестве QA-инженера или хочет работать именно в Тинькофф. Если это про вас — добро пожаловать под кат!

Этапы отбора

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

Web — все, что связано с тестированием сайтов, их бэкендов, админок и веб-экосистемы. QA в этом стриме обеспечивают качественную работу фронтов личных кабинетов клиентов, публичных порталов вроде tinkoff.ru и большого многообразия пользовательских интерфейсов, видимых только внутри.

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

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

В Тинькофф для инженеров QA четыре этапа отбора: предварительное собеседование, профильное собеседование, техническое интервью и знакомство с командой. Вот как они выглядят в таблице:

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

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

Обязательно будет вопрос «Кем вы видите себя через n лет?» Раньше спрашивали про пять лет, но пять — это очень долго, поэтому спрашиваем про два года. Нам важно, как человек мыслит и куда он хочет профессионально вырасти, потому что мы рассчитываем на долгосрочное сотрудничество. 

Есть люди, которые через QA пытаются зайти в ИТ и стать разработчиком, иногда хотят примерить другую специальность. Часто мелькает, что тестирование — это легкий старт в ИТ-карьере. Здесь мы расходимся во взглядах и не приветствуем это.

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

Если определиться с лидирующим направлением сложно, мы направляем на интервью по двум стримам и выбираем наиболее результативное — где получилось ответить на большее количество вопросов и где выше уровень владения навыками. 

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

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

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

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

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

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

Третий этап — технический. Он делится на две секции: теория и практика QA и программирование по 45 минут каждая. 

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

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

Второй блок — программирование. Этот блок наиболее пугающий, потому что мы просим кандидатов владеть каким-то языком программирования. 

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

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

Суть этой секции — понять насколько человек не боится языка программирования, насколько он с технической точки зрения готов к тому, с чем предстоит работать, и тут цель стратегическая. 

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

Для автоматизации нужен язык программирования — для этого мы и проверяем его на входе. Если человек владеет языком на базовом уровне — он нам подходит, если не боится писать код — он нам подходит, если он потратил все 45 минут, чтобы решить пару задач — он нам подходит. Мы готовы вкладываться в обучение и развитие таких людей и показывать, как у нас все работает внутри, давать материалы для развития.

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

Финальных знакомств может быть несколько, если несколько команд будут искать именно такого специалиста.

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

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

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

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

После оффер-встречи оставляем тестировщику время подумать и принять окончательное решение. 

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

Что оценивают на профильном и техническом собеседованиях

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

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

  1. В чем отличие тестирования мобильного приложения от десктопного, от web?

  2. Различия версий HTTP? Различия методов HTTP-запросов?

  3. Что такое микросервис? Что такое брокеры сообщений?

Задаем классические вопросы по SQL о JOIN и предложить задачи на составление простых запросов. Можем задать и углубленные вопросы по оптимизации запросов для специалистов, претендующих на высокие позиции QA систем, обрабатывающих данные. 

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

  1. Методологии разработки ПО, их преимущества и недостатки.

  2. Практики shift left и shift right тестирования.

  3. Задачи, например «Вы обнаружили дефект в своем функционале. Ваши действия?».  

Это не исчерпывающий список, но многие вопросы неоднократно обсуждаются в профильных форумах, сообществах и рекомендуемых книгах.

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

  1. Определите, сколько рублей и копеек нужно заплатить за N пирожков, если пирожок в столовой стоит А рублей и В копеек. На вход 3 числа: рубли, копейки и количество пирожков. На выходе 2 числа: рубли и копейки.

  2. Найти все полки в библиотеке, на которых стоят книги Ремарка.

using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var shelfs = new Dictionary<string, Array>{
{"полка 1", new string[]{"1984", "три товарища"}},
{"полка 2", new string[]{"убить пересмешника",
"герой нашего времени"}},
{"полка 3", new string[]{"10 негритят", "на западном
фронте без перемен"}}
};
var books = new Dictionary<string,string>{
{"1984","оруэлл"},
{"три товарища", "ремарк"} ,
{"убить пересмешника", "ли"},
{"герой нашего времени", "лермонтов"},
{"10 негритят", "кристи"},
{"на западном фронте без перемен", "ремарк"}
};
}
}
  1. Что будет записано в переменную a?


s = 'iamstring'
  
a = s[3:5:1]

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

Карточка специалиста в начале отбора
Карточка специалиста в начале отбора
Так выглядит карточка, когда специалист уже ответил на вопросы
Так выглядит карточка, когда специалист уже ответил на вопросы
Во время технического интервью кандидаты отвечают на вопросы и набирают баллы, а интервьюеры пишут свое заключение и передают его рекрутерам
Во время технического интервью кандидаты отвечают на вопросы и набирают баллы, а интервьюеры пишут свое заключение и передают его рекрутерам

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

Тайминг: сколько времени занимают этапы

Первичный телефонный разговор длится 30—40 минут, после этого рекрутер отправляет ответы техническим специалистам. Рекрутер возвращается через несколько дней, чтобы пригласить на профильное собеседование. Дата и время зависят от пожеланий кандидата. 

Профильное собеседование длится до 90 минут, после него интервьюер сразу направляет обратную связь рекрутеру. Если все складывается хорошо, зовем на следующий этап — техническое интервью. Здесь дата и время также зависят от пожеланий тестировщика, а интервью длится 1,5 часа — по 45 минут на каждую секцию.

Фидбэк по техническому интервью мы получаем в тот же день. Дальше приглашаем на финальное интервью, чтобы познакомить с командами и решить, в какой проект пойдет QA-инженер. Обычно это занимает один день, но иногда может занять несколько. После этого начинаем согласовывать оффер и встречаемся на оффер-встрече, чтобы озвучить цифры, поговорить о задачах. После даем время на принятие окончательного решения и готовимся к выходу нового специалиста.

В среднем от первичной проверки до оффера проходит 27 календарных дней
В среднем от первичной проверки до оффера проходит 27 календарных дней

Про QA в Тинькофф рассказали на нашей странице экспертизы — присылайте резюме, если нам удалось заинтересовать. А 17 сентября проведем One Day Offer для QA-инженеров (backend) с опытом от 2 лет — зарегистрироваться можно до 15 сентября. Если остались вопросы — разберем их в комментариях. 

Комментарии (9)


  1. b1tterman
    08.09.2022 01:48
    +1

    Подробно расписали, спасибо.

    Ждите на собеседование через 1-2 месяца ????

    С рекрутером 40 минут пообщались, занимаюсь тестированием бэкенда 1.5 года , из них почти год автотестами на фреймворке компании (синтаксис xml, местами скрипты груви)


  1. b1tterman
    08.09.2022 09:01

    Тиньков сейчас относится к аккредитованным ИТ компаниям? интересует льготная ипотека


  1. b1tterman
    08.09.2022 10:14

    Вот это еще интересно как прокомментируете?

    https://pikabu.ru/story/tinkoff__tayna_i_lozh_9437736


    1. angry_paimon
      09.09.2022 00:37

      Я думаю, что тестовое задание должно заключаться в том, чтобы ответить клиенту, у которого весь перевод списало в счёт комиссии)


  1. Pisdos
    09.09.2022 00:40

    Эти все этапы созданы для показательной собственной значимости?

    И рядом с этим всем фраза про "люди, которые через QA пытаются зайти в ИТ и ...."

    Технический скрининг синьора занимает около часа. Если хочется позагадывать задачек - полтора.

    Суммарно, мои интервью в гугл, со всеми HR скринингами, техническим интервью и cultural собесами до и после оффера заняли менее 2 часов.


  1. AstraSpace
    09.09.2022 00:40
    +1

    В вашей компании не платят ЗП представителям банка, а с тестировщиками также обходятся? Или мир QA в банке это отдельная Вселенная с адекватным отношением?


  1. Mike-M
    09.09.2022 01:53

    Мы хотим наших тестировщиков видеть fullstack-QA-инженерами.
    Это антикризисная мера (экономия на ФОТ), или принципиальная позиция?
    Если последнее, то как (почему) вы к ней пришли?


  1. Gradiens
    09.09.2022 18:33

    Стивен Хокинг как-то сказал, что "каждая включенная в книгу формула вдвое уменьшит число покупателей"

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

    И, что самое обидное, наиболее толковые соскакивают чаще.

    А вы анализировали воронку найма?

    Просто интересно, каков процент кандидатов "отваливается" на каждом этапе потому что вам не подошел, а какой - по своим причинам?

    Финальных знакомств может быть несколько, если несколько команд будут искать именно такого специалиста.

    Каждая встреча длится около 30 минут. 

    Интересный подход. Я понимаю, QA должны быть терпеливы... но зачем проверять это таким способом?


  1. StupidMouse
    10.09.2022 00:33

    Обязательно будет вопрос «Кем вы видите себя через n лет?» Раньше спрашивали про пять лет, но пять — это очень долго, поэтому спрашиваем про два года. Нам важно, как человек мыслит и куда он хочет профессионально вырасти, потому что мы рассчитываем на долгосрочное сотрудничество.

    а человеку важно как вы мыслите:

    5 -> 2 = долгосрочное сотрудничество.

    а почему же не спросить кем он видит себя лет через 15? вероятно миноритарным акционером? или ишак сдохнет