Привет Хабр!
В этой статье хочу поделиться своим опытом прохождения собеседований на 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 серверу и как оттуда скопировать файл на локальную машину