Перейти к основному содержимому

Тестовое задание при найме

Всем

Тестовое задание — практическая проверка навыков между скринингом HR и финальным оффером. Работодатель смотрит, как вы решаете задачу, оформляете результат и объясняете решения. Формат зависит от роли — у разработчика чаще код, у аналитика — SQL и гипотезы, у QA — сценарии и баг-репорты.

Тестовое — это срез инженерной культуры — читаемость, границы задачи, честность в README и готовность обсудить trade-off на следующем раунде.

Материал дополняет подготовку к техническому собеседованию, воронку HR, портфолио и образовательные траектории. Краткий чек-лист — шпаргалка.


Где применяют компании дают тестовое

Резюме и короткое интервью показывают заявленный стек. Тестовое подтверждает практику:

  • умение довести задачу до рабочего состояния;
  • писать понятный код или отчёт;
  • задавать уточняющие вопросы;
  • укладываться в срок.

Типичные критерии оценки:

КритерийЧто имеют в виду проверяющие
Соответствие ТЗСделаны обязательные пункты; опциональные — по силам и с пометкой в README
Качество решенияСтруктура проекта, именование, обработка ошибок и краевых случаев
ПроцессКоммиты, тесты, инструкция запуска, .env.example без секретов
МышлениеКомментарий "что бы улучшил в проде", альтернативы, ограничения
КоммуникацияПисьмо с сопровождением: что сделано, что сознательно отложено

На аутсорсе часто дают задачу из реального стека заказчика — мини-API, ревью модуля, правка уязвимости. В продуктовых компаниях — стажёрские или изолированные кейсы без доступа к продакшену.


Форматы проверки

Один и тот же отбор может сочетать несколько этапов.


Live coding

Кандидат пишет или дополняет код в реальном времени: shared editor, IDE с демонстрацией экрана. Проверяют ход мыслей, базовый синтаксис, умение объяснять вслух. Обычно 30–60 минут, задача проще, чем полноценный take-home.

Как готовиться: решать задачи на доске или в редакторе без автодополнения; проговаривать шаги; повторить основы из статьи про техническое интервью.


Take-home (домашнее задание)

Задачу выносят на 2 часа — 5 рабочих дней. Ожидают репозиторий, архив или ссылку на деплой. Это основной формат для junior и middle в разработке, аналитике и DevOps.

Как готовиться: заранее иметь шаблон репозитория (README, линтер, CI по желанию); отработать 2–3 учебных проекта того же типа, что в вакансии (см. ниже).


Парное программирование

Интервьюер и кандидат вместе дописывают фичу или чинят баг. Важны диалог, вопросы к постановке и аккуратные мелкие коммиты по ходу.


Кейсы без "большого репозитория"

РольТипичное содержание
Аналитик / dataSQL-запросы, разбор метрик, гипотеза A/B, краткий отчёт или ноутбук
QAТест-план, чек-лист, баг-репорты, иногда автотест на API или UI
DevOps / SREDockerfile, compose, pipeline, скрипт деплоя или диагностики
ТехписательФрагмент документации по вымышленному API

Подробнее про роли — в специализациях; про грейды и стажировки — в этапах роста.


Чем тестовое отличается от пет-проекта

Пет-проект / портфолиоТестовое при найме
ЦельРост, эксперимент, витрина навыковПроверка под конкретную вакансию
СрокБез жёсткого дедлайнаФиксированный (часто 3–7 дней)
ОбъёмВы сами задаёте scopeScope задаёт работодатель
ПубликацияОткрытый GitHub, статьиЧасто NDA на формулировку; код — только ревьюерам

Удачное тестовое можно переработать в портфолио — обезличить бренд, переименовать репозиторий, дописать тесты и описать архитектуру — по правилам из статьи про портфолио.


Как готовиться до отклика

Публичные "утёкшие" формулировки заданий в сети полезны как ориентир сложности и стека. Имеет смысл прочитать условие, оценить часы, сделать свою реализацию с нуля. Готовые решения с агрегаторов редко выдерживают углублённый разбор на follow-up: вопросы про архитектуру, тесты и компромиссы выдают чужой след.


Учебные "типы" задач под вакансию

Соберите 2–3 проекта, близких к тексту вакансии:

Тип вакансииУчебный аналог (свой код)
Backend APICRUD + авторизация + PostgreSQL + OpenAPI или README с примерами curl
FrontendSPA по макету (или упрощённому wireframe), роутинг, форма, работа с API
Full-stackТонкий backend + фронт + деплой на бесплатный хостинг
АналитикаДатасет (open data) + SQL + 3–5 слайдов выводов
QA manualТест-план к демо-приложению + 5 оформленных баг-репортов
QA auto10–20 автотестов API (pytest, Jest, Playwright — по стеку вакансии)
DevOpsDockerfile + docker compose + простой CI (lint/test)

Связь с карьерным планом: краткосрочная цель "за 6 месяцев — проект в портфолио под стек вакансии" совпадает с подготовкой к take-home.


Техническая база

Параллельно держите в тонусе то, что спрашивают на техническом интервью — Git, HTTP, SQL, основы ООП, один фреймворк из вакансии. Take-home проверяет сборку целого, live coding — скорость на фрагменте.


Перед тем как согласиться

