What test evidence is
It is the set of records that proves a test case was run: the steps taken, what the system showed at each one, the actual result and the environment. It is used to sign off a release, file a bug with context, answer an audit and rerun the test later. Without evidence, “works on my machine” becomes an argument.
What good test evidence includes
- Identification: test case, version or build, date, who ran it.
- Environment: URL, browser, operating system and screen size.
- Step by step with a screenshot of each relevant action, in order.
- Expected and actual result, side by side.
- Network: the requests on the screen with method, URL, status and request and response body — this is where developers find the cause.
- Console: JavaScript errors and warnings from the moment of the test.
- A format that opens anywhere: HTML report, GIF or video of the steps, and raw JSON data.
Manual vs automatic evidence
| Manual (screenshots + spreadsheet) | Automatic with Capto | |
|---|---|---|
| Screenshots | Take, crop and paste one by one | One per action, automatically |
| Steps | Written from memory after the test | Recorded during the run (clicks, inputs, navigation) |
| Network and console | Open DevTools and copy, if you remember | Captured together with the steps |
| Final format | Document or spreadsheet built by hand | HTML report, timeline GIF and JSON |
| Turning it into a bug | Copy everything into Jira/Azure DevOps | Send the ticket with the evidence attached |
Test evidence template
Test case: TC-042 — Apply coupon at checkout
Build / version: 2.8.1 Date: 2026-10-27 Run by: Ana (QA)
Environment: https://staging.example.com · Chrome 130 · macOS · 1440×900
Step 1 — Open the cart with 2 items [screenshot]
Step 2 — Enter the coupon WELCOME10 [screenshot]
Step 3 — Click "Apply" [screenshot]
Expected: 10% discount and updated total.
Actual: "Unexpected error" message; total does not change.
Status: FAILED → bug PROJ-318
Network: POST /api/cart/coupon → 500
request {"code":"WELCOME10"}
response {"error":"discount already applied"}
Console: Uncaught TypeError: Cannot read properties of undefined (reading 'total')
Attachments: evidence-TC-042.html · steps.gif · session.jsonHow to generate evidence with Capto
- Install the Capto extension in Chrome (it also works in Edge and Brave).
- Open the system under test and start recording in QA mode.
- Run the test case as usual. Every click, input and navigation becomes a step with a screenshot; network and console are recorded too.
- Stop recording and export the HTML report, the timeline GIF or the JSON.
- If it failed, send it straight to Jira or Azure DevOps as a bug, with the evidence attached and the AI analysis.
Best practices
- Record one test case per session: the evidence stays short and easy to review.
- Start from the initial state (clean screen, right user) so someone else can repeat it.
- Name the session with the test case ID so you can find it later.
- Avoid real data: Capto masks passwords, tokens and authorization keys before sending anything to the AI, but prefer test data.
- Keep the evidence with the ticket or test plan, not in loose folders.
Frequently asked questions
Does test evidence need video?
It is not required, but it helps a lot with flow bugs. A sequence of per-step screenshots (or a GIF) with network and console is usually enough and lighter than video.
What is the best format to store test evidence?
An HTML report opens in any browser with nothing to install; JSON keeps the raw data for reprocessing. Capto exports both, plus a GIF of the steps.
Is test evidence valid for audits?
Yes, as long as it includes the test case ID, date, environment, who ran it, steps and result. Those fields are in the template above.
Does it work in staging and production?
Yes. Capto is a browser extension and needs no SDK in the system under test, so it works locally, in staging or in production.