Detect undocumented response changes with focused mutation checks
A passing contract may only prove the mock matched itself.
- Focused work estimate
- 3h 30m + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Mutation testing · Test design
Estimated field mix
- Quality engineering100%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional fulfillment API serves a web checkout and warehouse adapter. Provider tests pass while consumers fail on subtle response and error changes.
Setup prerequisites
- Author two small local consumers and one mock provider with versioned synthetic responses.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- BCONTRACT-101 · Inventory the fields each fulfillment consumer actually reads
- BCONTRACT-102 · Create isolated provider states for contract examples
- BCONTRACT-103 · Protect decimal quantities from implicit numeric coercion
- BCONTRACT-104 · Verify unknown enum values do not crash old clients
- BCONTRACT-105 · Test authorization before provider-state response lookup
- BCONTRACT-106 · Cover retry semantics for conflicts and transient failures
Acceptance criteria
- Mutate one required field, status, or header per case.
- Show each relevant mutation makes a consumer expectation fail.
- Record intentionally tolerated mutations separately.
Implementation constraints
- Mutations target public contract behavior only.
Verification to include
- Catch a missing quantity and wrong conflict status.
- Tolerate an unrelated additive response property.
Deliverables
- Contract sensitivity report.
Rollout and recovery
Review surviving mutations before trusting the contract gate.
Value of the work
For the engineer: Practice executable contracts, meaningful negative tests, and compatibility triage.
For the team: Expose integration regressions before deployment without requiring every system to run together.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.