QA Interview Hub · Knowledge base · Quizzes

Manual QA

Test documentation

plans, cases, checklists, reports

What is a test plan and what is in it?

A document that describes what, how, when and by whom we test. Typical sections:

  • Scope: what we test and what we do not test.
  • Approach: test levels and kinds, manual or automated.
  • Environments, test data, tools.
  • Entry and exit criteria (when we start, when it is ready for release).
  • Risks and the plan of action for them.
  • Roles, schedule, artefacts.

In Agile a test plan is often shorter and alive: a page in Confluence for a release or a feature.

In an interview: A test plan describes what we test and what we don't, with what approach, on which environments and with which data, the entry and exit criteria, risks and roles. In Agile I keep it short and alive, for example a page in Confluence per release.

How does a test strategy differ from a test plan?

A strategy is the general approach to testing at the product or company level, and it changes rarely: which test levels, what we automate, which environments, standards, metrics.

A plan is the concrete application of the strategy to a project, a release or a feature: scope, schedule, people, risks.

In an interview: A strategy is the general approach to testing at the product level, and it rarely changes. A plan is the concrete application of the strategy to a release or a feature, with dates, people and scope.

What does a good test case consist of?

  • An ID and a clear title: what we check.
  • Preconditions: system state, user, data.
  • Steps: short, one action each.
  • The expected result: specific and verifiable.
  • Priority, link to a requirement, type (positive or negative).

The quality criterion: another tester will go through the case without questions and will assess the result the same way. One case, one check.

ID:        TC-PAY-014
Title:     A transfer that exactly exhausts the daily limit
Preconditions: The user is logged in, the daily limit is 10,000 UAH,
            9,000 UAH has already been transferred today, the balance is 5,000 UAH
Steps:
  1. Open "Transfer to card"
  2. Enter a valid recipient card number
  3. Enter the amount 1,000.00
  4. Confirm the transfer
Expected:  The transfer succeeds; the remaining limit is 0.00;
           the balance is 4,000.00 minus the fee per the tariff
Priority:  High   Requirement: REQ-LIM-03
In an interview: A good test case has a clear title, preconditions, short steps and a specific expected result, plus a priority and a link to a requirement. My criterion: another tester must be able to go through it without questions and assess the result the same way.

When test cases and when checklists?

A checklist is a list of checks without detailed steps. Quick to write and maintain, it fits an experienced team, smoke, exploratory, and stable simple parts.

A test case is a detailed scenario. It is needed for complex logic, new people on the team, regulatory requirements and scenarios that will later be automated.

In an interview: Checklists are faster, and I use them for smoke, exploratory sessions and stable simple parts. I write detailed test cases for complex business logic, for scenarios that will be automated, and where audit traceability is needed, as in fintech.

What is a traceability matrix?

A table of links "requirement → test cases → results → defects". It shows whether every requirement is covered by tests, what broke and which requirements a change will affect.

In Jira this is often done with links between stories, test cases (Zephyr, Xray) and bugs.

In an interview: A traceability matrix links requirements to test cases, results and defects. It shows that every requirement is covered and helps assess the impact of changes. In Jira I do this with links between stories, cases in Zephyr and bugs.

What should be in a test report?

  • What was tested: scope, build, environment, period.
  • Results: passed, failed, blocked, not executed.
  • Open defects by severity, especially blockers and critical ones.
  • Risks and what wasn't tested and why.
  • A recommendation: ready for release or not, with conditions.

A report is written for the people who make decisions, so the main thing is the conclusion and the risks, not tables of numbers.

In an interview: In a report I show what was tested and on which build, the execution results, open defects by severity, risks and what wasn't tested. And always a clear recommendation on the release, because the report is read by the people who make decisions.

How do you prepare test data?

  • Cover the classes: valid, invalid, boundary, empty, special characters.
  • Have different types of users: new, with history, blocked, with different roles and tariffs.
  • Create data through the API or SQL, not manually through the UI: faster and reproducible.
  • Don't use real personal data, only anonymised or generated.
  • Document where it lives and how to restore it.
In an interview: I prepare data for equivalence classes and boundaries, with different types of users. I create it through the API or SQL, so it is fast and reproducible, and I never use real personal data, only generated or anonymised.

Test case vs checklist

A test case is a detailed scenario: preconditions, steps, test data and the expected result for each step. A checklist is a short list of what to check, without a step-by-step description. A test case is reproducible by anyone, even a newcomer who doesn't know the product.

A checklist is quicker to write and maintain, but the result depends on the executor's experience. I choose test cases for critical functionality, complex business logic, regulatory requirements and as a basis for automation. Checklists are for smoke, stable parts of the product, exploratory sessions and when requirements change often.

In practice they are often combined: a checklist for broad coverage, test cases for key flows. The main criterion is the balance between the cost of documentation and the risk of missing a defect.

A quality test case

The basic structure: ID, title, preconditions, steps, test data, expected result, priority and a link to a requirement. The title must be short and describe exactly what we check, for example "Login with a wrong password shows an error". Each test case checks one thing, so that when it fails it is immediately clear what broke.

Steps are atomic and concrete: not "enter data" but "enter the value test@mail.com in the Email field". The expected result is measurable and unambiguous, without words like "works correctly". A test case must be independent of others and not depend on the order of execution.

A good test case is also easy to maintain: without unnecessary UI details that change often. And it must be traceable to a requirement, so that coverage is visible.