Design for testability

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

Links:
None

Keywords:
Test driven development, encapsulation, abstraction, mocking, refactoring

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

Requirements/Prerequisities:
Consider good (object oriented) software engineering priciples (e.g. SOLID)

Level:
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, https://dx.doi.org/10.1145/182987.184077

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