Перед собеседованием кандидаты обычно изучают информацию о компании, приводят в порядок резюме и портфолио. Это очень важно, но также нужно подготовиться к вопросам руководителя и HR. Их задают, чтобы проверить знания кандидата, в том числе технические.
В статье собрали самые частые вопросы, которые задают тестировщикам на собеседовании, и ответы на них. А еще добавили примеры задач, которые могут предложить решить.
Вопросы новичкам для проверки hard skills
Руководитель или тимлид могут проверить, насколько хорошо кандидат знаком с основами тестирования.
Что такое тестирование ПО и для чего нужно его проводить?
Тестирование — это исследование программного обеспечения и его документации. Помогает достичь нескольких целей:
- понять, насколько точно проект соответствует требованиям целевой аудитории или заказчика;
- обнаружить различные дефекты, чтобы устранить их до релиза проекта;
- убедиться, что ПО безопасно для использования и может противостоять атакам.
В какой момент тестировщик должен начинать работу?
Как можно раньше: так удастся обнаружить и исправить ошибки на ранних этапах разработки. Благодаря этому в будущем не придется вносить глобальные изменения и тратить время на правки.
Перечислите основные этапы тестирования ПО
Обычно тестирование проходит в семь этапов:
- Работа с требованиями. Тестировщик обсуждает с менеджером или заказчиком основные требования к проекту. Определяет возможные проблемы, выявляет противоречия.
- Создание стратегии тестирования. Специалист составляет план анализа ПО. В нем перечисляет инструменты и типы тестирования, которые нужно использовать, определяет сроки и основные этапы работы.
- Написание тестовой документации. На основе стратегии и плана тестировщик составляет документацию: тест-план, тест-кейс и чек-лист. На этом этапе нужно подробно расписать, что и как предстоит анализировать.
- Тестирование прототипа. Когда первая версия программы готова, ее лучше сразу протестировать. Так получится обнаружить глобальные дефекты в самом начале работы.
- Основное тестирование. Центральный этап работы. Тестировщик анализирует ПО по сценариям, которые составил ранее, и обнаруживает ошибки. Все недочеты описывает в отчетах.
- Стабилизация. Программисты исправляют ошибки, которые нашел тестировщик. Затем проводится повторное тестирование (его также называют регресс-тестированием). Оно позволяет узнать, как ПО работает после изменений.
- Использование ПО и его поддержка. Некоторые ошибки «всплывают» после релиза. Поэтому тестировщик продолжает работать с ПО и выявлять дефекты. Например, на этом этапе он собирает обратную связь от пользователей.
Назовите и охарактеризуйте любые виды тестирования
Чаще всего на собеседованиях рассказывают о ручном и автоматическом тестировании.
Ручное тестирование — анализ ПО, при котором тестировщик вручную исследует программу по тест-кейсам. Автоматическое предполагает использование средств автоматизации, например тестовых сценариев и кода.
Перечислите плюсы и минусы любого вида тестирования
Для примера рассмотрим преимущества и недостатки ручного метода.
Что такое тест-дизайн? Опишите одну-две техники тест-дизайна
Тест-дизайн — разработка техник и способов проверки ПО. Его цель — создать такие сценарии, которые позволят исследовать большую часть функционала ПО небольшим числом тестов.
У тест-дизайна много техник. Например, эквивалентное разделение, когда из каждого класса берут одно значение и тестируют его. Или техника граничных значений, которая позволяет найти ошибки в работе ПО на границах классов. Есть и другие техники: таблица принятия решений, попарное тестирование, предугадывание ошибок.
Что такое тест-план и зачем он нужен?
Тест-план — это документ, в котором описываются все этапы тестирования: от целей и сроков выполнения до обязанностей каждого специалиста. Он демонстрирует подход к тесту и раскрывает его методы.
Что такое тест-кейс и чем он отличается от чек-листа?
Тест-кейс — это перечень переменных или условий, при которых специалист выясняет, насколько правильно работает ПО в целом или отдельная его часть. Включает несколько пунктов: предусловия, этапы анализа, описание окружения и результаты — предполагаемые и фактически полученные.
А чек-лист — это список элементов, которые нужно проверить в ходе тестирования.
Что такое SDLC?
SDLC — это жизненный цикл создания ПО. Включает такие этапы: разработка, проектирование, написание кода, проверка ПО, его развертывание и сопровождение.
Чем различаются валидация и верификация?
И валидация, и верификация — это проверка, насколько ПО соответствует требованиям пользователей и заказчика. Отличие лишь в том, когда эта оценка проводится: верификация — в процессе разработки, валидация — после того как проект будет готов.
В чем разница между багом и дефектом?
Баг — это ошибка, которую выявляют во время тестирования. Дефект — это несоответствие между ожидаемым результатом и фактическим, и обнаруживает ее разработчик после релиза проекта.
Ошибка и сбой — это одно и то же?
Нет. Ошибка — это ситуация, когда программа не может быть запущена или скомпилирована в процессе создания. Сбой — это случай, когда пользователь сталкивается с некорректной работой ПО.
Что такое use case?
Use case — это описание действий, которые может выполнить пользователь, и правила, как система должна на них реагировать. Например, если пользователь попал на несуществующую страницу, система должна показать ему ошибку 404.
Как понять, что тестирование можно завершать?
Определить, что тестирование пора прекратить, можно по таким параметрам:
- достигнут требуемый уровень качества ПО;
- соблюдены сроки и бюджет;
- найдено предполагаемое в начале количество дефектов;
- проведены все тест-кейсы;
- устранены все факторы риска.
Вопросы для опытных кандидатов
Чтобы проверить hard skills кандидатов с опытом, на интервью могут задать вопросы посложнее.
Чем различаются Smoke- и Sanity-тестирование?
Smoke-тестирование — это высокоуровневая проверка того, насколько правильно работают основные функции ПО. Считается быстрым тестированием, которое используют, чтобы понять, стоит ли проводить более долгую и обширную оценку.
Sanity-тестирование — это специфическая проверка, которая помогает убедиться, что недавние изменения не привели к ошибкам и дефектам. Такое тестирование — гарантия того, что после правок основные функции ПО работают корректно.
Что такое тестирование API?
Тестирование API — это проверка, насколько интерфейсы прикладного программирования соответствуют требованиям производительности, функциональности, безопасности, надежности. Иными словами, это поиск несоответствий в ожидаемом поведении.
Что такое функциональное и нефункциональное тестирование?
Функциональное тестирование — это проверка ПО методом «черного ящика». Сосредоточено на функциональных требованиях к ПО. Поэтому данный метод не затрагивает нефункциональные параметры например, удобство использования.
Нефункциональное тестирование — это проверка важных характеристик системы, которые не относятся к ее функциям. Среди них — безопасность, скорость загрузки, способность выдерживать перегрузки, удобство для пользователей, адаптивность. Проводится после функционального тестирования.
Что такое регрессионное тестирование?
Регрессионное тестирование — это повторное проведение тест-кейсов, выполненных ранее. Необходимо, чтобы проверить, насколько корректно работают имеющиеся функции.
Чем различаются утечка дефекта и релиз бага?
Когда после тестирования и релиза пользователь обнаруживает ошибки в ПО — это утечка дефекта. Иными словами, недочеты, которые пропустила команда разработчиков и тестировщиков.
Релиз бага — это выпуск ПО с ошибками, о которых знают заранее и которые планируют исправить в будущих версиях. Обычно это незначительные проблемы, но о них важно указать в примечаниях к релизу для конечных пользователей.
Что такое покрытие кода?
Покрытие кода — это показатель, который демонстрирует, какая часть кода охвачена тестами. Позволяет увидеть, насколько ПО охвачено тестовыми наборами.
Что такое парадокс пестицида и как с ним справиться?
Парадокс пестицида состоит в том, что, если одни и те же тесты проводить много раз, то в какой-то момент они не будут находить новые ошибки. Это связано с тем, что специалисты могут пропустить ошибки там, где их было меньше всего.
Чтобы избежать парадокса пестицида, нужно создавать новые тесты для проверки разных частей ПО, а также включать новые методы в уже имеющиеся тест-кейсы. Благодаря этому получится выявить больше дефектов там, где ранее их было немного.
Что такое сортировка дефектов?
Сортировка дефектов — это присвоение дефектам приоритета. Для этого используют несколько параметров, например риск, серьезность, время, которое нужно потратить на исправление.
В оценке дефектов должны участвовать все заинтересованные специалисты: разработчики, тестировщики, менеджер проекта и другие. Только так можно правильно определить порядок исправления ошибок.
Что такое интеграционное тестирование?
Интеграционное тестирование — это проверка нескольких модулей, связанных друг с другом. Позволяет обнаружить ошибки при их взаимодействии.
В чем суть разделения на классы по эквивалентности?
Разделение на классы по эквивалентности — это способ тестирования, в основе которого — спецификации. В чем суть: данные, определяющие условия проверки, разбирают на группы. Значения внутри них считаются эквивалентными для целей исследования. Разделение на классы по эквивалентности позволяет легче выявлять ошибки и повысить покрытие тестирования.
Вопросы по soft skills
Каким бы квалифицированным ни был специалист, если он не может корректно обсуждать проекты, не способен организовать свою работу и решать проблемы, его вряд ли возьмут в компанию. Поэтому на собеседовании HR и руководители узнают о soft skills — например, через моделирование разных ситуаций.
Какие навыки, помимо технических, вы считаете самыми важными?
Тестировщик ПО должен уметь:
- понятно и грамотно общаться — и устно, и письменно;
- внимательно относиться к деталям;
- рассчитывать время на работу и укладываться в сроки;
- решать проблемы, отстаивать свою точку зрения;
- работать в стрессовых ситуациях и условиях нехватки времени;
- работать в команде с другими специалистами и в одиночку.
Что вы будете делать, если обнаружите крупные ошибки в ПО?
Нужно как можно скорее сообщить об этом коллегам и руководству, чтобы ошибки не привели к еще большим проблемам с ПО. Также важно предоставить документацию как доказательство дефекта: так получится быстрее его исправить.
Что будете делать, если программист не согласится с результатами тестирования?
Нужно обратиться к документации. В ней написано, как должна работать та или иная функция. Затем необходимо донести это до программиста. Но если в документации нет нужной информации, значит, разработчик прав. В любом случае инцидент нужно задокументировать и донести до менеджера или тимлида.
Как поступите, если спецификация составлена неправильно или ее нет совсем?
Если по спецификации неясно, как должно работать ПО, нужно обратиться к тому, кто составлял документ. Обычно это разработчик, руководитель команды, проджект-менеджер. Если спецификации нет, к работе приступить не получится. Нужно обратиться к тем же специалистам и выяснить, в какие сроки будет готов документ.
Задачи по тестированию
После ответов на вопросы в конце собеседования вам могут предложить практические задачи по тестированию. Они нужны, чтобы руководитель понял, как вы мыслите в процессе работы. Какие могут быть задачи:
- протестировать форму обратной связи на сайте;
- составить чек-лист для проверки формы оплаты в интернет-магазине;
- написать отчет для ошибки на сайте;
- протестировать общедоступный API;
- составить тест для ПО по реальным требованиям компании.
На собеседованиях часто просят протестировать обычный предмет, например стул, ручку, блокнот. В таком случае нужно действовать по одному и тому же алгоритму. Сначала узнайте требования. Потом на каждое напишите тест-кейс и сценарий, при котором объект будет работать без ошибок. После этого проведите тестирование — здесь всё зависит от ваших навыков и фантазии.
Например, для стула можно провести юзабилити-тест: насколько он удобен, как выглядит, легко ли на него садиться. Такая задача поможет узнать, как кандидат работает с тестовыми сценариями и требованиями.
Полезные материалы по теме
Чтобы быстро и правильно отвечать на вопросы, важно постоянно освежать знания. В этом помогут, например, статьи по вашей специальности:
- Тестирование «черного и белого ящика»: в чем разница?
- Тестирование QA и QC: чем они различаются?
- Автоматизированное тестирование: что это?
- Что такое тестирование ПО, зачем оно нужно и кто им занимается
- Что такое ручное тестирование и почему без него не бывает качественного ПО
- Чем тестировщик отличается от QA-инженера?