QA Automation Engineer interview prep
A spaced-repetition deck of 326+ QA Automation Engineer interview questions — organised by topic and difficulty, and scheduled for review based on your ratings. Preview a few cards below, then choose access to study the whole track on an Anki-style SM-2 schedule.
Eligible new monthly or yearly subscribers get 7 days free. Checkout confirms eligibility and charges.
Before you start
Start with manual-testing basics and the ability to read code. Shared Python comes before automation; examples also use Java, TestNG, and Selenide. The track spans tools rather than following one language throughout.
First pass: Testing Theory → Test Design Techniques. Begin with the foundational questions in these modules, then follow the outline. Revisit advanced and senior questions as the job requires; all cards remain available from the start.
Shared topics can appear in several tracks and keep one review history. The outline labels shared foundations and role-specific modules; choose your depth for the job you are preparing for.
What's covered
Every topic in this track, grouped the way you'd study it.
Testing Theory
15 cardsRole-specific module
Test Design Techniques
11 cardsRole-specific module
Bug Reports & Process
11 cardsRole-specific module
HTTP, API & Client-Server
13 cardsRole-specific module
Web, Mobile & Security
9 cardsRole-specific module
Python
122 cardsShared foundations
Databases
42 cardsShared foundations
Selenium & Playwright
11 cardsRole-specific module
Automation Patterns & Frameworks
12 cardsRole-specific module
DevOps & Infra
35 cardsShared foundations
Practice Cases & Puzzles
10 cardsRole-specific module
Behavioral
35 cardsShared foundations
Sample questions
A few cards from the deck — reveal each answer, then choose access to study the full set on a schedule.
What is the difference between verification and validation?
What is the difference between verification and validation?
Short answer: Verification answers "are we building the product right" — does it conform to the spec and requirements. Validation answers "are we building the right product" — does it solve the user's actual problem. Verification is about matching documents, validation is about matching expectations.
In depth:
- Verification — checking an artifact against its specification. Often static: requirements review, code inspection, cross-checking against the spec. Answers: "did we build it to the blueprint?".
- Validation — checking that the finished system meets the user's need. Usually dynamic: real execution, acceptance testing, a demo to the customer. Answers: "was this blueprint the right one?".
- Order — verification comes earlier and is cheaper, validation is closer to release.
| Criterion | Verification | Validation |
|---|---|---|
| Question | building it right? | building the right thing? |
| Reference | specification | user needs |
| Type | usually static | usually dynamic |
| Example | review, inspection | acceptance test, demo |
⚠️ Common mistake: rattling off examples ("a review is verification") without the two crisp formulations "are we building it right" / "are we building the right thing." That's exactly what the interviewer is listening for.
When is a lightweight checklist enough instead of full test cases?
When is a lightweight checklist enough instead of full test cases?
Short answer: A full test case with preconditions, steps, and expected result is needed where reproducibility and traceability matter: audit, compliance, complex multi-step flows. A lightweight checklist is enough for regression on stable features and exploratory sessions, where speed matters more.
In depth:
- Test case — a formal document anyone can replay step by step; expensive to write and maintain.
- Checklist — a list of what to verify, without detailed steps; fast to draft, flexible to use.
- Selection criterion — maintenance cost versus the need for rigor and auditability.
| Test case | Lightweight checklist | |
|---|---|---|
| Detail | steps + expected result | "what to check" items |
| When | audit, compliance, complex flows | regression on stable, exploratory |
| Cost | high | low |
| Reproducibility | exact | depends on the engineer |
⚠️ Common mistake: dragging heavy formal test cases into places where a checklist suffices and drowning in documentation upkeep instead of actual testing. The interviewer wants to hear you justify the choice under time pressure.
Describe the bug lifecycle: what statuses does a defect go through?
Describe the bug lifecycle: what statuses does a defect go through?
Short answer: New → Assigned → In Progress → Fixed → Retest → Closed. That's the main flow, but it has important branches: Reopened (the bug came back after the fix), Rejected (not a bug), Duplicate (already filed), Deferred (postponed). The key to the answer is naming not just the line but the branches, and who performs each transition.
In depth:
- New — the tester filed the bug.
- Assigned → In Progress — the lead assigns a developer, who picks it up.
- Fixed — the developer fixed it and handed it back for verification.
- Retest → Closed — the tester re-verifies on the new build and closes it.
- Branches — Reopened (tester), Rejected/Duplicate (developer or lead), Deferred (PM postpones it).
New ──► Assigned ──► In Progress ──► Fixed ──► Retest ──► Closed
(QA) (lead) (dev) (dev) (QA) (QA)
│ │ failed
▼ ▼
Rejected / Duplicate (dev, lead) Reopened ──► back into work
Deferred (postponed by PM)
⚠️ Common mistake: naming only the straight line New→Closed and forgetting the Reopened/Rejected/Duplicate/Deferred branches — those are exactly what show you've worked in a real tracker.
Describe client-server architecture. Why can't you rely on client-side validation alone?
Describe client-server architecture. Why can't you rely on client-side validation alone?
Short answer: The client (browser, mobile app) sends a request, the server processes it and returns a response — the request/response model over HTTP. You can't rely on client-side validation because the client is fully under the user's control: the form can be bypassed via curl, Postman, or DevTools and any data sent to the server. So the server must validate itself, and QA tests both layers independently.
In depth:
- Client — renders the UI, does first-pass validation for convenience (fast feedback, less traffic), holds the token.
- Server — the source of truth: checks permissions, validates the body, writes to the DB. It's the only layer you can trust.
- What QA does — doesn't just click the UI but hits the API directly, bypassing the client: sends empty/invalid fields, someone else's
id, injections — and checks the server rejected them (400/403) rather than saving them.
CLIENT SERVER
┌────────┐ request (HTTP) ┌─────────┐
│ UI │ ─────────────────► │ API │
│ ✔ UX │ │ ✔ manda-│
│ valid. │ ◄───────────────── │ tory │──► DB
└────────┘ response │ valid. │
▲ can be bypassed: └─────────┘
└── curl / Postman / DevTools
⚠️ Common mistake: assuming that because the Submit button is disabled on the form, invalid data never reaches the server. The UI is bypassed in a second — a robust system validates everything server-side.
What is cross-browser testing and how do you choose the browser matrix?
What is cross-browser testing and how do you choose the browser matrix?
Short answer: Cross-browser testing verifies that the app works consistently across different browsers, versions, and OSes. You build the matrix not from "all browsers" but from audience traffic analytics and risk: a full browser × OS × resolution sweep is infeasible, so you trim it with prioritization and a pairwise approach.
In depth:
- Start from data — analytics (GA, etc.) show the real browser/OS/device shares of your actual audience.
- Prioritize by coverage and risk — the combinations covering most users and critical flows (payment, sign-up) come first.
- Shrink the sweep — pairwise testing covers all pairs without the combinatorial explosion.
| Browser | Audience share | Priority |
|---|---|---|
| Chrome (Win) | 58% | P0 |
| Safari (iOS) | 22% | P0 |
| Chrome (Android) | 12% | P1 |
| Firefox / Edge | 6% | P2 |
| IE / others | 2% | not tested |
⚠️ Common mistake: being unable to justify the matrix ("I checked whatever was handy"). The interviewer wants the "audience data + risk + pairwise" reasoning, not a list of your favorite browsers.
What's the difference between mutable and immutable types?
What's the difference between mutable and immutable types?
Short answer: Mutable objects can change in place (list, dict, set); immutable objects cannot (int, str, tuple). Rebinding a variable is different from mutating its object.
items = [1, 2]
alias = items
items.append(3)
assert alias is items and alias == [1, 2, 3]
text = "hello"
original = text
text += " world"
assert original == "hello" # the original string did not change
In depth:
id()identifies an object and stays constant during its lifetime. Treating it as a memory address is a CPython implementation detail.- A tuple cannot replace its elements, but a list stored inside it can still change. Immutability is not automatically deep immutability or thread safety.
- Dictionary keys and set elements must be hashable: their hash stays stable, and equal objects have equal hashes. A tuple containing a list is unhashable. A user-defined mutable instance can be hashable by identity, so hashability is not synonymous with immutability.
- Functions receive references to objects. Mutating an argument can affect the caller; rebinding a local parameter does not rebind the caller's variable.
Sources: Python hashability, object identity.
Ready to make it stick?
Explore a sample, choose a track, and build a review routine that fits your preparation.
Questions about this track
How should I prepare for a QA Automation Engineer interview?
Study the concepts you'll be asked to explain, not just the ones you can code. RecallDeck's QA Automation Engineer track gives you 326+ curated interview questions and resurfaces each one with an Anki-style SM-2 schedule based on your ratings — to practise recalling and explaining them. Combine reviews with coding and mock interviews.
What topics does the QA Automation Engineer track cover?
The QA Automation Engineer track is organised into the core areas QA Automation Engineer interviews actually test, grouped by topic and by difficulty (Concept, Junior, Middle, Senior). You can preview the full outline and sample questions above before signing in.
Is spaced repetition effective for QA Automation Engineer interview prep?
Yes. Active recall and spaced practice can help retain what you study. Grade yourself honestly and check your understanding with practical work. RecallDeck schedules each QA Automation Engineer card using your ratings, so familiar cards return less often and difficult ones get more practice.
Can I try the QA Automation Engineer track before paying?
Eligible new monthly or yearly subscribers can try the complete QA Automation Engineer track and every feature for seven days. Checkout confirms trial eligibility and the amount due; returning subscribers may be charged immediately. Cancel online before the trial ends to avoid its first charge. Lifetime access has no trial.