Use before implementing or refactoring software. Contains two skills: (1) Modular Software Design — for designing module boundaries, APIs, layers, abstractions, services, repositories, adapters, or architecture, helping reduce total system complexity by creating deep modules, hiding implementation knowledge, avoiding leakage and pass-through APIs, comparing alternative designs, documenting interfaces before coding, and critiquing existing architecture; and (2) Software Testing — for writing unit tests, integration tests, or end-to-end tests, creating mocks/stubs/fakes, designing a testing strategy, doing TDD, reviewing test quality, fixing flaky tests, or refactoring test suites, generating risk-focused test plans, picking appropriate test levels, choosing between mocks/fakes/real dependencies, and applying Arrange-Act-Assert patterns with concrete examples.
88
88%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Asks whether executable statements ran. Weakest criterion; a statement can run without revealing a bug in it.
Asks whether each branch or decision outcome ran. Subsumes statement coverage in straightforward control flow.
Asks whether each atomic condition has been true and false.
Asks whether complete paths ran. Quickly becomes infeasible with loops.
Stronger but more practical than full path coverage. Covers paths up to simple cycles.
Partitions the domain into equivalence classes or combinations of characteristics and deliberately samples them. Boundary values are especially bug-prone.
Asks whether tests would detect small plausible faults. Treat as a stronger adequacy criterion or "gold standard" for comparing other criteria.