Testability
Kind: quality-attribute
Layer: Computation Core
Record: architecture:testability
Severity: mandatory
Scope: class, module, service
Canonical: Ontology
The degree to which code can be tested in isolation, with its dependencies, time and randomness supplied by the test.
Listed in Architecture principles, after Static Analysis and before Validation.
Requires
Reinforces
Enables
Conflicts with
In tension with
- Encapsulation Extremes
- Singleton Pattern
- Service Locator Pattern
- Singleton Pattern / Testability
- Service Locator Pattern / Testability
Tensions
Violated by
Refactored by
Severity
Category
Enforced by
Reinforced by
- Interface-Based Design
- Referential Transparency
- Single Responsibility Principle
- Stateless Processing
- Ports and Adapters Architecture
- Clean Architecture
- Controlled Side Effects
Enabled by
Linked from
- The check comes first
- Computation and resource
- Scale follows determinism
- Anti-patterns
- Contracts / Interfaces / Compatibility
- Correctness / Determinism / Verification
- Core Modular Design
- SOLID / Object-Oriented Design
- Creational Patterns
- Scalability / Performance / Optimization
- Streaming / Pipeline / Dataflow Processing
- Plugin / Extensibility / IoC
- Codebase / System Architecture Styles
- Transactions / State / Concurrency
- Causality / Ordering / Distributed Time
- Correctness / Determinism / Verification
- Severity levels
- The resolutions