Test Design – The Crucial Step to Test Automation
Recently, our test automation experts were having a conversation with an organization which was restarting its test automation project. The discussions started with the company narrating how their earlier test automation project failed miserably after 13 months incurring them huge costs, lot of time, and worse of all, loss of faith of the team in test automation. The company had started their initiative with the purchase of expensive test automation technology. Then they wrote automation scripts for most of the manual test cases and started running those. The end result? A huge number of automated test scripts which require high maintenance, require human intervention to run and are not useful for the product at all.
The problem we see in most scenarios is that the discussions around test automation start around what to automate and what not to automate. Ideally, what needs to be defined is what to test and what not to test. That’s what is called test design. Test design is a crucial phase for testing. Test Design involves analysis of the product specifications and coming up with test cases to validate the product functionality. This is 100% human effort and cannot be automated. It requires the involvement of domain experts, software development experts, and testing experts who need to work together to prepare a test plan with great attention to detail. Test design is what makes or breaks the success of test automation.
“More than the act of testing, the act of designing tests is one of the best bug preventers known. The thinking that must be done to create a useful test can discover and eliminate bugs before they are coded – indeed, test-design thinking can discover and eliminate bugs at every stage in the creation of software, from conception to specification, to design, coding and the rest.”
-Boris Beizer, Software Testing Techniques
An effective test design involves defining the test cases to test the software. The test cases should be created in such a manner that those can easily read, written, and maintained. The objective of the test cases should be to not only find the bugs in the product but also improve the overall product experience for the user. Test case maintenance is one of the crucial aspects which is often overlooked. Test Design needs to consider this aspect and make sure that the test cases are designed in such a way that those are easily maintainable, even by the people who did not create those in the first place. Especially in the case of test automation projects, the test design should aim towards reducing the maintenance costs for test development. The test design needs to align with the business goals such as faster time to market, more test coverage, and increased team confidence.
Similar to a software development project, the test automation project also needs to go through design, development, architecture, and maintenance. The test automation needs to have product development mindset and the test automation suite needs to follow the product roadmap.
Typically, a good test design involves –
- A detailed thinking and design of what to test, how to test, designing of the test, and the execution plan.
- Test authoring using method such as Model-based testing, boundary value analysis, action-based testing, error guessing etc. and defining of the keywords and action works.
- Test case design for bug identification, impact, and maintainability.
- Having a standard set of guidelines for writing the test cases.
- Grouping of tests cases into small modules and suites.
- Test case writing based on test objectives, steps, test data, and validation criteria.
In a nutshell, a good test design is a crucial step in test automation to achieve meaningful test coverage, find defects in the software, and build confidence in the testing team. It achieves more accuracy, is effective, and involves low maintenance. Contrary to common belief, a good test design is not very hard to do. It just requires dedicated thinking, patience, domain knowledge, understanding of good testing practices, and knowledge of design guidelines. Go for it and you will see the returns very soon!