Мок-собеседование / QA / Задача 01
Вход и восстановление
пароля
Разбери требования, спроектируй проверки и объясни, как найдёшь причину сбоя в системе.
01 / Продукт
Форма входа в веб-приложение
Пользователь входит по email и паролю. По ссылке «Забыли пароль?» он запрашивает письмо для восстановления доступа. Ссылка из письма открывает форму нового пароля и его повтора.
Эскиз интерфейса
Вход
Эскиз интерфейса
Восстановление
Письмо со ссылкой открывает следующий экран:
Известные правила
- Логин совпадает с email пользователя.
- Новый пароль содержит от 12 до 64 символов. Повтор пароля должен совпадать.
- Ссылка действует 15 минут с момента создания и используется один раз для успешной смены пароля.
- Запрос письма сам по себе не меняет пароль. После успешного сброса новый пароль работает, старый не работает.
Остальные требования уточняй у интервьюера. Регистрация и MFA в эту задачу не входят. Условие намеренно неполное: вопросы к требованиям входят в задание.
02 / Система
Как связаны компоненты
↕ HTTP
↓ Запрос отправки письма
↓ Чтение события
↓
Backend проверяет пользователя и меняет данные в БД. Для отправки письма он публикует событие в Kafka; сервис уведомлений читает его и отправляет письмо. Обычный вход не зависит от Kafka.
Ссылка из письма открывает frontend. Новый пароль frontend передаёт в backend; backend проверяет токен и обновляет БД.
03 / Твоя работа
Четыре этапа задания
Рассуждай вслух. Можно записывать ответ в своём документе или на доске; работающего приложения для этой задачи нет.
Тест-анализ
5 минутКакие требования нужны до составления проверок? Какие риски считаешь главными?
Что ожидается в ответе
- Назови вопросы к недостающим и неоднозначным требованиям. Объясни, как ответы повлияют на тесты.
- Отдели известные правила из условия от своих предположений. Согласуй предположения с интервьюером.
- Выдели наиболее опасные ошибки для пользователя и продукта. Объясни последствия каждой.
- Обозначь границы проверки: что входит в эту задачу, а что потребовало бы отдельного обсуждения.
Результат этапа: список уточнений, согласованные допущения и приоритетные риски.
Тест-дизайн
8 минутПредложи 10–12 проверок с конкретными данными и ожидаемыми результатами.
Что ожидается в ответе
- Покрой вход и восстановление пароля, включая успешные и неуспешные действия пользователя.
- Для каждой проверки укажи начальное состояние, данные, действие и наблюдаемый результат.
- Примени классы эквивалентности, граничные значения и переходы состояний. Покажи, какие проверки получились из каждой техники.
- Объясни, почему выбранных примеров достаточно для обсуждаемого риска и какие комбинации ты пока не проверяешь.
Результат этапа: компактный чек-лист или таблица. Формулировка «проверить пароль» без данных и результата недостаточна.
Проверки компонентов
5 минутГде проверишь каждый результат: на frontend, через backend, в БД или в Kafka? Как установишь, что письмо дошло?
Что ожидается в ответе
- Распредели проверки между компонентами схемы. Объясни, где достаточно одной проверки, а где нужно сопоставить несколько наблюдений.
- Назови доступы, тестовые данные и инструменты, которые понадобятся. Для каждого инструмента поясни, что именно будешь смотреть.
- Опиши, какие признаки подтверждают результат операции и как свяжешь данные разных компонентов с одним действием пользователя.
- Объясни, как проверишь работу при задержке обработки и повторной доставке события.
Результат этапа: план проверки по каждому компоненту с конкретными подтверждениями результата.
Сбой и приоритеты
5 минутAPI вернул успешный ответ, но письма нет. Как найдёшь причину? Какие пять проверок оставишь, если до релиза один час?
Что ожидается в ответе
- Предложи порядок диагностики. У каждой гипотезы назови наблюдение, которое её подтвердит или опровергнет.
- Объясни, как отличишь допустимое ожидание от сбоя и какая информация для этого нужна.
- Выбери ровно пять проверок и расставь их по приоритету с учётом возможного ущерба.
- Назови непроверенные риски и сведения, которые передашь ответственному за решение о выпуске.
Результат этапа: последовательность диагностики и сокращённый набор проверок с обоснованием.
04 / Формат ответа
Записывай так, чтобы проверку можно было повторить
| Проверка | Начальное состояние и данные | Действие | Ожидаемый результат | Где проверить |
|---|---|---|---|---|
| Название сценария | Что подготовить | Что выполнить | Что должно произойти | Компонент и наблюдение |
Тестовый код и готовые SQL-запросы не обязательны. Объясняй решения так, чтобы интервьюер мог проследить связь между требованием, риском и проверкой.