Вопросы на собеседовании QA с ответами
Вопросы на собеседовании junior QA повторяются от компании к компании. Ниже сорок штук с ответами — и, что важнее, с пояснением, что именно проверяют этим вопросом. Готовый ответ без понимания слышно сразу.
Теория тестирования
1. Что такое тестирование?
Проверка соответствия продукта требованиям и ожиданиям, чтобы дать команде
информацию о качестве. Не «поиск багов» — поиск дефектов лишь одна из задач.
2. Чем отличаются ошибка, дефект и отказ?
Ошибка — действие человека (программист перепутал знак). Дефект — её след в коде
или документации. Отказ — наблюдаемое неверное поведение, когда до дефекта дошло
выполнение. Дефект может годами не давать отказа.
3. Почему нельзя протестировать всё?
Комбинаций входных данных, состояний и окружений бесконечно много. Отсюда
приоритеты, риски и техники сокращения количества проверок.
4. Что такое верификация и валидация?
Верификация — делаем ли мы продукт правильно (соответствие спецификации).
Валидация — делаем ли мы правильный продукт (решает ли он задачу пользователя).
5. Назовите принципы тестирования.
Тестирование показывает наличие дефектов, а не их отсутствие; исчерпывающее
тестирование невозможно; раннее тестирование дешевле; дефекты скапливаются
(правило Парето); парадокс пестицида — одни и те же тесты перестают находить новое;
тестирование зависит от контекста; отсутствие ошибок — заблуждение, продукт может
работать и быть при этом никому не нужен.
6. Уровни тестирования.
Модульное → интеграционное → системное → приёмочное.
7. Что такое пирамида тестирования?
Много быстрых модульных тестов внизу, меньше интеграционных, совсем немного
медленных сквозных наверху. Перевёрнутая пирамида — долгий и хрупкий прогон.
8. Чем smoke отличается от регресса?
Smoke — быстрая проверка, что сборку вообще имеет смысл тестировать (10–15 проверок
ключевых сценариев). Регресс — проверка, что новое не сломало старое, объёмный
и обычно частично автоматизирован.
9. Что такое ретест?
Повторная проверка конкретного исправленного дефекта. Регресс — про соседний
функционал, ретест — про сам дефект.
10. Позитивное и негативное тестирование.
Позитивное — система работает на корректных данных. Негативное — корректно
отказывает на некорректных: понятная ошибка, ничего не сломалось, данные не потеряны.
11. Что такое статическое тестирование?
Проверка без запуска: ревью требований, макетов, кода. Самый дешёвый способ
найти дефект — до того, как его написали.
12. Чем чёрный ящик отличается от белого?
Чёрный — тестируем по внешнему поведению, не зная устройства. Белый — зная код
и структуру. Серый — частично: например, знаем схему базы и структуру API.
Техники и документация
13. Классы эквивалентности — зачем?
Значения, которые система обрабатывает одинаково, объединяем в класс и проверяем
одно значение из класса. Вместо ста проверок — четыре, покрытие то же.
14. Граничные значения.
Ошибки живут на границах. Для диапазона 18–65 проверяем 17, 18, 65, 66 —
именно там путают < и <=.
15. Попарное тестирование.
Большинство дефектов вызывает сочетание двух параметров, а не пяти. Вместо всех
комбинаций берём набор, где каждая пара значений встречается хотя бы раз: было 96
комбинаций — стало 12.
16. Что такое таблица решений?
Способ разложить сложную логику «если — то» на условия и результаты. Хорошо
показывает пропущенные и противоречивые правила в требованиях.
17. Чем чек-лист отличается от тест-кейса?
Чек-лист — список того, что проверить («корзина сохраняется после перезагрузки»).
Тест-кейс — точные шаги, данные и ожидаемый результат, чтобы повторил любой.
Чек-лист быстрее пишется, кейс — воспроизводимее.
18. Что обязательно в тест-кейсе?
Идентификатор, название, предусловия, шаги, данные, ожидаемый результат.
Ожидаемый результат — со ссылкой на источник требования.
19. Что такое тест-план?
Документ о том, что тестируем и что не тестируем, как, кто, когда, на каких
окружениях, какие критерии старта и завершения, какие риски.
20. Что такое критерии входа и выхода?
Условия начать тестирование (стенд поднят, сборка установлена, smoke пройден)
и условия его закончить (все кейсы пройдены, критических дефектов нет).
Дефекты
21. Что входит в баг-репорт?
Заголовок, окружение, предусловия, шаги, ожидаемый и фактический результат,
серьёзность, воспроизводимость, вложения. Готовая структура —
в шаблоне баг-репорта.
22. Severity и Priority — в чём разница?
Severity — насколько сломано (ставит тестировщик), Priority — насколько срочно
чинить (ставит продакт). Опечатка в названии компании на главной: severity Trivial,
priority Highest. Падение раз в год на редком сценарии: severity Critical,
priority Low.
23. Жизненный цикл дефекта.
New → Assigned → In Progress → Fixed → Retest → Closed. Ветки: Reopened, если
не починили; Rejected, если это не дефект; Deferred, если отложили;
Duplicate, если уже есть.
24. Дефект не воспроизводится. Ваши действия?
Уточнить окружение, версию сборки, данные и роль; проверить в инкогнито и другом
браузере; посмотреть логи и записи по времени; попробовать по шагам того, кто
нашёл. Если не удалось — закрыть с подробным описанием попыток, а не молча.
25. Разработчик говорит «так и задумано». Что делать?
Найти источник требования. Если требование говорит иначе — приложить ссылку.
Если требования нет — это не спор, а вопрос к аналитику или продакту:
дефект превращается в уточнение требований.
26. Нашли дефект на проде за час до релиза. Что делаете?
Оцениваю влияние: сколько пользователей, есть ли обходной путь, теряются ли
деньги и данные. Сообщаю сразу с этой оценкой, а не «нашёл баг». Решение
о переносе релиза принимает не тестировщик, но данные для решения даёт он.
Инструменты, API и SQL
27. Как посмотреть запрос из браузера?
DevTools → Network, фильтр Fetch/XHR, выбрать запрос: Headers, Payload, Response,
Timing. Кнопка «Copy as cURL» повторяет запрос в терминале или Postman.
28. Что такое API?
Интерфейс, через который программы обмениваются данными. В вебе чаще всего
HTTP + JSON: клиент шлёт запрос по адресу с методом и телом, получает код ответа
и данные.
29. GET и POST — в чём разница?
GET читает и не меняет состояние, параметры в адресе, кэшируется, повторяем.
POST создаёт или изменяет, данные в теле, не кэшируется, повторный вызов
может создать дубль.
30. Что такое идемпотентность?
Повторный одинаковый запрос не меняет результат. GET, PUT, DELETE идемпотентны,
POST — нет. Отсюда классический дефект: двойной клик создаёт два заказа.
31. Что означают коды 401, 403, 404, 500?
401 — не представились, 403 — представились, но нельзя, 404 — не найдено,
500 — упало на сервере. Полный список —
в шпаргалке по кодам HTTP.
32. Чем cookie отличается от localStorage?
Cookie уходят на сервер с каждым запросом, имеют срок жизни и флаги
(HttpOnly, Secure, SameSite). localStorage живёт только в браузере, объём больше,
сам никуда не отправляется. sessionStorage — то же, но умирает с вкладкой.
33. Напишите запрос: найти дубли по e-mail.
SELECT email, COUNT(*) FROM users GROUP BY email HAVING COUNT(*) > 1;
34. Чем INNER JOIN отличается от LEFT JOIN?
INNER оставляет только совпавшие пары, LEFT — все строки левой таблицы,
подставляя NULL, где пары нет. LEFT JOIN + WHERE ... IS NULL находит
записи-сироты.
35. Как проверить, что данные записались?
Пройти сценарий в интерфейсе и выполнить SELECT по нужной таблице; сверить
поля с тем, что вводили; отдельно проверить расчётные поля — суммы и статусы.
36. Что такое Git и зачем он тестировщику?
Система контроля версий. Тестировщику нужна, чтобы понимать, какая версия на
стенде, читать историю изменений и хранить свои автотесты и тестовую документацию.
О работе
37. С чего начнёте тестировать новую фичу?
Прочитаю требования и макеты, задам вопросы по неясным местам (это уже находит
дефекты), составлю чек-лист от главного сценария к краям, уточню окружение
и тестовые данные, начну с позитивного сценария и потом пойду по границам.
38. Требований нет. Что делаете?
Источники всё равно есть: макеты, поведение прошлой версии, аналоги, здравый смысл,
устные договорённости. Составляю список предположений и иду с ним к аналитику
или продакту — так пробелы в требованиях становятся видимыми.
39. Времени на тестирование дали в два раза меньше. Что делаете?
Расставляю приоритеты по риску: деньги, авторизация, потеря данных — в первую
очередь; редкие сценарии и косметика — в последнюю. И честно сообщаю, что
осталось непроверенным, чтобы решение принимала команда.
40. Почему вы идёте в тестирование?
Здесь нет правильного ответа, но есть проверяемый: расскажите, что уже сделали
сами — прошли курс, разобрали чужое приложение, завели репорты, написали
чек-лист. Конкретика убеждает сильнее слов «мне интересно качество».
На junior-собеседовании смотрят не на объём заученного, а на три вещи: умеете ли вы задавать вопросы вместо додумывания, можете ли объяснить ход мысли, и есть ли у вас практика руками. Поэтому на любой вопрос сильный ответ — короткое определение плюс пример из того, что вы делали сами.
Практическая часть собеседования обычно выглядит так: «вот страница — найдите дефекты», «напишите тест-кейсы на форму входа», «вот таблица — напишите запрос». Всё это есть в открытом доступе: поиск дефектов, SQL-тренажёр, конструктор баг-репорта.
Это выжимка. Полный разбор — в курсе
В «Ручном тестировщике» 47 уроков и 36 тренажёров с проверкой результата. Часть уроков и четыре тренажёра открыты бесплатно.