QA-интервью: как решить любую задачу

Допустим, вы хотите стать высокооплачиваемым SDET (Software Development Engineer in Test). С чего начать? Начните с решения 100-150 задач по алгоритмам и структурам данных на Leetcode. Создавайте брутфорс-решение, а затем оптимизируйте его. Это что касается учебы и подготовки к собеседованию.

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

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

1. Разберитесь в условии задачи

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

Если вы не до конца поняли, что от вас требуется, не стесняйтесь переспросить и уточнить.

Вот несколько вопросов, которые можно задать как себе самому (для самопроверки), так и интервьюеру:

  • Какими могут быть входящие данные?
  • Данные какого типа нужно получить на выходе?
  • Есть ли какие-то ограничения при решении этой задачи?
  • Насколько большим должен быть тестовый набор данных?

Дополнительный совет. Вопросы нужно задавать правильно. Формулируйте их в стиле «а если…» и сразу оговаривайте граничные случаи. Это поможет лучше спроектировать тесты.

2. Подготовьте тестовые данные

Пора показать ваши навыки тестировщика. Большинство интервьюеров попросят вас создать как минимум три тестовых набора данных (для позитивных и негативных тестов и граничных случаев). Эти тестовые данные могут использоваться для юнит-тестов и для разработки на основе тестирования (TDD).

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

3. Притормозите на минутку и обдумайте возможные варианты решения

Если вы решили достаточно задач на Leetcode, скорее всего вам уже встречалась похожая задача. Но не надо это показывать интервьюерам, иначе получите другой вопрос. Лучше выделите себе несколько минут на обдумывание решения с учетом ваших данных и ограничений.

Дополнительный совет. Важно постоянно коммуницировать с интервьюером. Особенно это касается онлайн-собеседований. Коммуницировать нужно даже при обдумывании решения!

4. Попросите подсказку

Что, если вам так и не удалось придумать решение? Наберитесь наглости и попросите интервьюера помочь вам или подсказать что-нибудь. Чаще всего это срабатывает, поскольку многие интервьюеры искренне желают вам успеха.

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

5. Всегда начинайте с брутфорс-решения

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

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

6. Сперва напишите псевдокод

Лайв-кодинг сессии на собеседованиях длятся примерно 45-60 минут. Обычно вы получаете 1-2 задачи, к которым могут прилагаться дополнительные вопросы по автоматизации во фронтенде и бэкенде, agile и т. п. В среднем на каждое задание отводится 15-20 минут.

Работая над сложной задачей, будет хорошей идеей сперва написать псевдокод решения. Это поможет вам не потеряться и сложить в голове четкий план.

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

7. Пишите чистый код

Когда пишете код решения, придерживайтесь рекомендаций по написанию чистого кода.

Имена переменных и функций должны соответствовать общепринятым соглашениям о нейминге. Оставляйте короткие и осмысленные комментарии. Используйте подходящие встроенные методы.

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

Дополнительный совет. Практикуйтесь писать код в простом текстовом редакторе. Многие интервьюеры используют для собеседований платформы для шеринга кода, а там не всегда есть функции автодополнения.

8. Сделайте дебаг своего кода с тестовыми данными

Как тестировщик вы можете тяготеть к запуску тестов, а не к отладке. Но это может быть большой ошибкой. 

Лучше начать с дебага каждой строчки кода, а затем показать код интервьюеру. Не забывайте проговаривать вслух сложность каждого своего решения (О-нотация).

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

9. Запустите код со всеми тестовыми данными

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

Дополнительный совет. Когда пишете юнит-тесты, внимательно следите за проверками, которые сравнивают ожидаемые и фактические результаты.Это сэкономит время на отладку.

10. Попросите фидбэк

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

Удачи на собеседовании!

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

4 КОММЕНТАРИИ

Подписаться
Уведомить о
guest

4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Eugene T.
Eugene T.
2 лет назад

Из своего опыта: если пытаетесь решить задачу и сходу не получается — не молчите и проговаривайте вслух ваши мысли. Говорите вообще все о чём думаете. Большинство интервьюеров помогут вам развить мысли.

QAGURU
QAGURU
2 лет назад
Ответить на  Eugene T.

Если все мысли озвучивать, можно до конца собеса не досидеть))

Kirill
Kirill
2 лет назад

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

Kirill
Kirill
2 лет назад
Ответить на  Kirill

Притом такая проблема не только у меня, но и у моих знакомых многих.

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас