How easy it is to test a piece of software.
The wikipedia page lists the following features as important: Controllability, Observability, Isolateability, Separation of concerns, Understandability, Automatability, and Heterogeneity.
Design for testability
- Writing fuzzable code (John Regehr)
- Test driven development is based on testing every change to the code so advice about how to do TDD often describes how to make code more testable.
Notes related to Testability
Dependency injection, Test doubles (fakes, mocks and stubs), Test driven development
Papers related to Testability
- Design for testability in object-oriented systems [binder:cacm:1994]
- The effect of certain modular design principles on testability [edwards:icrs:1975]
- Testability of software components [freedman:tse:1991]