Same Word, Different Flow

Cancel and Terminate sounded like one journey. Different actor, different entry point, different charging rules — and a test written with the wrong actor passes for the wrong reason.

Everyone on the programme said "cancellation."

There were two journeys behind that word, and they had almost nothing in common.

What the Word Was Hiding

Cancel applies before the point of no return, when the service has not gone live yet. It is run by one agent role, from the order record. No early termination charge, ever.

Terminate applies to an active service. Different agent role, and the entry point is a button on the account, not the order. Whether a termination charge applies depends on the cool-off period.

Different actor, different entry point, different charging rule. The only thing they share is the everyday word people use in stand-ups.

And the roles are not interchangeable in a soft, cultural way — they are separated by profile. The termination button is invisible to the other role. Not greyed out. Not permission-denied on click. Absent.

Why a Wrong Actor Gives a False Pass

This is the part that makes it a testing problem rather than a vocabulary problem.

If you write the termination test with the wrong actor and hand it to someone, they log in, cannot find the button, and report the test as blocked or failed. That is the good outcome — noisy, but recoverable.

The bad outcome is subtler. A tester with a broadly-permissioned account can see everything, completes the journey, and passes the test. The scenario worked. It worked for a user who does not exist in production.

So the pass is real and the coverage is fictional, and nothing in the result distinguishes the two.

It Was in the Decisions File for Days

The actor for that journey was documented as "either of two agent roles." Wrong. It is one, and cross-referencing a single older story is what corrected it.

The wrong value sat in the decisions file for days, which means every test case authored in that window inherited it.

That is the cost profile of an actor error. It is not one bad test — it is every test written from the same assumption, and they all look fine, because they are internally consistent with a premise nobody re-checked.

Actor identification belongs in test design, not in test execution. By the time you discover the wrong actor during a run, you have already spent a cycle: authoring, review, environment setup, execution, and the triage conversation about why the button is missing.

The Split Test

When two flows share a colloquial name, split them before designing anything. Five questions, and if any answer differs, they are separate journeys with separate test sets.

  • Who performs it? Named role, and check the profile actually grants the entry point. Log in as that persona and touch the screen — a stakeholder saying "the roles are configured" is not the same as the screen being there.
  • Where does it start? Which record, which button, which app. Two journeys that begin on different objects are not variants of each other.
  • What is the state of the thing being acted on? Pre-activation versus active service is not a parameter. It is a different system state with different downstream consequences.
  • What money moves? If one path can raise a charge and the other cannot, that alone justifies separate scenarios.
  • What does the system do afterwards? Different downstream processes mean different assertions, regardless of how similar the click path looks.

Why This Happens to Good Teams

Nobody chooses ambiguity. The shared word arrives from the business, where it is genuinely one concept — the customer is leaving — and it stays because at the level where most conversations happen, the distinction does not matter.

It only matters in three places: permissions, charging, and test design. Two of those are invisible from a meeting.

So the drift is structural rather than careless, and the countermeasure has to be structural too. In the decisions file, in the test suite, in the scenario names: use the two words, never the umbrella one. It reads as pedantry for about a week, and then somebody new joins and it reads as clarity.

Which word on your programme is doing the work of two — and has anyone written down the difference?