(Junior) Automation QA вопросы на собеседовании

http://telegra.ph/Junior-Automation-QA-voprosy-na-sobesedovanii-11-21

Последние полтора месяца я проходила хитрый квест под названием «Найди работу автоматизатора тестирования». В идеале хотелось писать на Питоне и писать что-нибудь интересное. После публикации резюме на hh и linkedin мне прислали штук 80 вакансий (от джуниора-мануальщика без опыта до лида группы автоматизаторов) + ещё десяток-полтора я нашла сама. Потом было около 20 собеседований в 16 компаний (от 1 до 4 на фирму) по скайпу, телефону и лично. В результате одну фирму, предложившую наиболее вкусные для меня вещи, я выбрала.

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

По структуре:

В среднем предполагается 3 разговора: с hr, техническое интервью и финальное интервью. Иногда где-нибудь между элементами впихивается тестовое задание. Многие вопросы дублируются на всех этапах, потому что редко где настроено нормальное внутреннее общение 🙂

Личный опыт:

  • Что, когда, где и как тестировали. Что руками, что автотестами. Полезно классифицировать свой опыт в духе «это было функциональное тестирование с элементами серого ящика».
  • Как был организован процесс (например, если это скрам, то как именно он был реализован). Из кого состояла команда, кто за что отвечал, с кем вы взаимодействовали.
  • Описать все технологии, которые использовали. Языки, базы, СI, если было. Быть готовым схематично нарисовать проект на листе бумаге.
  • «Почему ушли с прошлого места работы» — вопрос задают просто все и всегда. Нужно иметь наготове дипломатичный ответ, в котором вы не покажете себя злопамятным нервным идиотом 🙂 (E.g. Плохой ответ: «Да там все козлы, и мне приходилось заниматься скучным бредом!». Хороший ответ: «Закрылся проект, и я хотел(а) развиваться вот в эту сторону, а таких возможностей в фирме не было»)
  • Чего хотите от работы в будущем? Опыта, денег, знаний? Как будете выбирать из трёх одинаковых предложений?

Теория тестирования:

  • Виды тестирования (черный-белый ящики, функциональное, регресс, смоук, нагрузочное, статическое-динамическое… вот это всё).
  • Тестовая документация. Из чего состоит баг репорт? Как создать тесткейс по требованиям? Чем отличается keyword-driven от data-driven?
  • Как пишется тестовый план и зачем?
  • Какие знаете метрики тестирования и когда они используются?
  • Что такое риски, как и зачем их вычисляют?
  • Конфликты: Что вы будете делать, если разработчик написал не то, что в требованиях и отказывается исправлять? Что делать, если требования неполные? Что делать, если времени мало и протестировать всё не получится? Если вы пришли в проект, ничего не знаете, а документации нет, как вы будете его изучать?
  • Предлагают что-нибудь протестировать. Например, лифт. Или строку ввода текста. Или что-нибудь похитрее, например, там две строки, в одну вводите дату рождения, в другую — адрес, а на выходе — доступные мобильные операторы. В этот момент нужно помнить, что можно задавать вопросы о требованиях (А лифт должен останавливаться на промежуточном этаже, если его оттуда вызвали?), не ограничиваться ручными-функциональными тестами и единственной платформой.
  • Любят спрашивать про нагрузочное тестирование и безопасность, даже у людей, у которых нет в этом опыта.
  • Если есть опыт с какими-то фреймворками тестирования, то про них будут спрашивать детально.
  • Если есть опыт руководства группой, то кем, когда и сколько времени? А что вы делали, если люди плохо работали? Как решали внутренние разборки?

