Software Design for Testability
Testability is a key ingredient for building robust and sustainable systems. Neglecting testability during software development increases technical debt and has severe consequences on systems that are destined to operate for many years. Peter Zimmerer describes influencing factors and constraints of designing software for testability and shares his experiences on the value and benefits of testability-and the repercussions of poor testability. Using real-world projects as examples, Peter describes key factors in designing for testability-an architecture providing control and observation points, testing interfaces, built-in tests, logging and tracing, diagnosis facilities, and more. Take back a checklist of important issues, facts, and practices on designing for testability in your systems.