Software Development Videos and Tutorials: Java, .NET, Ruby, Python, JavaScript, Agile, Software Testing
 
Practicing Testability in the Real World

Practicing Testability in the Real World

There have been some studies both about the concept of Testability and how to implement it, many of which use test hooks. In spite of its obvious benefits, we still find low adoption of testability concepts. Why is there not more emphasis on core testability principles? In this analysis we present our experiences applying testability concepts and lay down guidelines to ensure testability consideration during feature planning and design. We initially lay the groundwork by briefly going over the testability concepts and the SOCK model. We then look into the typical thought process for a Test Developer when trying to plan and automate test cases for a particular feature. Also, here we present some key insights as to why we believe practicing testability is a challenge to many projects. We will present real life examples that we have encountered in our career which exhibit how testability considerations could have made our testing simpler. We also discuss influence of testability on design of a feature. Building from these examples, we present a check-list of for each of the testability principles. Reviewing this testability checklist will ensure that core testability principles are considered while testing a particular feature. The result is simplified testing for that feature and thus reduced costs overall. We finally go over an exercise where we get to apply our principles to an Event Processing component and realize the benefits of applying testability concepts.