← Back to principles

QA

No Duplication

Statement

Testing should add value, not repeat effort.

What this means in practice

Quality work avoids re-testing the same risk at multiple levels unless there is a clear reason.

  • As much testing as possible is performed as unit tests, reducing duplication further up the test pyramid.

  • There is clear visibility and shared understanding of what is automated, with a consolidated view of execution.

  • Duplication may be required when testing environmental dependencies.

  • Only valuable scenarios need formal test cases.(test cases in Azure)

  • Manual and automated tests both have value. Teams should drive to automate test cases, while acknowledging that some test cases are best suited to manual execution.

Why this matters

Duplication wastes time and attention.

  • Time is spent re-testing scenarios that are already covered.

  • Valuable testing that would add coverage is not done.

  • Poor visibility creates false confidence, which erodes trust.

Practices that meet this principle

  • Review test cases and define the level at which each should be tested.

  • Maintain clear linkage from automated tests to test cases.

  • Pull request review of test automation should also review the associated test case.

  • Use test case huddles to enable communication.

  • Use behavior-driven unit tests where appropriate.

  • Use consistent test case naming, including prefixing of test cases in Azure.

Validation

A project meets this principle when:

  • Unit tests cover the majority of stable, deterministic scenarios.

  • Automated test execution is visible in a single, consolidated view.

  • Each valuable automated test is traceable to a test case or a clear documented intent.

  • Duplication across test levels is the exception, and is justified (for example, environmental dependencies).

  • Manual testing focuses on scenarios that are difficult to automate or provide unique value.

Potential blockers

  • Backlog of existing unit tests.

  • Lack of trust.

  • Lack of value or code coverage encouraging duplication.