Builds stakeholder-readable scripted manual test cases from a feature spec in four formats: a step-table (preconditions / steps / expected result / actual / pass-fail / notes) for spreadsheet review, a Gherkin Given/When/Then format for BDD-aware teams, a business-language UAT script with acceptance-criteria mapping and contractual sign-off (references/uat-format.md), and a one-line-per-item execution checklist for smoke / on-call / bug-bash / compliance sweeps (references/checklist-format.md). Each script is self-contained (no implicit team knowledge), single-scenario (one happy + N edge per script), and includes the data setup the tester needs without being a developer. Use when a feature can't be (or shouldn't be) fully automated and a human tester needs an executable script or checklist - UAT sign-off rounds, regression baselines, certification testing, deploy smoke checklists, exploratory follow-up scripts.
94
88%
Does it follow best practices?
Impact
95%
0.98xAverage score across 10 eval scenarios
High
Do not use without reviewing
tests/TC-102-import.md covers bulk contact import. It tells the tester to
upload the contacts file, verify the import completes successfully, and
spot-check a few records.
Nobody agrees on what "successfully" means. The importer skips some rows on purpose and merges others, so the run always ends with fewer new contacts than lines in the file, and testers have raised that as a defect twice. "Spot-check a few records" means every tester checks different ones, and the two rows in the file that actually break things are the two nobody thinks to open.
The case also only passes once. The contacts it creates stay in the tenant, so the next run merges into them instead of creating them, the numbers come out different, and the tester either marks it failed or quietly changes what they expect. The sandbox is only wiped monthly.
Two testers last week also could not get as far as the upload screen at all, because the login they were given cannot see the menu it lives on.
Produce one markdown document at exactly tests/TC-102-contact-import.md
containing:
Out of scope: automating the case, the CSV export journey, and any change to the import rules.
Extract the following files before beginning.
=============== FILE: tests/TC-102-import.md ===============
=============== FILE: fixtures/contacts-sample.csv =============== first_name,last_name,email,company,job_title Aiko,Tanaka,aiko.tanaka@meridian.example,"Meridian Freight, GmbH",Ops Lead Ola,Nordstrom,ola.nordstrom@fjordline.example,Fjordline AS,Buyer Ravi,Kumar,ravi.kumar@sunpeak.example,Sunpeak Labs,CTO Ravi,Kumar,ravi.kumar@sunpeak.example,Sunpeak Labs,Chief Technology Officer Marta,Oliveira,marta.oliveira@vertego.example,Vertego,Head of Sales Tom,Byrne,,Byrne Plumbing,Owner Chen,Wei,chen.wei@lumira.example,"Lumira Data, Inc.",Analyst Zoe,Bakker,zoe.bakker@dunes.example,Dunes BV,Marketing
=============== FILE: tests/env-notes.md ===============
App: https://app.orbitcrm.example
| Tenant | Use |
|---|---|
| acme-sandbox | QA. Safe to write to. Wiped on the 1st of each month. |
| acme-demo | Sales demos. Never write to this tenant. |
| Login | Role | Sees the Import menu |
|---|---|---|
| qa.sales@orbitcrm.example | Sales User | no |
| qa.admin@orbitcrm.example | Data Admin | yes |
email is required and is the unique key for a contact.email is rejected and listed on the import error
report, which is linked from the finished-import screen.Every upload creates a batch. Imports > (select the batch) > "Delete imported records" removes the records that batch created and nothing else. There is no other way to reverse an import short of the monthly wipe.