Привет!
В этой статье хочу поделиться своим опытом прохождения собеседований на Fullstack QA (Python + Pytest, но думаю, для других языков статья тоже будет полезна).
Предисловие
Последние 3 года я не интересовалась рынком труда, на собеседования соответственно тоже не ходила, по этому, когда я начала их проходить, меня ждало много открытий и удивлений.
По этому я решила поделиться своим опытом собеседований в 2024 году. Здесь будет много субъективного мнения, а так же немного реальных вопросов и задач, которые вы можете использовать для подготовки к своему собеседованию.

Как проходят собеседования
В течение 2-3х месяцев я проходила собеседования в около 12 разных компаний, и для себя разделила их, условно, на 2 группы:
-
Компани с четкой структурой собеседований, это обычно крупные корпорации.
Как правило, процесс найма проходит в несколько этапов, и ты заранее не знаешь в какую именно команду/отдел проходишь собеседование.
Сначала могут быть какие‑то тесты, потом интервью чисто по теории, затем по программированию (лайфкодинг), а могут быть и несколько этапов теории и несколько по программированию.
На таких собеседованиях, скорее, ждут ответы как в учебнике и примеры из «идеального» мира, примеры исключительно из личного опыта тут не прокатят. -
Компании с более человечным подходом. Тут, тебе скорей всего сразу скажут в какую команду ты проходишь интервью. Скорей всего, будет одно техническое собеседование, на котором будут вопросы и по теории и по программированию (возможны задачки на лайфкодинг), но скорее это будет похоже на диалог, а не на экзамен.
Общие советы
Перед тем, как перейдем к вопросам, хочется дать пару советов к тому, как подготовиться к собеседованиям.
-
К собеседованиям действительно нужно готовится. Кажется очевидным, но на самом деле, можно попасть в ловушку самонадеянности, так как только на первом собеседовании я поняла как много элементарных вещей забыла, просто по тому, что в жизни, обычно решаешь более сложные задачи, а базовые знания пропадают где‑то в глубинах памяти и потом, оказывается, что достать из головы их не так и просто)
-
Сначала пройти собеседования в компании, которые вам не очень интересны. Лучше опозориться там‑где вы и не собираетесь работать, провести работу над ошибками, а потом пробовать идти, туда, куда хочется.
-
Не ведитесь на рассказы, что сейчас нехватка кадров. Точней, нехватка, возможно и есть, но требования совсем не снизились, поэтому расслабляться не стоит (см. п.1)
-
Не верьте рекрутерам. Закладывайте на собеседования на пол часа больше времени и будьте готовы, что на этапе который вам обещали, как «просто знакомство без вопросов» будет технический этап и наоборот. И сюда‑же — не ходите на собеседования из жалости к рекрутеру — они могут долго упрашивать вас отозваться на их реквест, а потом, сами же про вас забудут после собеса, и уже вы будете за ними гоняться чтоб дали обратную связь.
-
Не расстраивайтесь, если не прошли. Это жизнь, бывает всякое, возможно вы действительно плохо подготовились, возможно нашли кандидата с более релевантным опытом, мало ли, что могло еще произойти. Все мы люди, у всех нас субъективная оценка и если кто‑то вас не смог оценить, то всегда найдется тот, кому вы подойдете. Пробуйте и все получится!
Что спрашивают
И вот, наконец, что конкретно спрашивают. Вопросы брались из памяти, по этому, в некоторых пунктах сохранилась формулировка авторов, а в некоторых только суть вопроса.
-
Вопросы по Теории:
-
Пирамида тестирования. В том числе как она может меняться, почему, и хорошо это или плохо
-
Техники тест-дизайна. Часто просят вспомнить какие техники ты используешь на практике, привести примеры. Либо просят на конкретном примере рассказать какие техники применишь для какого кейса (ниже приведу пример)
-
Признаки (характеристики) качественного продукта
-
Как измерить качество / метрики качества
-
Каким критериям должно соответствовать приложение на тесте / условия "тестируемости"
-
Agile общий
-
Agile тестирование
-
Функциональное и не функциональное тестирование какие подвиды в каждом
-
Penetration тестирование
-
Автоматизация: какие виды тестов и кто реализует, на каком этапе тестирования используются, как запустить процесс автоматизации, какие сценарии можно не автоматизировать
-
-
Кейсы тестирования:
-
Есть форма с полями. Придумать тест-кейсы с обозначением какую технику тест дизайна используешь в каждом из кейсов. Пример полей:
-
Имя (с ограничением по количеству символов)
-
Специальность врача (дропдаун)
-
Имя врача (дропдаун зависит от специальности)
-
дата (виджет)
-
время (виджет)
-
кнопка отправить
-
-
Есть какой-то http запрос рассказать из чего состоит и придумать тест-кейсы
-
Вы пришли на проект в котором 500+ ручных тесткейсов - что будете делать, какой план
-
Что делать если нет требований к задаче
-
Какие нефункциональные тесты можно применить к какому-то веб запросу
-
-
Общие технические вопросы:
-
GIT - чем отличается git pull от git fetch и другие команды гита
-
tcp / upd чем отличаются протоколы
-
из чего состоит http запрос
-
в чем отличие http от https и в каких случаях можно использовать http и почему
-
что такое двух- и трех- уровневая архитектура, толстый и тонкий клиент.
-
сохранили какую-то формочку - что происходит с запросом дальше
-
приходит в девтулзах json как он отрисовывается на фронте
-
приходит html в запросе с уже сформированной инфой - где он обработался и сформировался
-
nginx что и для чего
-
как приложение понимает к какому серверу запрос если там передается красивый хост а не ip сервера
-
идемпотентность http-методов
-
-
Python + Pytest:
-
декораторы
-
фикстуры
-
контекст менеджеры
-
магические функции (для чего нужен init в классе, enter и exit в менеджерах контекста)
-
хуки
-
отличие == от is
-
что вернет print(True + 4)
-
итерируемые объекты
-
a=3 - какой тип данных?
-
изменяемые и не изменяемые типы данных
-
написать класс (с какими-то методами), а потом еще один который от него наследуется
-
есть 2 слова. Написать функцию которая будет принимать эти 2 слова и проверять можно ли составить второе слово из первого
-
написать проверки валидации пароля
-
написать функцию для определения счастливого билета
-
часто дают задачи с уже написанным кодом который содержит ошибку которую вам нужно исправить. Конкретные примеры я привести не могу, но как правило это задачи на знания особенностей разных типов данных, циклов, классов
-
написать функцию которая принимает на вход слово, длину и высоту и выводит слово всегда в центре, согласно референсу:
############## # # # test # # # ##############
-
-
SQL:
-
написать простой селект с использованием LIKE
-
селект с джойном
-
селект с агрегатной функцией
-
как сделать селект из 2-х таблиц без джойна
-
как очистить данные таблицы
-
как удалить/создать таблицу
-
как удалить/создать бд
-
что такое транзакции
-
что такое первичный ключ
-
может ли быть составной первичный ключ
-
что такое внешний ключ
-
View в БД и их отличия от таблиц
-
Оператор UNION и ограничения на его использование
-
-
Linux терминал:
-
как найти строку в документе
-
с помощью какой утилиты можно подключиться к удаленному Linux серверу и как оттуда скопировать файл на локальную машину
-
Автор: Alpis