Test Process & Management
Test planning and management — strategy vs plan, analysis vs design, coverage and traceability, SDLC models, and release-level testing types.
12 questions
MiddleTheoryVery commonHow do you know your test coverage is sufficient (traceability matrix)?
How do you know your test coverage is sufficient (traceability matrix)?
Tie coverage to requirements, not just to code lines. A traceability matrix maps each requirement to the test cases that verify it, so a requirement with no linked case is a visible gap. Combine that with risk: ensure high-risk areas are covered first. Coverage is sufficient when every requirement is traced and residual risk is acceptable.
Common mistakes
- ✗Equating code-line coverage with requirements coverage
- ✗Counting cases instead of linking them to requirements
- ✗Ignoring risk when deciding what to cover first
Follow-up questions
- →What does a row with a requirement but no test case tell you?
- →Why is 100% code coverage not the same as full coverage?
MiddleTheoryVery commonHow does testing a product with documentation differ from one without?
How does testing a product with documentation differ from one without?
With documentation you test against a spec — deriving cases from requirements and checking conformance. Without it, you rely on exploratory testing: learning the product by using it, building a mental model, and judging behavior against common sense and analogous products. On undocumented behavior, do not assume it is a bug — flag it, ask the analyst or PO, and get the expectation confirmed before reporting.
Common mistakes
- ✗Filing undocumented behavior as a bug without confirming
- ✗Thinking no testing is possible without a spec
- ✗Ignoring exploratory testing and mental-model building
Follow-up questions
- →What do you do when you find behavior the spec does not mention?
- →How do you decide a feature is done and ready to ship without docs?
SeniorTheoryVery commonWhat is the test pyramid, and how do you apply it on a project?
What is the test pyramid, and how do you apply it on a project?
The test pyramid prescribes many fast, cheap unit tests at the base, fewer integration/service tests in the middle, and few slow, brittle UI/e2e tests at the top. It balances speed, cost, and confidence. Applying it means pushing each check to the lowest level that can catch the bug, and avoiding the ice-cream-cone anti-pattern of too many UI tests and too few unit tests.
Common mistakes
- ✗Inverting the pyramid (most UI tests at the base)
- ✗Not pushing checks to the lowest level that catches the bug
- ✗Failing to name the ice-cream-cone anti-pattern
Follow-up questions
- →Why is the ice-cream-cone shape considered an anti-pattern?
- →How do you decide which level a given check belongs at?
JuniorTheoryCommonHow do Waterfall, Scrum, and Kanban differ as development models?
How do Waterfall, Scrum, and Kanban differ as development models?
Waterfall runs sequential phases (requirements → design → build → test → release) with little overlap and late testing. Scrum is iterative: fixed-length sprints deliver increments, with roles Product Owner, Scrum Master, and the development team. Kanban is continuous flow with no sprints — work is pulled across a board under WIP (work-in-progress) limits.
Common mistakes
- ✗Mixing up which model is sequential and which is iterative
- ✗Attributing sprints to Kanban or WIP limits to Scrum
- ✗Forgetting the three Scrum roles (PO, SM, dev team)
Follow-up questions
- →Where does testing fit in Waterfall versus Scrum?
- →What problem do WIP limits solve in Kanban?
MiddleTheoryCommonWhat is A/B testing, and how does it differ from functional testing?
What is A/B testing, and how does it differ from functional testing?
A/B testing splits live traffic between two variants (A and B) and measures which performs better against a metric — e.g. does a green "Buy" button beat a red one on conversion? It is an experimentation/optimization technique, not defect-finding: it compares outcomes statistically rather than checking behavior against requirements like functional testing does.
Common mistakes
- ✗Treating A/B testing as a defect-finding (functional) technique
- ✗Confusing it with running one case twice or cross-browser testing
- ✗Forgetting it needs a measurable metric on live traffic
Follow-up questions
- →What metric would you pick for A/B testing a checkout button?
- →Why does A/B testing need a statistically meaningful sample?
MiddleTheoryCommonWhat is the difference between alpha and beta testing?
What is the difference between alpha and beta testing?
Alpha testing happens internally, before release, at the developer's site — done by internal staff (often QA or selected employees) in a controlled environment. Beta testing happens externally, later in the cycle, in the real environment of actual end users who report issues from production-like usage. Alpha is in-house and earlier; beta is in-the-wild and later.
Common mistakes
- ✗Reversing which is internal/early (alpha) and external/late (beta)
- ✗Saying beta never involves real end users
- ✗Thinking both happen only inside the company
Follow-up questions
- →Why run alpha before exposing the build to beta users?
- →What kind of feedback do you uniquely get from beta testing?
MiddleTheoryCommonHow does static testing differ from dynamic testing, and where do reviews fit?
How does static testing differ from dynamic testing, and where do reviews fit?
Static testing examines artifacts without running the code — reviews, walkthroughs, and inspections, plus static-analysis tools. Dynamic testing executes the software and checks its behavior. Static finds defects earliest and cheapest, before code exists. Reviews are its core manual form: a peer review of test cases or requirements catches ambiguity a dynamic run could not surface as cheaply.
Common mistakes
- ✗Swapping which type executes the code
- ✗Excluding reviews and inspections from static testing
- ✗Missing that static testing catches defects before code exists
Follow-up questions
- →Which defects does a requirements review catch that dynamic testing cannot cheaply?
- →Name two static-analysis checks a tool performs without running code.
MiddleTheoryCommonWhat is the difference between a test strategy and a test plan?
What is the difference between a test strategy and a test plan?
A test strategy is a high-level, often organization- or product-wide document describing the general approach to testing — levels, types, tools, standards — and it changes rarely. A test plan is project- or release-specific and derived from the strategy: it sets scope, schedule, resources, environments, entry/exit criteria, and risks for that particular effort.
Common mistakes
- ✗Reversing which document is broad/stable and which is project-specific
- ✗Treating strategy and plan as fully interchangeable
- ✗Thinking the plan is derived independently of the strategy
Follow-up questions
- →Name three sections you'd expect only in a test plan.
- →Why does a strategy change less often than a plan?
MiddleTheoryOccasionalWhat is the difference between test analysis and test design?
What is the difference between test analysis and test design?
Test analysis answers WHAT to test: study the test basis (requirements, specs, risks) and derive the test conditions to cover. Test design answers HOW to test: turn those conditions into concrete test cases using techniques like equivalence partitioning, boundary-value analysis, and decision tables. Analysis identifies; design produces the cases.
Common mistakes
- ✗Swapping which step is WHAT (analysis) and which is HOW (design)
- ✗Skipping analysis and jumping straight to writing cases
- ✗Thinking design techniques belong to analysis
Follow-up questions
- →Name two test-design techniques you'd apply after analysis.
- →What is the test basis used during analysis?
MiddleTheoryOccasionalWhat is a test charter in session-based testing, and what structure does a session follow?
What is a test charter in session-based testing, and what structure does a session follow?
Session-based testing splits exploratory testing into time-boxed sessions (usually 60–120 min), each driven by a charter — a short mission stating what to explore, which areas or risks, and with what data. The tester logs findings and coverage in a session sheet, then holds a debrief. It makes exploratory testing accountable and reportable without scripting every step in advance.
Common mistakes
- ✗Treating a charter as fully scripted step-by-step cases
- ✗Running sessions with no time-box, sheet, or debrief
- ✗Confusing the charter with a final test-summary report
Follow-up questions
- →What belongs in a good session charter versus a scripted test case?
- →How does the debrief make exploratory coverage reportable?
MiddleDesignOccasionalYour team keeps hitting bugs that appear only in production and never in the test environment: a payment flow passes every test but fails for real users, and a report that renders in staging times out in prod. The test environment runs a smaller database, mocked third-party services, different OS and library versions, and no production-like traffic. Design how you would bring the test environment into parity with production and manage its configuration: which dimensions must match (data volume, service versions, network, secrets, feature flags), how you keep them in sync as prod changes, what you deliberately keep different and why, and how you would prove a given environment is a faithful mirror before trusting a release decision made on it.
Your team keeps hitting bugs that appear only in production and never in the test environment: a payment flow passes every test but fails for real users, and a report that renders in staging times out in prod. The test environment runs a smaller database, mocked third-party services, different OS and library versions, and no production-like traffic. Design how you would bring the test environment into parity with production and manage its configuration: which dimensions must match (data volume, service versions, network, secrets, feature flags), how you keep them in sync as prod changes, what you deliberately keep different and why, and how you would prove a given environment is a faithful mirror before trusting a release decision made on it.
Match the dimensions that change behavior: data volume, service and library versions, network, config, flags, secrets, and production-like load. Sync them via infrastructure-as-code so environments do not drift as prod evolves. Differ only where safety demands — masked data, sandbox credentials. Prove parity by comparing versions and config and smoke-running risky flows before a release decision.
Common mistakes
- ✗Ignoring data volume, versions, and load as behavior-changing dimensions
- ✗Cloning real production data instead of masking or synthesizing it
- ✗Letting the environment drift out of sync as production evolves
Follow-up questions
- →Which single environment difference most often causes a prod-only bug?
- →How would you prove an environment faithfully mirrors production?
SeniorDesignOccasionalYou join a new team with no testing process in place: there are no test cases, no documented entry/exit criteria, no bug workflow, and releases currently ship on the developers' gut feeling. Walk through how you would build a testing process from scratch. Cover how you'd assess the product and its risks, what documentation you'd introduce first, how you'd decide which suites to build (smoke, regression, exploratory), the bug-reporting workflow, and how you'd integrate testing into the release cycle and measure whether the process is working.
You join a new team with no testing process in place: there are no test cases, no documented entry/exit criteria, no bug workflow, and releases currently ship on the developers' gut feeling. Walk through how you would build a testing process from scratch. Cover how you'd assess the product and its risks, what documentation you'd introduce first, how you'd decide which suites to build (smoke, regression, exploratory), the bug-reporting workflow, and how you'd integrate testing into the release cycle and measure whether the process is working.
Start from the product, users, and risks — a risk-based approach decides where to invest. Introduce lightweight docs first (checklists, then cases for critical flows) and entry/exit criteria. Build a smoke suite for build acceptance and a growing regression suite; explore where specs are thin. Establish a bug workflow: report → triage by severity/priority → fix → verify. Integrate into the release cycle with CI gates and track metrics (escaped defects, coverage, cycle time) proving it works.
Common mistakes
- ✗Jumping to full automation before assessing product and risks
- ✗Skipping entry/exit criteria and a defined bug workflow
- ✗Defining no metrics to show whether the process actually works
Follow-up questions
- →Which would you build first — smoke or full regression, and why?
- →What single metric would best show the process is improving?