Pull to refresh

Мой опыт прохождения собеседования на позицию QA — инженера в Тинькофф

Level of difficultyEasy
Reading time3 min
Views43K

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

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

Первый этап - это стандартная беседа с рекрутером, включающая в себя вопросы об опыте работы, проектах, планах, желаемой локации, рассказом о компании и т.д. Из нестандартного - несколько легких технических вопросов, не требующих развернутого ответа. На этом этапе я озвучила, что пишу автотесты на JavaScript, но хотела бы заниматься тестированием бэкенда. HR уверила меня, что язык программирования не важен, и несмотря на то, что в выбранном мной направлении используется Java, я легко могу переучиться на внутренних курсах Тинькофф. Это была недостоверная информация, о чем я узнала уже перед последним этапом - знакомство с командой.

Вторым этапом была профильная секция по выбранному мной направлению - бэкенд. Собеседование началось с вопросов о различиях между реляционной и нереляционной базой данных, DELETE и TRUNCATE, определения первичного и внешнего ключа. Далее нужно было написать несколько SQL - запросов в online-IDE. Первые три были элементарные (добавление, обновление, удаление записи), и один запрос посложнее - с использованием JOIN, группировки и вложенного запроса.

Были вопросы по логированию (инструменты, уровни логов), видам авторизации, сессиям, видам API (REST/RESTful, SOAP, их различия), по кэшированию и инвалидации кэша, а также по CI/CD (непрерывные интеграция, доставка и развертывание, источник запуска пайплайна, артефакты).

Значительная часть вопросов была по HTTP - запросам/ответам (структура, версии, методы, заголовки, статус-коды). Например, про принцип работы HTTPs, идемпотентность методов, как сервер может узнать, что в запросе передан JSON и т.д.

Завершали эту секцию вопросы о различиях между монолитной и микросервисной архитектурой, брокерах сообщений, особенностях Apache Kafka.

Первый блок третьего этапа - это теория тестирования. Здесь мне была представлена форма платежки с указанием номера договора, кнопками "Оплатить" и "Отменить", полем с суммой платежа и выпадающим списком, где можно выбрать привязанную карту. Необходимо было перечислить все возможные проверки для этой формы, применимые техники тест-дизайна, объекты для мокирования, какие модульные, интеграционные и end-to-end тесты можно написать для этой формы. Были вопросы про технический долг в тестировании, scrum, практики shift left и shift right тестирования.

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

Задачи:

1.Написать функцию, принимающую два аргумента - слово и букву. Функция должна посчитать, сколько раз эта буква встречается в данном слове, и вернуть полученное число вхождений. И то же самое без учета регистра.

2.Написать функцию, которая будет возвращать true, если поданный на ввод массив int содержит 3 и более последовательных числа в любом месте.

После прохождения трёх этапов я уже практически расслабилась, так как самое сложное, как я думала, было позади. Но не тут-то было. Оказалось, что для работы в бэкенд - командах необходимо знание именно Java, и мой опыт в JavaScript не подходит. А возможность переобучиться на курсах предоставляется единицам и является большой редкостью.

Поэтому по совету HR я решила пройти ещё одну профильную секцию - тестирование веб - приложений. Здесь многие вопросы дублировали секцию по бэкенду (API, HTTP, SQL, но без написания запросов, CI/CD). Необходимо было рассказать про PWA, протоколы, архитектуру браузера. Задавались вопросы вида: "Что происходит после отправки запроса через адресную строку? Что будете делать, если видите белый экран? Как узнать, на чьей стороне ошибка: клиента или сервера?" Необходимо было подробно рассказать про вкладки Chrome Devtools, где не забыть про переопределение геолокации. Из практических задач - написать XPath для поиска элемента по полному и частичному совпадению текста. Завершали эту секцию вопросы про транзакции, deadlock, Docker, Kubernetes и их компоненты, SPA и SSR, инструменты мониторинга, основные метрики приложения.

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

Tags:
Hubs:
Total votes 35: ↑31 and ↓4+27
Comments110

Articles