Design for testability

Thinking of testing components in isolation from the beginning ensures certain testability and supports loose coupled systems with better maintainability.


Test driven development, encapsulation, abstraction, mocking, refactoring

The aim is to avoid complex and nested use of mocking or the need to perform bigger refactorings later on.

Consider good (object oriented) software engineering priciples (e.g. SOLID)

Concret: specific best practice (e.g. use microservice)

Application domain:
Medicine/Healthcare, Education (Technology enhanced learning), Data science (analysis & visualisation), Industry (Production), Mobility, Energy, Software engineering

Main phase:
Generic: Design/Plan, Development: Implementation/Code, Development: Testing, Operations: Maintenance/Monitor

Related literature:
Design for Testability in Object-Oriented Systems, Robert V. Binder, 1994,

In which projects do/did you use this practice?
Should be applied at any software related project.

Project manager

>10 years of experiences
Software Competence Center Hagenberg

1. How do ​you rate the potential benefit for your projects? 0
2. How often are you using that practice? 4
3. What is the effort to introduce the practice in your project upfront? 2
4. What is the effort to apply the best practice in your project daily basis? 3

Questions 1, 3 and 4 (1 = Low, 5 = High)
Question 2 (1 = Never, 5 = Always)

You are running an old browser version. We recommend updating your browser to its latest version.

More info