Оригинальное тестовое на SDET

Стандартный подход к проведению собеседований с SDET-инженерами (Software Development Engineer in Test) не работает. Как правило, всё сводится к общим теоретическим вопросам или базовым задачам по кодированию, которые не показывают, как кандидат решает реальные задачи и как он вообще относится к качеству ПО. В итоге команды нанимают людей, которые хорошо отвечают на вопросы, но не умеют решать реальные задачи.

Что не так с собеседованиями

Классические собеседования для SDET-ов часто основаны на:

  • Абстрактных теоретических вопросах о философии тестирования без практической демонстрации.
  • Стандартных задачах по кодированию, которые не отражают сложности реального мира.
  • Недостаточном внимании к реальным возможностям фреймворков для сквозного (e2e) тестирования.

Такие методы упускают из виду важные скиллы, необходимые в повседневной работе по автоматизации QA, такие как устранение проблем с динамическими веб-элементами, работа с аутентификацией и асинхронной загрузкой данных.

Лучше технические задачи из реального мира

Чтобы по-настоящему оценить способности кандидата, практические технические задания должны имитировать сложности, которые встречаются в реальных сценариях. Например, в одном из таких заданий используются классические проблемы в e2e-сценарии на Reddit — сайте, который, как известно, очень сложен для автоматизации из-за системы обнаружения ботов и динамического контента.

Почему такой Technical Assessment лучше

Такой практический подход позволяет добиться того, чего не могут традиционные интервью:

  • Реалистичная сложность — динамически загружаемый контент Reddit, теневые DOM-структуры и агрессивные механизмы обнаружения ботов — это вполне реалистичный сценарий для оценки того, как кандидат решает проблемы и адаптируется.
  • Проверка технических навыков — задача четко проверяет реальные способности кандидата к кодированию, его знакомство с современными фреймворками, такими как Playwright, и умение справляться с типичными препятствиями.
  • Оценка философии качества — кандидаты не просто пишут код. От них требуется обработка краевых случаев, написание чистого, реюзабельного кода, грамотная работа с ошибками и стратегическое сосредоточение на покрытии и надёжности.
  • Четкое понимание мыслительных процессов — когда кандидатов просят задокументировать свой подход, включая любые допущения и возникшие проблемы, команды понимают уровень кандидата и его отношение к качеству ПО.

Пример

# SDET Technical Challenge

Welcome to the coding challenge for the QA Automation Engineer position! In this exercise, you'll use [Playwright](https://playwright.dev/) to automate a real-world test scenario involving Reddit. The goal is not just to complete every requirement, but to demonstrate how you think through automating complex, dynamic user flows.

---

### 🛠 Installation and Setup

**1. Install Dependencies**  
Ensure you have Node.js and npm installed. Then run:

```bash
npm install
```

**2. Install Playwright Browsers**
```bash
npx playwright install
```

You can refer to the [Playwright Documentation](https://playwright.dev/docs/api/class-test) as needed. Feel free to use any external resources or tools (including ChatGPT) that help you work through the challenge.

You can use the provided architecture as a starting point, or create your own structure (Like POM).

---

### ✅ Test Scenario

> **Note**: You will need to create a Reddit account to complete some of the steps (like logging in and upvoting posts).

Please automate the following test scenario:

1. **Navigate to** `reddit.com`
2. **Log in** to Reddit
3. **Search** for `r/aww` or a similar wholesome subreddit
4. **Extract** all post titles from the subreddit page and **log** them to the console
5. **Upvote** any post with a title that contains the keyword `dog` (or a similar pet-related keyword)
6. **Assert** that the number of upvoted posts matches the number of posts containing the keyword

---

### 🌟 Bonus Tasks (Optional)

If you complete the main scenario and want to go a step further:

- **📸 Screenshot Capture**: Take a screenshot of each upvoted post and save it to a designated folder
- **📝 Logging**: Create a log file that records the titles of all upvoted posts

---

### 🔍 What We’re Looking For

This isn’t a “finish every checkbox” type of challenge. We're more interested in how you approach:

- **Problem-solving**
- **Handling edge cases** (e.g., login issues, lazy-loaded content, changing DOM)
- **Error handling**
- **Parameterization and reusability**
- **Bot detection workarounds** (Reddit is known for them! Hint: Consider saving localstorage to an auth file)
- **Dealing with shadow DOMs and dynamic selectors**
- **Writing clean, modular, and readable code using best practices**

---

### 💡 Tips

- If you're stuck, don't hesitate to reach out! We're here to support you.
- Don’t feel pressured to complete every single task. This challenge is meant to simulate a tough real-world automation scenario and assess your thinking, not perfection.
- If you can't automate the login step due to bot detection, you can add a manual step to log in before running the rest of the script.
- We fully understand that you're a human and have a life outside of this. If you need extra time, just reach out and let us know — this will not affect your evaluation.
- Provide a brief explanation of your approach, any challenges you faced, and any assumptions you made. This will help us understand your thought process.
---

Thanks again for your interest in joining. We’re excited to see how you think through and approach challenges like this!

Good luck 🐾

James Kip

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

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

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

Мы в Telegram

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

? Популярное

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

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

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

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

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

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

live

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