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
15 detailed answers
A recorded source review is available for 2 of 15 answers. Each reviewed answer lists its date and scope.
01What is the difference between verification and validation?
junior
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.
02What are the test levels and who owns each one?
junior
Short answer: ISTQB CTFL 4.0.1 distinguishes five levels: component, component integration, system, system integration, and acceptance testing. A level describes the test object and objectives, not a mandatory job title. Ownership depends on the team and context.
In depth:
| Level | Object and objective | Typical participants |
|---|---|---|
| Component (unit) | an individual component in isolation | developers |
| Component integration | interfaces and interactions between components | developers and testers |
| System | behavior and qualities of the whole system | testers and the development team |
| System integration | interfaces to other systems and external services | teams responsible for the integrated systems |
| Acceptance | user/business needs and readiness for use | business representatives, users, operations, and testers |
- Separate integration scopes — checking modules within a product differs from checking the product's contract with an external system.
- Acceptance is broader than UAT — it also includes operational, contractual, and regulatory acceptance.
- Levels and the pyramid — the test pyramid helps discuss the distribution and cost of checks; it does not mandate a universal test count at each level.
⚠️ Common mistake: presenting the older four-level scheme as current CTFL, or assigning system testing exclusively to QA. Also distinguish level from purpose: regression and performance checks can apply at several levels.
03What types of testing do you know and how do you classify them?
junior
Short answer: It's better not to list testing types flat but to arrange them along classification axes: by goal (functional / non-functional), by code knowledge (black / white / grey box), by automation level (manual / automated), and by stage/purpose of the run (smoke, regression, acceptance). Structure matters more than list length.
In depth:
- By goal — functional (what the system does) vs non-functional (performance, security, usability).
- By code access — black box (no code), white box (full knowledge), grey box (partial).
- By automation — manual vs automated.
- By stage/purpose of the run — smoke, sanity, regression, acceptance.
| Classification axis | Options |
|---|---|
| Goal | functional / non-functional |
| Code knowledge | black / white / grey box |
| Automation | manual / automated |
| Run stage | smoke / sanity / regression / acceptance |
⚠️ Common mistake: dumping a pile of terms ("load, smoke, regression, usability…") with no grouping logic. The interviewer is scoring systematic thinking, not the length of the list.
04What do teams usually mean by smoke and sanity testing, and why should the terms be agreed on?
junior
Short answer: Smoke usually means a small set of core-function checks to decide whether a build is ready for further testing. Sanity is less consistent terminology: teams may use it similarly to smoke or for a quick check of a changed area. The strict formula “smoke is broad/shallow, sanity is narrow/deep” is not universal.
In depth:
- Smoke suite — for example, the app starts, login works, and a core user journey succeeds. Choose by risk; “broad” does not mean testing the whole product.
- Sanity in a particular team — establish whether it means build viability or a limited check after a change. The name does not define depth or guarantee coverage.
- Confirmation/retesting — repeat the check that exposed a defect to confirm the fix. Regression testing looks for unwanted effects of a change; these are distinct objectives regardless of suite names.
- Practical contract — specify scenarios, environment, triggers, and pass criteria. Both smoke and localized checks can be manual or automated.
⚠️ Common mistake: arguing over names instead of scope, or treating a quick sanity check as a replacement for regression. In an interview, name your convention and clarify the context.
05What is the difference between regression testing and retesting?
junior
Short answer: Retesting confirms that a specific reported bug is fixed — you run exactly the same steps as in the bug report. Regression checks that this fix (or any other change) didn't break the rest of the previously working functionality around it.
In depth:
- Retest — follows the steps of a specific defect, expecting the bug to no longer reproduce. Runs only on the specific fixed bugs, case by case.
- Regression — a suite over adjacent and key functionality; answers "did anything that used to work break?" A strong automation candidate since it repeats every release.
- Order — retest first (is the bug closed?), then regression around it.
bug fix #123
│
┌──────┴───────┐
▼ ▼
retest #123 regression
(same steps) (adjacent features —
bug gone? nothing broke?)
⚠️ Common mistake: conflating the two — "I retested, so I did regression." Retest is about one bug via the same steps; regression is about the survival of everything else.
06What is the difference between black-box, white-box, and grey-box testing?
junior
Short answer: The axis of difference is how much the tester knows about the system's internals. Black box — only input/output, the user's view, no code access. White box — full knowledge of code and structure (unit tests, branch coverage). Grey box — partial knowledge: e.g. you know the DB schema and API but not the source.
In depth:
- Black box — test behavior against requirements without looking at code. Techniques: equivalence classes, boundary values. The end-user's view.
- White box — test structure: branches, conditions, paths. Requires code access; typical for developers and unit tests.
- Grey box — a hybrid: some internals are known (DB structure, API contracts), which helps prepare data and check integrations more precisely.
| Approach | Code knowledge | Who and techniques |
|---|---|---|
| Black box | none | QA; equivalence, boundaries |
| White box | full | dev; branch/path coverage |
| Grey box | partial | integration, security, API |
⚠️ Common mistake: confusing these methods with test levels (unit / integration / system). A box approach is about code access, a level is about object scope; different approaches can apply at the same level.
07What are SDLC and STLC and how do they relate?
junior
Short answer: SDLC (Software Development Life Cycle) is the whole product development lifecycle from idea to maintenance. STLC (Software Testing Life Cycle) is the testing cycle inside it: from requirements analysis to test closure. STLC doesn't run "after development" — it's woven into the SDLC from the earliest phases (shift-left).
In depth:
- SDLC — phases: requirements → design → development → testing → deployment → maintenance.
- STLC — phases: requirements analysis → planning → test case design → environment setup → execution → closure.
- Relation (shift-left) — testing starts already at requirements analysis (finding ambiguities and contradictions statically), not only on a finished build.
Req. analysis → Planning → Case design
→ Environment setup → Execution → Closure
⚠️ Common mistake: treating SDLC and STLC as the same thing, or placing testing only "at the end, after development." An early STLC start (shift-left) catches defects when they're cheapest to fix.
08Name the seven ISTQB testing principles.
middle
Short answer: The seven ISTQB principles: testing shows the presence of defects, not their absence; exhaustive testing is impossible; early testing saves money; defects cluster; the pesticide paradox; testing is context-dependent; the absence-of-errors fallacy.
In depth:
- Presence of defects — tests prove bugs exist but can never prove there are none.
- Exhaustive is impossible — you can't check every input combination; you need priorities and risk analysis.
- Early testing — the earlier a defect is found, the cheaper the fix (shift-left).
- Defect clustering — ~80% of bugs concentrate in ~20% of modules (Pareto principle).
- Pesticide paradox — the same tests stop finding new bugs over time; cases must be refreshed.
- Context-dependent — banking and a game are tested differently.
- Absence-of-errors fallacy — a product with no bugs that doesn't solve the user's problem is still a failure.
⚠️ Common mistake: confusing the "absence-of-errors fallacy" (all bugs found, but the wrong product) with "exhaustive testing is impossible" (you can't check everything). They are different principles.
09What is the testing pyramid and why should UI tests be the fewest?
middle
Short answer: The testing pyramid is a model for distributing automated tests across layers: many fast, cheap unit tests at the base, fewer API/integration tests in the middle, and a minimum of slow UI/E2E tests at the top. UI tests are fewest because they're the slowest, most brittle (flaky), and most expensive to maintain.
In depth:
- Unit (base) — thousands of tests, milliseconds, catch logic-level bugs, give the developer fast feedback.
- Integration / API (middle) — verify wiring and contracts; fewer of them, slower.
- UI / E2E (top) — few, run through the real interface; slow, break from any layout tweak, expensive to fix.
/\ UI / E2E — few, slow, flaky
/ \
/----\ Integration / API
/ \
/--------\ Unit — many, fast, cheap
⚠️ Common mistake: naming the layers but not explaining "why." The interviewer wants the reason specifically: feedback speed and maintenance cost. An inverted pyramid (lots of E2E) is the "ice-cream cone" anti-pattern.
10How does functional testing differ from non-functional testing?
junior
Short answer: Functional testing checks what the system does — whether behavior matches requirements (the "Pay" button charges the card). Non-functional checks how well it does it — performance, security, usability, reliability (payment completes in 2 seconds under load).
In depth:
- Functional — against functional requirements: login, search, checkout, calculations. The answer is "yes/no: works as in the spec."
- Non-functional — against quality attributes: speed, resilience under load, security, availability, convenience. The answer is measured in numbers (latency, RPS, uptime).
- Both are needed — a functionally correct but sluggish or insecure system is still unusable.
| Criterion | Functional | Non-functional |
|---|---|---|
| Question | what does it do? | how well? |
| Reference | functional reqs | quality attributes |
| Examples | login, search, payment | load, security, usability |
| Assessment | yes/no | metrics (ms, RPS, %) |
⚠️ Common mistake: giving definitions with no examples and no crisp "what it does" vs "how well" pair. An example on each side closes the question.
11What is the difference between load, stress, soak, and spike testing?
middle
Short answer: These are four kinds of performance testing distinguished by load profile. Load — expected/peak normal load. Stress — beyond capacity, to the breaking point. Soak (endurance) — moderate load over a long duration (memory leaks, degradation). Spike — a sharp short surge and return.
In depth:
- Load — hold the projected number of users; verify metrics (latency, RPS) stay within SLA.
- Stress — push load above normal to find the breaking point and see how the system degrades and recovers.
- Soak / endurance — hours-to-days under load; catch memory leaks, log bloat, degradation over time.
- Spike — an instant surge (a sale, a mailout) and a sharp drop; verify elasticity and auto-scaling.
| Type | Load profile | What we look for |
|---|---|---|
| Load | expected peak | SLA compliance |
| Stress | beyond the limit | the breaking point |
| Soak | long, steady | leaks, degradation |
| Spike | sharp surge | elasticity |
⚠️ Common mistake: conflating load and stress. Load is "can it handle normal load," stress is "where does it break and how does it behave past the limit." Even a manual QA is expected to know this taxonomy.
12What is exploratory testing and when does it beat scripted test cases?
middle
Short answer: Exploratory testing is the simultaneous learning of the product, test design, and test execution without pre-written scripts, guided by the tester's experience and judgment. It beats scripts on new or poorly specified features, on usability, and on hunting edge cases where you can't foresee every check in advance.
In depth:
- Essence — the tester learns on the fly: the result of each step suggests the next one. Design and execution are fused.
- When it wins — a new feature with no clear requirements, usability, "what if," hunting non-obvious bugs, no time for formal cases.
- Session-based (SBTM) — to keep it from being chaos: a fixed time-box (60–90 min), a charter (session goal), and notes as you go.
| Criterion | Exploratory | Scripted |
|---|---|---|
| Scenarios | on the fly | written in advance |
| Strong on | new, unclear, UX | stable, regression |
| Governance | charter + sessions | test cases |
| Repeatability | lower | high |
⚠️ Common mistake: calling exploratory "chaotic clicking with no plan." It's a structured approach: session-based testing, charters, and session logs make it manageable and reportable.
13What are static and dynamic testing? Give examples.
middle
Short answer: Static testing checks artifacts without executing the code — reviews and analysis. Dynamic testing checks the system during execution — an actual run with input data. Static catches defects earlier and cheaper; dynamic verifies actual behavior.
In depth:
- Static — requirements reviews, code inspection, walkthroughs, static analysis (linters, SonarQube). Finds defects in documents and code before running, often at the requirements stage.
- Dynamic — running test cases, unit/integration/system, load testing. Requires a compiled, runnable build.
- Economics — fixing a defect found at requirements review is many times cheaper than in production; hence the value of static testing and shift-left.
| Criterion | Static | Dynamic |
|---|---|---|
| Code execution | no | yes |
| Examples | review, analysis, inspection | unit, E2E, load |
| When | from requirements onward | on a finished build |
| Catches | defects in artifacts | behavioral failures |
⚠️ Common mistake: believing testing only starts with a finished build. That contradicts the early-testing principle: static checks of requirements are full-fledged testing too.
14What is the pesticide paradox and how do you deal with it?
concept
Short answer: The pesticide paradox is one of the ISTQB principles: if you run the same set of tests over and over, it eventually stops finding new defects. Just as pests grow resistant to a pesticide, the code becomes "immune" to unchanged tests — they only check what has long been working.
In depth:
How to deal with it:
- Regularly review and update cases — add new checks for changed functionality and for bugs found in production.
- Add exploratory sessions — unscripted testing finds what a fixed set misses by definition.
- Vary the test data — new inputs, boundary values, combinations, not the same dataset every time.
- Rotate and prune the suite — retire stale cases, write new ones for emerging risks.
⚠️ Common mistake: reading a green regression run as "there are no bugs." Consistently green unchanged tests more often mean they've simply stopped looking for anything new, not that quality is perfect.
15Are QA, QC, and testing the same thing?
junior
Short answer: No. QA (Quality Assurance) is about processes and defect prevention — process-oriented. QC (Quality Control) is about controlling the quality of the finished product — product-oriented. Testing is a tool inside QC. The relationship is nested: QA ⊃ QC ⊃ testing.
In depth:
- QA — builds processes, standards, reviews so defects don't arise (proactive, about the process). Example: introducing code review and a Definition of Done.
- QC — checks the finished product against requirements, catching defects already made (reactive, about the product).
- Testing — a concrete QC activity: executing test cases, finding bugs.
┌──────────────────────────────┐
│ QA — processes, prevention │
│ ┌────────────────────────┐ │
│ │ QC — product control │ │
│ │ ┌─────────────────┐ │ │
│ │ │ Testing │ │ │
│ │ └─────────────────┘ │ │
│ └────────────────────────┘ │
└──────────────────────────────┘
⚠️ Common mistake: using QA, QC, and testing as synonyms. The key distinction: QA prevents defects (process), QC detects them (product), and testing is one particular detection method.
Source notes
References and review policy
Source links provide further reading. Where a recorded technical review is available, the answer shows its date and scope. Tool selections use direct provider links and contain no affiliate placements. Sources, features, and hiring formats can change.
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.