A retest must prove a property, not reward a changed screen.
The fictional product has a two-step approval workflow. A test member may view a draft; an approver may advance it. The important claim concerns server behavior. The transition should be accepted only for an authorized role and a valid current state.
The retest repeats that property check with both roles. A changed message or interface would not close the finding.
Invented test model
Tenant
Synthetic and owned by the test team
Actors
Read-only member and authorized approver
Object
Editable synthetic draft
Boundary
Server-side role and workflow-state validation
The rule that the investigation must preserve
Read-only test member
May view the synthetic draft
Read-only test member
May not approve the synthetic draft
Authorized approver
May approve an eligible synthetic draft
DEFENCEFinding anatomy03 / 05
03
Finding D-01Closed under retest
Finding anatomy
The server accepted a transition the role was not allowed to make.
The interface hid approval from the read-only member, so the investigation tested the underlying property with that owned account and synthetic draft.
Expected
The read-only member can view its synthetic draft but cannot advance that draft to the approved state.
Observed
A bounded direct request from the read-only account advanced the invented draft to approved. The account then observed the new state.
Impact
An unauthorized transition was possible inside the owned test tenant. No data belonging to another user, payment, or third party was involved.
Observed contributing condition
The interface hid the action, while the server did not enforce the same role-and-state rule when processing the transition.
Root cause not assessed
The external review describes behavior, not which internal component or decision created it.
DEFENCERemediation and targeted retest04 / 05
04
Remediation and targeted retest
Why the retest is property-based
Remediation
The server now validates both role and current state.
Validate the caller role and current draft state on the server. Keep the interface restriction as a usability layer, not the control.
Targeted retest
The denied and allowed paths both behaved correctly.
The same read-only account was denied and the draft stayed unchanged. The authorized approver still completed the eligible transition.
The same boundary before and after remediation
Expected rule
Only the approver may advance an eligible draft
Observed before fix
Read-only member advanced the synthetic draft
Observed in retest
Member denied; approver path still worked
DEFENCECoverage, controls, and limits05 / 05
05
Coverage, controls, and limits
A useful report also shows the controls that held and their limits.
The invented review records three nearby controls. They are bounded observations, not proof about every variant or adjacent system.
Webhook verification
Held under test
Test condition
Unsigned and expired synthetic events
Observed result
Rejected before the invented workflow changed
Limit
Provider delivery and replay behavior not assessed
Upload type handling
Held under test
Test condition
Fixtures with mismatched declared and detected types
Observed result
Rejected without creating a usable object
Limit
No large files, malware, or parser stress
Concurrent editing
Held under test
Test condition
Mutation with a stale synthetic revision token
Observed result
Stale change rejected; current revision succeeded
Limit
One workflow and bounded request sequence
How the final register speaks
Closed under retest
The named condition no longer reproduced under the repeated test.
Held under test
The control enforced the rule in the recorded scenarios.
Unresolved
Blocked, out-of-scope, or untested work remains explicit.
The result is a decision record, not a certificate. It records what changed and held, then identifies conditions that still need an owner.