Case-level tests verify requirements; persona-based end-to-end scenarios verify that a week in the life of the business actually works. This playbook uses AI to design journey scenarios with negative paths and boundary cases — backed by synthetic-but-realistic test data, because production personal data in UAT is a DPDP/GDPR incident wearing a lanyard.
Workflow area: UAT & Testing · Tier: Core · Hands-on time: ~35 minutes
Two failure patterns meet in this playbook. First: UAT packs that pass every atomic test while the end-to-end journey — the return that arrives after the refund policy changed, the approver on leave mid-workflow — was never exercised, because nobody designed scenarios above the test-case level. Second: the near-universal shortcut of copying production data into the test environment "because it's realistic," which puts real customers' personal data in the least-controlled environment in the estate. AI fixes both at once: it is genuinely good at composing journey narratives from personas, and even better at generating data that is statistically realistic and legally boring.
Define the personas and journeys with the business, not the model. List the user types that matter — including the inconvenient ones (new joiner with no history, power user with edge-case permissions, customer mid-dispute) — and the journeys each must survive: the routine one, the exception one, the one that spans a period boundary. The AI expands this; it should not originate it.
Generate the scenario suite. With personas, journeys, and the requirements pack attached:
You are designing end-to-end UAT scenarios. Attached:
personas, journey list, requirements pack.
For each persona × journey, produce a scenario: SC-ID |
persona | narrative (3-6 sentences: realistic sequence of
business events over days/weeks, in business language) |
step table: day/step | actor | action | expected observable
outcome | requirements exercised (IDs).
For every scenario also produce:
- one NEGATIVE variant (a step fails, is refused, or is
abandoned midway — what should the system and process do?)
- one BOUNDARY variant (limits, cutoffs, period-ends,
permission edges).
Rules: scenarios must cross at least two modules or process
stages; cite requirement IDs per step; if a journey step has
no supporting requirement, flag REQUIREMENT GAP rather than
inventing behavior.
The REQUIREMENT GAP flags are elicitation findings in their own right — journeys are where missing requirements hide.
Specify the data before generating it. For each entity, write a one-line data spec with the distributions that matter: "5,000 customers: 60% consumer / 40% business, 8% with credit blocks, 3% with non-Latin names, ages 18–95, 2% sharing a surname and address (household, not duplicate)." Planted edge cases are the point — a dataset without awkward records tests nothing.
Generate synthetic data with realism rules and a no-real-people contract. Per entity:
Generate [N] synthetic [ENTITY] records as CSV matching this
schema: [FIELDS, TYPES, CONSTRAINTS].
Distributions: [PASTE SPEC]. Plant these edge cases with
flags in an extra qa_note column: [LIST].
Rules: names, addresses, emails, phone numbers, and IDs must
be plausible in format but verifiably fake — use reserved
test ranges where they exist (e.g. 555 phone prefixes,
example.com emails, invalid-checksum tax IDs). Never emit a
real person's name-plus-address combination. Referential
integrity: child records must reference generated parent
keys only. Include a data dictionary listing every rule.
For volumes beyond chat scale, have the AI write a generation script (Python/Faker) instead — same spec, same rules, repeatable on demand.
Validate the data like you'd profile a source. Run a quick profile (see the data-profiling playbook): distributions match spec, referential integrity holds, planted edge cases are present and flagged, and formats pass the target system's validation. Then load and smoke-test one scenario end to end before UAT week — data that will not load is the most common UAT day-one delay.
Walk the scenarios with the business owner and script the residue. Owners review scenario narratives fast because they read like the actual business. Capture their corrections ("returns never skip inspection — who told you that?") as scenario fixes and, where the correction contradicts a requirement, as change findings. Final pack: scenario suite with negative and boundary variants, generated datasets plus dictionary and generation script, and the REQUIREMENT GAP log routed back to the requirements owner.
Copying production personal data into UAT environments — even "masked" — creates a processing activity most legal bases do not cover and DPDP/GDPR regulators explicitly scrutinize; synthetic generation is not the cautious option, it is the compliant one, and any teammate's shortcut extract is worth escalating.
Atomic tests prove the system meets requirements; persona scenarios on deliberately awkward synthetic data prove the business can live in it — and the fake data is not a compromise, because the edge cases you plant on purpose test more than the real records you were never allowed to use.