On this page
Is the handoff ready?
Use these checks before access expands or the first ticket begins.
Build
Ready: The tested commit, artifact, or deployment identifier is recorded.
Needs work: The note says only that the latest version was tested.
Reproduction
Ready: Steps, data, role, and environment are sufficient to repeat the check.
Needs work: A screenshot without the path that produced it.
Result
Ready: Expected and actual outcomes are separate and linked to evidence.
Needs work: A single word such as passed or failed.
Handoff
Ready: Open defects, blocked checks, and next owners are listed.
Needs work: The report ends with a total count and no follow-up.
Anchor evidence to a build
A QA note without a build identifier is a story about an unknown version of the product. Record the commit, artifact, deployment identifier, or release tag that was tested, plus the environment and the observation time. If the build changes during the test window, stop and record the new identifier rather than mixing results from two versions. The same discipline applies to configuration and data. A feature flag, tenant setting, browser version, or seeded role can change the result. Name the values that matter and use a fixture identifier for the data set. A later tester should be able to recreate the conditions without reading the original tester's browser history. When the product is delivered through a shared staging environment, note other changes that landed during the session. A failure observed after an unrelated deploy may belong to that deploy. The evidence should make the uncertainty visible instead of forcing the next person to guess.
Write reproducible steps
A reproducible step names the starting state, the action, the input, and the expected observation. Instead of saying to test checkout, describe the signed-in role, the cart contents, the payment method, the address condition, and the confirmation signal. The goal is not exhaustive prose; it is enough precision that another tester can reach the same decision. Include the boundary cases that define the risk. For a permissions change, test the allowed role, the denied role, and the expired-session path. For an upload, test the accepted type, the rejected type, the size limit, and the interrupted transfer. The chosen cases should connect to the acceptance criteria or a known production failure. Keep the test data separate from the evidence. A screenshot can show the result, but it should not become the only record of the input. If the data is sensitive, use a masked fixture and record its identifier rather than reproducing customer values in the report.
Separate expected from actual
The expected result comes from an approved requirement, design, or contract. The actual result is what the tester observed. Keeping them separate makes disagreement visible and prevents the tester from grading the product against a personal preference. If the requirement is ambiguous, mark the check as blocked or needing a decision rather than inventing an expected result.
Use a small result vocabulary such as pass, fail, blocked, and not run. Add a reason code for blocked checks: missing fixture, unavailable environment, unclear requirement, or dependency failure. A blocked check is not a pass, and a missing check is not evidence of absence. The distinction matters when a manager reads only the summary.
Attach evidence at the smallest useful granularity. One screenshot can support several steps, but the report should say which assertion it supports. A video may be necessary for animation, focus, or timing behavior. Logs may be the primary evidence for a background job. Use the medium that lets a reviewer verify the claim.
Make the handoff readable
Start the handoff with the scope, build, environment, and overall risk state. Follow with the failures that block release, then the checks that were not run, then the passing evidence. A reader should not have to scroll through a hundred green checks to find the one unresolved permission failure. List every open defect with an identifier, severity, affected path, and owner. If a defect is accepted for release, record the acceptance decision and the customer impact. The next sprint should inherit a decision, not a mysterious annotation that says known issue. Include a short note on what changed since the previous handoff. New fixtures, environment quirks, feature flags, and test-data limitations are easy to lose. The next tester needs the delta, especially when the sprint boundary also changes the people doing the work.
Close with an owner
A QA handoff is complete when every unresolved item has a named owner and a next action. That may be a developer who needs to fix a defect, a product owner who must clarify acceptance, or an environment owner who must restore a dependency. The report should not end with a request for someone to look into it. Schedule the next check when the evidence will expire. A test result from three builds ago may still be useful context, but it is not proof of the current artifact. State the build or date after which the evidence must be refreshed, and make the dependency visible in the release checklist. Finally, review a sample of the handoff with the person who will receive it. If they cannot reproduce one result or explain one blocked check, the format needs repair. The measure of a QA handoff is not how much it contains; it is whether the next owner can make a decision without reopening the original conversation.
Copy-ready brief
Put the operating agreement in writing.
Record the build, environment, fixture, role, and observation time for each result.
Write steps and inputs precise enough for a different tester to repeat the check.
Separate expected from actual, and never turn blocked or not-run into a pass.
List open defects, accepted risks, evidence expiry, and a named next owner.
Frequently asked questions
Is a screenshot enough evidence?
Only when it shows the assertion and the context needed to trust it. Pair it with the build, path, input, and expected result so the next reviewer can reproduce the observation.
How should blocked tests be reported?
Report blocked as its own result with a reason and an owner. Do not count it as passed, and do not omit it from the release summary.
What should the next sprint inherit?
The current build, open defects, accepted risks, unresolved requirements, fixture limitations, and the date when the evidence must be refreshed.
Sources
- ISO/IEC/IEEE 29119-3 software testing
Test documentation concepts used to structure the evidence record.
- NIST Secure Software Development Framework
Verification and review practices referenced for release evidence.
- GitHub Docs: Storing workflow data as artifacts
Artifact retention concepts used when linking build output to test evidence.
- OWASP Application Security Verification Standard
Security verification requirements relevant to test coverage and evidence.
