Measuring and improving design patterns testability
Benoît Baudry, Yves Le Traon, Gerson Sunyé, Jean‐Marc Jezéquél · 2004
We address not only the question of testability measurement of OO designs but also focuses on its practicability. While detecting testability weaknesses (called testability anti-patterns) of an OO design is a crucial task, one cannot expect from a non-specialist to make the right improvements, without guidance or automation. To overcome this limitation, we investigate solutions integrated to the OO process. We focus on the design patterns as coherent subsets in the architecture, and we explain how their use can provide a way for limiting the severity of testability weaknesses, and of confining their effects to the classes involved in the pattern. Indeed, design patterns appear both as a usual refinement instrument, and a cause of complex interactions into a class diagram-and more specifically of testability anti-patterns. To reach our objective of integrating the testability improvement to the design process, we propose first a testability grid to make the relation between each pattern and the severity of the testability anti-patterns, and we present our solution, based on a definition of patterns at metalevel, to automate the instantiation of patterns constrained by testability criteria.