Задайте рекрутеру или тимлиду уточняющие вопросы (можно письменно):

  1. Срок — календарные дни или рабочие; можно ли короткое продление при болезни.
  2. Ожидаемые трудозатраты — "2–4 часа" или "полноценный мини-проект на выходные".
  3. Формат сдачи — GitHub (приватный invite), архив, деплой.
  4. Стек — обязательный и желательный; можно ли заменить близким аналогом.
  5. Обратная связь — при отказе дадут ли разбор (часто только у сильных кандидатов).
Ориентир по времени

Для junior разумный объём take-home — порядка 3–8 часов чистого времени.

Задание на 20+ часов без оплаты — повод обсудить сокращение scope или отказ.

Ваше время — ресурс; его можно вложить в пет-проект с открытым итогом в портфолио.


Красные флаги (когда вежливо отказаться)

СигналПочему это риск
"Сделайте полноценный модуль нашего продукта"Бесплатная разработка под видом теста
Нет срока и критериев приёмкиБесконечные правки
Только закрытый доступ, без договора о данныхСерая зона с интеллектуальной собственностью
Десятки кандидатов на одну "идею стартапа"Конкурс идей без оплаты
Угроза "без тестового в базу не попадёте" при сотнях откликовДавление на рынке с перегретым junior-сегментом

Отказ — нормальная часть соискательской симметрии: вы тоже оцениваете работодателя. Кратко объясните причину ("объём выходит за разумные 8 часов") и предложите альтернативу — ссылку на близкий проект в портфолио или live coding.


Как выполнять take-home

1. Прочитать ТЗ дважды

Выделите must have и nice to have. Если формулировка размыта — один короткий список вопросов рекрутеру; это плюс, а не слабость.


2. Ограничить scope

Лучше сделать меньше, но стабильно — авторизация работает, пустые списки обработаны, README честен. В конце README — блок "Сделано / Отложено / Нужно ещё N часов для …".


3. Оформить как production-lite

Минимум для разработки:

/README.md — что это, как запустить, переменные окружения
/.env.example — без реальных ключей
/requirements или package.json — зафиксированные версии
/tests/ — хотя бы smoke по критичному пути

Для аналитики — воспроизводимый ноутбук или SQL-файл + results/ или скриншоты. Для QA — таблица сценариев и шаблон баг-репорта.


4. Коммиты

Несколько осмысленных коммитов ("init", "auth", "tests") показывают процесс лучше, чем один "final".


5. Сопроводительное письмо

На 5–10 предложений:

  • ссылка на репозиторий или деплой;
  • что реализовано из ТЗ;
  • известные ограничения;
  • сколько времени ушло (по желанию);
  • готовность разобрать на созвоне.

Чек-лист перед отправкой

Полный чек-лист с вопросами рекрутеру, красными флагами и шаблоном письма — в шпаргалке. Перед отправкой пройдите его целиком; здесь — только напоминание о главном — запуск по README с нуля, секреты вне репозитория, честный блок "Сделано / Отложено" в README, готовность дописать решение на follow-up.


После отправки

  • Соблюдайте обещанный срок; при задержке — предупредите заранее.
  • На техническом интервью будьте готовы живьём менять код из тестового — добавить поле, починить тест, объяснить выбор БД.
  • При отказе запросите feedback одним предложением; часть компаний ответит — это материал для следующего цикла.
  • Поведение после этапов — в статье про HR.

Этика и честность

  • Сдавайте свой код и тексты; ИИ допустим как помощник, если вы понимаете каждую строку и готовы переписать по запросу.
  • Устаревшие публичные задания (другой год, другой фреймворк) — только для тренировки; на реальном отборе условие будет свежее.
  • Узнаваемое тестовое из открытых списков в портфолио лучше обезличить — своё название, свой README, без формулировки "задание компании X".

Плагиат и "скачанное решение" бьют по репутации сильнее, чем слабый, но честный MVP.


Кратко по ролям

Разработчик (backend / frontend / mobile)

Чаще всего — REST или GraphQL, форма, список, авторизация, деплой по желанию. Смотрят на структуру папок, тесты, обработку ошибок. Mobile — экраны, навигация, работа с API, иногда offline-кэш.


Аналитик и data

Акцент на SQL, здравый смысл в метриках, оформление выводов. Продуктовый аналитик — гипотеза, дерево метрик, интерпретация, а не только "запрос выполнился".


QA

Manual — структура тест-дизайна. Automation — стабильные селекторы, Page Object или аналог, отчёт о прогоне. Иногда дают сломанное приложение — цель найти критичные дефекты.


DevOps / платформа

Идемпотентность скриптов, безопасность образов (не root без нужды), логи и healthcheck. Документируйте, как проверить результат ревьюеру за 10 минут.


Связь с портфолио и рынком

Сильное take-home закрывает дыру "нет коммерческого опыта" рядом с пет-проектами. На перегретом junior-рынке (проблемы рынка труда) качественное тестовое иногда важнее ещё одного сертификата — особенно в аутсорсе и небольших продуктах.

Руководителю, который назначает тестовые, полезен взгляд из найма в команде — разумный scope, оплата при большом объёме, единые критерии оценки.


Что запомнить

  1. Тестовое проверяет процесс и результат, а не только синтаксис.
  2. Готовьтесь типами задач под вакансию, своими проектами в портфолио.
  3. Уточняйте срок и объём до старта; отказ при злоупотреблении — норма.
  4. README, тесты и честный список "не вошло в scope" часто решают так же, как фича.
  5. На follow-up вас попросят объяснить и дописать сданное — к этому готовьтесь сразу.