Interview prep

QA take-home assignments: real examples and a worked solution

Most QA take-homes are not hard. They are ambiguous, and the ambiguity is the test. The candidates who get rejected almost always shipped something that ran.

By Shahriyar Β· Updated

Got four hours? Generate a realistic take-home for your stack and seniority, start a timer, build it against a real site β€” then come back and grade yourself on the scorer below, the same way a reviewer would.

Start a practice take-home β€” free, no signup

"Validate the first 100 articles are sorted newest to oldest" takes twenty minutes to make pass and four hours to make defensible. That gap is the whole test. A take-home exists to show whether you can design checks and say why β€” anyone can be taught page.locator() in a week. The reviewer reads your code as evidence of a thought process, and an incomplete submission with clear reasoning consistently beats a complete one with none.

The six assignment archetypes

1

Automate a flow on a real site

3–4h

Really evaluating: can you handle a target you don't control β€” flaky selectors, changing data, pagination.

Survive the data changing mid-run, pick selectors by stability, and define "correct" in the README β€” the prompt won't. Rehearse on a real sandbox before the brief lands.

2

Test this app, report the bugs

2–3h

Really evaluating: bug report quality and coverage judgment β€” the seven real bugs, or thirty cosmetic ones?

Impact-ordered findings, exact repro steps, a "what I didn't cover" list. The bug report builder enforces the shape.

3

Write a test plan or strategy

2h

Really evaluating: do you think in risk or in checklists.

Risk-ranked scope, an explicit "not testing" list, entry/exit criteria. Two pages beat ten β€” the test plan generator grades the skeleton.

4

API testing task

2–3h

Really evaluating: contracts and edge cases, or just happy paths.

Own your data setup, assert on bodies not status codes, document at least one seeded bug. The boundary value generator enumerates the edges.

5

Two-part: manual plus automated

4–6h

Really evaluating: the mapping β€” which cases you automated, and whether you can defend the ones you left manual.

State traceability outright: "TC-03, 07, 11 automated; TC-05 visual, stays manual; TC-09 needs a real card."

6

Fix or extend an existing suite

3–4h

Really evaluating: can you read someone else's code and refactor without breaking it β€” usually a senior-role signal.

Small reviewable commits, and a README naming each smell and what you did about it.

Real examples you can go read

All six are publicly documented. Links go to the source, not to candidate solutions.

QA Wolf β€” Hacker News sorting. Playwright starter, empty index.js: validate the first 100 newest articles are sorted, plus a two-minute video. The most-assigned task there is β€” worked end to end here.

cLabs (Celo) β€” Detox on an Instagram clone. celo-org/qa-interview-assignment. Three hours, capped. Distinctive: they want a mix of passing and failing tests β€” failing where you found a real bug.

ZoomCare β€” schedule page. zoom-care/candidate-project-qa-automation. 8–10 smoke cases, automate at least three; fork and open a PR β€” the README is the deliverable.

DEPT β€” two-part. Published on their site. A six-month test plan, then a running suite. Distinctive for testing planning across months.

Gumtree UK β€” E2E plus API. gumtreeuk/technical-assignment-qa. Unusually explicit criteria β€” page objects, HTML reports, "granular git commits". Worth reading purely as a published rubric.

Moneyhub β€” Postman plus a broken form. moneyhub/qa-interview-task. ~30 minutes of API work plus manual cases. Deliberately short β€” they don't want your weekend.

The most-assigned task, worked end to end

The QA Wolf Hacker News task deserves its own page: the pagination trap, the moving-list bug that keeps a wrong answer green, the file structure, the README and the video β€” the full walkthrough. The reasoning transfers to any "validate this list" assignment.

What reviewers actually score

These nine lines are the review. Tick what's true of your submission and watch the score β€” the weighting mirrors how reviews actually go: if it doesn't run, nothing else matters, and the README carries more than anyone expects.

0Tick what your submission already has.

How candidates fail

Automating 30 items when the task said 100 β€” that's what one page holds.

Comparing relative time strings instead of absolute timestamps.

Fixed sleep calls instead of waiting on a condition.

No assertion β€” the script prints results and always exits 0.

Committing node_modules, or a .env with a real key.

A README that says "run npm start" and nothing else.

Over-building β€” Docker and a custom reporter for a four-hour task reads as poor judgment.

Silently hiding a bug your test should have reported.

Thirty cosmetic bug reports and none of the functional ones.

Ignoring an explicit instruction β€” the file, the framework, the video they asked for.

Scoping "spend about 4 hours"

Treat "about 4 hours" as a budget: 30 minutes reading, 30 scoping on paper, two hours building, 30 on failure paths, 30 on the README. If you overrun, stop and write down what's missing β€” that sentence scores better than the extra work, and twenty hours on a four-hour task signals you can't estimate. When the coding itself is the shaky part, that's what the Code Lab and the roadmap are for.

Frequently asked questions

How long should a QA take-home assignment take?

Most stated ranges are two to four hours, and published examples confirm it β€” cLabs caps theirs at three hours, ZoomCare at two to three. Treat the number as a budget. Going far over signals poor estimation, which reviewers weigh more heavily than a slightly thinner submission.

Should I use Selenium, Cypress, or Playwright?

Use whichever you can explain under questioning, unless the assignment names one. Reviewers care far more about your test design and structure than your tool. If they let you choose, add one README line saying why you chose it β€” that sentence is scored.

What should the README contain?

Six sections: what the project does, exact setup and run commands from a clean clone, how you defined the acceptance criteria the prompt left vague, known limitations, what you'd do with more time, and how long you spent. It is the only place your reasoning is visible.

Is it acceptable to submit an incomplete assignment?

Yes, if you say so clearly. An honest "I did not automate the checkout flow; here's my approach and the estimate" reads better than a rushed, flaky version of it. Silent gaps look like oversight. Named gaps look like scope control.

How many test cases should I automate?

Fewer than you think, chosen deliberately. Three well-structured tests with a stated rationale beat fifteen shallow ones. Where the assignment gives a number, hit it exactly, then list which remaining cases you'd automate next and which should stay manual.

Do commit messages matter in a take-home?

Yes. Gumtree UK's published criteria explicitly ask for granular git commits showing thought process. A single commit called "solution" gives reviewers nothing and invites suspicion about where the code came from. Five commits that follow your build order tell a story they can follow.

What happens after I submit a take-home?

Usually a follow-up interview where you walk through your submission and defend your choices. cLabs states outright that you'll be asked to explain your thinking. Write down why you made each significant decision while it's fresh, because you'll be asked about it two weeks later.