Describe the risk first, then choose the smallest test layer that provides useful evidence. A tool name without an oracle or failure model is not a test strategy.
Question set
11 detailed answers
01How does severity differ from priority? Give an example of high severity but low priority.
middle
Short answer: Severity is the technical impact of a defect on the system (how badly it's broken) and is set by QA. Priority is the business urgency of the fix (how fast it must be fixed) and is set by the PM or lead. They're two independent axes: a bug can be both very severe and not urgent at all.
In depth:
- Severity — an objective trait: crash, data loss, blocked feature vs. cosmetics. The tester sets it.
- Priority — a subjective business call: how many users are hit, reputation, release deadlines. The PM/product owner sets it.
- Why they're separate — resources are limited, so the fix queue is ordered by priority, not by severity.
| Example | Severity | Priority |
|---|---|---|
| Typo in the CEO's name on the homepage | Low | High |
| Crash in a rarely-run admin report | High | Low |
| Payment fails for everyone | High | High |
| Misaligned padding in the footer | Low | Low |
⚠️ Common mistake: conflating the axes or assuming high severity automatically means high priority. The interviewer is listening for exactly who owns each axis: severity is QA, priority is the business.
02Describe the bug lifecycle: what statuses does a defect go through?
junior
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.
03What makes a good bug report?
junior
Short answer: A clear title, environment (OS/browser/build), preconditions, reproduction steps, expected and actual result, severity/priority, and attachments (screenshot, log, video). A good report lets the developer reproduce it without a single follow-up question.
In depth:
| Field | What to write |
|---|---|
| Title | Concise: where + what's broken (avoid "doesn't work") |
| Environment | OS, browser/device, build version |
| Preconditions | State before the steps: role, data |
| Steps | Numbered, reproducible |
| Expected | What should have happened |
| Actual | What actually happened |
| Severity/Priority | Impact and urgency |
| Attachments | Screenshot, log, video, HAR |
⚠️ Common mistake: the most frequent omission is not separating "expected vs. actual." Without an explicit expected result, the developer can't tell whether it's a bug or intended behavior, and the report turns into an argument.
04What is the Definition of Done and what is QA's role in it?
junior
Short answer: The Definition of Done (DoD) is a shared, team-agreed checklist of criteria that, when met, mark a task as complete. The QA part of the DoD must be concrete and measurable: test cases written and executed, no open critical/high bugs, regression passed.
In depth:
- DoD is shared by the team — code review done, tests green, documented, deployed to staging.
- QA gates in the DoD — the specific items testing owns:
[ ] Test cases written and cover the acceptance criteria
[ ] All test cases executed on the target environment
[ ] No open Critical / High bugs
[ ] Regression of affected areas passed
[ ] Bugs filed and accepted by development
- Why — the DoD kills "done / not done" arguments and stops an under-tested task from slipping into a release.
⚠️ Common mistake: the vague phrase "testing complete" with no measurable criteria. "Complete" means how many cases, which regression, what bug threshold? Without numbers the DoD does nothing.
05What do you do when requirements are incomplete or contradictory?
junior
Short answer: Don't guess in silence — act proactively: clarify with the BA/PM/analyst, record your assumptions in writing in the test plan, and raise the ambiguity as early as possible — at requirements review, not once the bug is already on production.
In depth:
- Clarify at the source — ask specific questions of the analyst, PM, or product owner, not the tester next to you.
- Record assumptions — if there's no immediate answer, write your assumption in the test plan and explicitly flag it as an assumption.
- Raise it early — a contradiction caught at requirements review is cheap; caught in testing it's expensive; on production it's very expensive.
- Document it — leave a trail in the ticket/chat so the decision is traceable.
Unclear requirement
│
├─► Ask BA/PM ──► Answer ──► Test per the answer
│
└─► No answer ──► Assumption in test plan ──► Flag to team
⚠️ Common mistake: passively complaining that "the requirements are bad" and then silently guessing the behavior during execution. The interviewer is checking for proactivity, not for a high tolerance for pain.
06A developer says 'it's not a bug, it's a feature.' What do you do?
middle
Short answer: Argue with evidence, not opinions: show the requirement, spec, or acceptance criteria the behavior violates, and explain the impact on the user and business. If there's no consensus, the PM/BA arbitrates and the disagreement is documented. The interviewer is checking communication maturity, not who is technically right.
In depth:
- Check the spec — is there an explicit requirement or acceptance criterion? If yes, it's a bug, case closed.
- Show the impact — on the user, conversion, data; facts instead of "I think."
- Spec is silent — then it's a requirements ambiguity: a separate problem for the BA/PM.
- Escalate to an arbiter — the PM/product owner decides, not the loudest voice.
- Document it — record the decision in the ticket so you don't re-argue it later.
Dispute ──► Spec/AC? ──yes──► Bug, fix it
│
no
▼
Impact on the user? ──► PM/BA arbitrates ──► Decision in ticket
⚠️ Common mistake: dropping into a personal "bug / not a bug" fight on emotion, or silently closing the ticket. The right move is to return to the requirements and escalate through process while keeping the working relationship intact.
07Tell me about the worst bug you ever let slip into production.
middle
Short answer: Answer with STAR and honestly: take ownership without shifting blame, walk through the root cause, and — most importantly — name the concrete process change that came out of it (a new regression check, better test data, monitoring). They're grading your reaction, not the bug itself.
In depth:
S — Situation: a payments release, Friday, tight window.
T — Task: I owned the checkout regression.
A — Action: I didn't test "discount + foreign card" combined.
R — Result: ~8% of payments failed for 3h; rolled back, fixed.
Lesson: added that case to regression + an error-rate alert.
- Ownership — "I missed it," not "the developer wrote a bug" or "they gave me no time."
- Root cause — why you missed it: a gap in test design, an uncovered combination, an unstable environment.
- Process change — a new regression case, monitoring/alerts, test-data review. This is the heart of the answer.
⚠️ Common mistake: telling a dramatic story with no takeaway — what actually changed afterward. A bug with no process change sounds like it'll happen again tomorrow.
08How does a tester's work change in Agile versus Waterfall?
junior
Short answer: In Waterfall, testing is a separate late phase after all development is done. In Agile, testing runs continuously every sprint and QA is embedded from the requirements stage — that's shift-left. The tester stops being the "last line of defense" and becomes part of the team from day one.
In depth:
| Aspect | Waterfall | Agile |
|---|---|---|
| When we test | separate phase at the end | every sprint, continuously |
| QA involvement | after development | from requirements (shift-left) |
| Feedback | slow, at the end | fast, every iteration |
| Documentation | heavy test plans | lightweight checklists, automation |
| Tester's role | gatekeeper at the exit | team member, joins grooming |
⚠️ Common mistake: failing to name shift-left, or describing the same waterfall model under the word "Agile" — "we built everything first, then tested in the sprint before release." The essence of Agile is exactly early and continuous QA involvement.
09How do you estimate testing effort? What is Planning Poker?
middle
Short answer: Don't give one gut-feel number — decompose the work and estimate with techniques. Planning Poker is a team estimate in story points: everyone privately picks a card from a Fibonacci range (1, 2, 3, 5, 8, 13…), then all reveal at once — which removes anchoring on the loudest person's opinion.
In depth:
- Decomposition — split the feature into areas/test types (functional, regression, integration) and estimate the parts.
- Planning Poker — Fibonacci cards, simultaneous reveal; divergent estimates get discussed, not blindly averaged.
- Triangulation — compare to a similar past task: "this is roughly like the one that took 3 days."
- Risk buffer — unstable environment, new integrations, incomplete requirements — add a buffer.
| Technique | Gist |
|---|---|
| Planning Poker | team, Fibonacci cards, synchronous reveal |
| Triangulation | anchor to similar tasks |
| Decomposition | a sum of small estimates beats one big one |
| PERT | (opt + 4×likely + pessim) / 6 |
⚠️ Common mistake: naming one number with no decomposition and no risk allowance. An estimate is a range plus a rationale, not a shot in the dark.
10What is the difference between an error, a defect, and a failure?
junior
Short answer: An error (mistake) is a human mistake; a defect (bug, fault) is its material trace in the code or another artifact; a failure is the defect surfacing at runtime, when the system behaves differently than expected. It's a cause-and-effect chain in ISTQB terminology.
In depth:
- Error — a human erred: misread a requirement, mistyped a formula.
- Defect — that error became embedded in an artifact: a line of code, a spec item, a test case.
- Failure — the defect fired at runtime: the user saw a wrong result or a crash.
Error Defect Failure
(a human) ──► (in code/artifact) ──► (at execution)
misread a bug in a line system crashed
the requirement or the spec / returned wrong
⚠️ Common mistake (and a bonus to the answer): assuming every defect inevitably causes a failure. It doesn't: a defect in dead code or on an unreachable branch never executes and never produces a failure.
11When do you run smoke tests in a CI/CD pipeline and why?
junior
Short answer: Right after build and deploy, before deep testing — as a fast gate. Smoke checks that the critical core works at all (the app came up, login passes, the main screens open). A red smoke blocks the later pipeline stages so you don't run an hour-long regression against an already-dead build.
In depth:
- When it runs — immediately after build/deploy, as the first automated step.
- Gate role — green smoke = the build is alive enough to test deeper; red = stop, there's no point going further.
- What it covers — only the basic critical paths, fast (minutes, not hours); it is not regression.
build ──► deploy ──► SMOKE ──green──► regression / e2e
│
red
▼
build rejected, pipeline stops
⚠️ Common mistake: reciting the definition "smoke is a shallow check" without tying it to a specific pipeline moment. A strong answer names exactly "right after deploy, as a gate before the deep run."
Source notes
References and review policy
RecallDeck’s interview answers are editorial material, reviewed against maintained official documentation where a primary reference is available. Tool selections use direct provider links and contain no affiliate placements. Features can change after the review date.
From reading to recall
Practice the full interview loop.
RecallDeck schedules the concepts you miss and keeps coding, design, and behavioral fundamentals available when the interviewer changes direction.