Про тестирование веба:

  • Что такое Selenium, какие его основные методы? Какие виды assert`ов бывают? Implicit/explicit wait.
  • Какие бывают селекторы? Кто лучше x-path или css и почему? Иногда предлагают прямо на бумажке или в браузере написать селектор для какого-нибудь элемента
  • Что такое REST, какие у него есть виды запросов? Как строится запрос и что приходит в ответ?
  • Что такое SOAP, какой у него запрос? Что такое wsdl, как строится его файл? И какой ответ приходит.
  • Что быстрее — REST или SOAP? А что безопаснее?
  • Если есть опыт c Postman или SoapUI, то описать, что там, где и как настраивается.
  • Если умеете настраивать тестирование в CI, то будьте готовы рассказать, как это делается.
  • Зачем нужно кроссбраузерное тестирование?

Про тестирования десктопов и мобильных:

У меня такого опыта мало, поэтому меня особенно не спрашивали.

  • Хорошо бы знать, какие есть особенности и того, и другого. Где искать логи, как локализовать ошибку, вот всё это.

Основы языка программирования:

Я уже писала выше, что собеседовалась на Питон. Но при этом половина собеседующих пыталась задавать мне вопросы по Джаве. Считается, что это такой must-have язык, поэтому хотя бы читать простой код на нём всё равно нужно уметь.

  • Типы данных. Чем отличается list от tuple?
  • Что такое декоратор и где используется?
  • Что такое потоки и зачем они нужны?
  • Как записать данные в файл? А в базу данных?
  • Как получить переменные окружения?
  • Какими стандартными библиотеками вы пользовались и зачем?

Задания по программированию:

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

  • Прочитать код и найти ошибку (обычно логическую, например одну и ту же переменную в цикле вычисляют).
  • Написать метод, который будет бесконечно печатать числа от 10 до 1.
  • Написать метод, который вернёт строку в обратном порядке.
  • Написать мап (метод принимает метод и список аргументов и прогоняет все аргументы через метод).
  • Написать класс для связанного списка (у объекта есть значение и ссылка на следующий объект). Потом сделать метод, чтобы он инвертировал список.
  • Написать методы для калькулятора (сложение, вычитание, вот это всё), а потом покрыть их юнит-тестами.

Базы данных:

Всех интересует только SQL, и ничего кроме него.

  • Что такое join, какие они бывают и зачем?
  • Что делает group by? Как отсортировать результат по возрастанию? Как получить результаты которые содержат строку поиска, но не обязательно равны ей?
  • Часто предлагают сходу на листе бумаги написать селект. Обычно есть 2-3 таблицы, и нужно джойнами объединить их и получить какую-нибудь строку.

OCи:

  • Если нужен Windows, обычно спрашивают, как понять, почему что-нибудь упало.
  • Если Linux, то спрашивают про логи, и где они лежат.
  • Ещё в Linux хорошо знать командную строку (как искать в тексте файла? Как найти файл? Как открыть файл на сервере? Как подключиться по ssh? Как получить список процессов?)
  • Ещё полезно знать, как его устанавливать, и что там происходит. Например, как и зачем существует файл подкачки.

Другое:

  • Полезен опыт с виртуальными машинами. Если его нет, то хотя бы знать, как они используются в тестировании. И тот факт, что иногда приложение на виртуальной машине падает с багом, а на реальной — не падает. Вот такая засада.
  • Полезны сети и протоколы. Я в них не рублю и прямо об этом говорила. Но в теории хорошо бы знать TCP/IP.
  • Иногда спрашивают какую-нибудь математику (скажем, перевести 16-ричное число в 2-ичное).
  • Интересуются опытом скриптов на bash, но писать их ни разу не просили.
  • В требованиях часто пишут git, но тоже почему-то ни разу не спрашивали.
  • Все хотят английский на уровне «не ниже intermediate». На деле собеседование на английском у меня было всего одно (и то за границу). Обычно по-английски задают один вопрос в духе «опишите свой прошлый проект» или «какие у вас хобби?», и снова возвращаются к русскому.

Тестовые задания:

Дают очень редко. У меня их было всего три, и все очень разные:

  • Написать смоук-тесты для молотка.
  • Протестировать один плагин к Идее.
  • Написать скрипт, который будет хитро искать определённую строчку в файле.

В целом обычно все стараются решить всё на собеседовании, когда нет возможности читерить.

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *