testing-strategy · git:20261103.998947c · 2026-11-03 · sha256 2c7c75af40978ff3
testing-strategy git:20261103.998947cA
Immutable. This exact content never changes and is served at /api/v1/blob/2c7c75af40978ff3.
--- name: testing-strategy description: "Selects the one owning test for each acceptance criterion at the boundary where its behavior is observable, using repository evidence and maintenance cost. Use when deciding integration or E2E coverage." --- # Test Strategy ## Purpose Select one owning test per behavioral claim at the boundary where the claim is observable, as `testing` defines. Candidate discovery does not create an obligation to implement every technically valid test. ## Selection Process For each acceptance criterion that may require integration or E2E proof: 1. **Name the observable boundary**: Identify the interaction, persisted effect, process, or user journey that must be proven. 2. **Check the existing owner**: When an established test owns the claim at that boundary with assertions that detect its material failure, update it rather than adding another. 3. **Select the owning level**: - use integration when the behavior is observable at a component, persistence, or process boundary; - use E2E when the behavior is observable only across the complete journey; - leave the cases of a calculation, parsing, or branching rule inside the behavior to that rule's unit test. 4. **Compare cost**: Consider setup, execution time, brittleness, maintenance, and diagnostic value using repository evidence rather than fixed universal scores. 5. **Retain valuable proof**: Select a new test only when its regression-detection value justifies that cost. No new integration or E2E test is a valid conclusion when existing tests already own each claim. ## Priority Prioritize proof for: - core user or consumer journeys; - shared or public contracts; - persisted state transitions; - security, authorization, compliance, or irreversible effects; - integrations with demonstrated failure risk. Priority does not determine test level. Use the narrowest boundary that can observe the prioritized behavior. ## Deduplication Before adding a test: - search the existing suite for equivalent behavior; - identify overlapping proof at other levels; - extend existing coverage when that remains clear and maintainable; - keep one representative proof when several candidates observe the same risk. ## Selection Record Record only decisions needed by planning or review: ```text Acceptance criterion: [identifier or behavior] Selected proof: existing | unit | integration | E2E | none Boundary observed: [observable interaction or result] Reason: [why this test owns the claim at this boundary] ``` ## Completion Check - Every selected test traces to an observable requirement or accepted contract. - Each claim has one owning test, and an existing owner was updated rather than duplicated.