Test Design is a constantly evolving area of the software testing life cycle. Surprisingly, it still remains implemented at a relatively smaller scale whenever new application features are defined and this has gone a long way in limiting the effectiveness and efficiency of testing.
The heart of it has always been the test design template, the primary goal of which is to reduce ad-hoc reinvention of test designs. However, most companies/ individuals do not assign as much importance to this as they do to the development process. Ideally, a good test design frees tester to focus on the actual job of testing the application. I have seen that just by using multiple test design techniques, the efficiency gain that we have been able to achieve has been tremendous. Some of them include
- Specification based techniques like equivalence partitioning, boundary value analysis, state transition testing, use case testing and decision table testing
- Structure based techniques/ White box testing through statement testing & coverage and decision testing coverage
- Experience based techniques like error guessing and exploratory testing
Our teams have been using these techniques for quite some time now and have come up with innovative ways of creating classification trees, in order to effectively design and generate test cases, for complicated applications. One way is, wherein we map the required output so that the classification of inputs and outputs is matched.
We are in the process of publishing a whitepaper on this area early next quarter that details out how one should go about Test Design.
Watch this space for more on the paper…
Sunil Deshmukh | Senior Test Manager | Zen Test Labs