Prove the first journey with 15 repeatable tests
Create repeatable evidence that the first journey works, fails safely and remains safe after future changes.
01 · Understand
Why this issue exists
A demonstration proves the bot worked once. A test suite defines what “Done” continues to mean.
02 · Investigate
Quality challenge
Prove something did not happen
A personal eligibility question returns a refusal. That is not enough evidence: search may still have run first. The strongest test replaces search with a function that fails immediately if called.
- 1Which behaviours are release-blocking?
- 2How do you prove search was never called?
- 3Why should each test have one clear reason to fail?
- 4Which scenarios should be parametrised?
03 · Decide
Which failing test must stop a release?
04 · Make the thinking visible
Team workspace
Discuss first, then record the team’s reasoning. These notes stay in this browser until you copy them.
Include input, expected result and BLOCKING or MAJOR severity.
Explain how the suite covers supported, personal, unsupported, invalid, evidence, error and bypass cases.
Describe the dependency you will replace and what must never call it.
05 · Scaffold
Write the assertions yourselves
The scenario shape is provided, not the answer key. Begin with one supported and one release-blocking case, then parametrise stable variations.
@pytest.mark.parametrize(
("question", "expected_kind", "severity"),
[
# Add synthetic scenarios from your agreed inventory.
],
)
def test_first_journey(question, expected_kind, severity):
result = answer(question)
# Assert one clear behaviour.
...06 · Prove it
Evidence checklist
Tick an item only when the team can show the evidence and another student can explain it.
Push further
Stretch challenge
Deliberately move authority below search on a temporary branch. Confirm that the negative proof fails for the right reason, then restore the safe order.