Test case
A repeatable check that proves one or more acceptance criteria, automated or run by a person.
What it is
A test case describes how to check a criterion: the steps or the automated test, the data, and the expected result. It has a level — unit, integration, end-to-end, manual or user acceptance — and a latest result: passed, failed, blocked or not run.
Why it matters
Tests are the evidence. A criterion someone says is met is an opinion; a criterion a passing test verifies is a fact that can be checked again tomorrow, after the next change, by anyone.
Linked to criteria, tests also show which requirements a failing build actually puts at risk.
What goes wrong without it
- Nobody knows which requirement a failing test protects, so failures are ignored or deleted.
- Requirements are "met" once and silently broken by a later change.
- Manual checks before release are improvised and different each time.
What it gives an AI agent
Agents write tests quickly, but they write them against their own code unless told otherwise. A test case linked to a criterion makes the agent test what the requirement needs, and its result — reported from CI, not from the agent's memory — is what moves the criterion to Met.
It also makes one kind of shortcut visible: an agent that weakens a test to make it pass changes a record people can see.
Example: Clinic Booking
| Weak | Strong |
|---|---|
| Test that rescheduling works. | End-to-end test "late move is refused": book a slot 1 hour ahead, try to move it, expect the refusal message and the original slot kept. Verifies FR-5C0A71/AC2. |
How it relates to the rest
- Verifies one or more acceptance criteria.
- A defect is usually closed with a test that proves the fix.
- Results can arrive from CI, from an agent, or from a person running it.
In Corpole
- Levels: unit, integration, end-to-end, manual, UAT. Statuses: Draft, Active, Obsolete.
- Only an Active test's latest result decides the criteria it verifies; a Draft test's results do not count yet.
- Agents propose tests (
propose_test_case) and report results (report_test_result); CI can report them too.