Practicing testability in the real world

International Conference on Software Testing Verification and Validation, 2009. ICST'09 |

Publication

There have been studies both about the concept of testability and how to implement it, for example using test hooks. In spite of its obvious benefits, we still find low adoption of testability concepts. For example, we do not see a lot of bugs requesting a change in a feature because it will become simpler to test it. In this article we present our experiences while applying testability concepts and lay down guidelines to ensure testability consideration during feature planning and design.We lay the groundwork by briefly going over testability concepts. We talk about the typical thought process in a test developer’s mind and present key insights into why practicing testability is hard.We then present real life examples that we have encountered in our career which exhibit how testability considerations could have made our testing simpler. We discuss the impact of testability on design. Building from these examples, we present a checklist for each of the testability principles. Going over this testability checklist helps ensure we think about the core testability principles when testing a particular feature and ultimately simplifies testing and reducing overall costs. We finally present an exercise where we can apply our checklist to a complex event processing component and realize the benefits of applying testability concepts.