Test automation has been the new buzz in the testing industry. It’s simply amazing how it promises to reduce your overall time to market and that to at a lower cost, something which every CIO, Test Manager and CEO wants. However, talking too few of my colleagues and industry experts I have realized that many are actually failing to achieve the right results from this magic box. So I started to do a little more research on it and I would like to share what I thought would help lot of CIO’s around.
1st let’s try to find out reasons why test automation fails. Though below data is bit old, I found it relevant even today.
As you can see, lack of expertise was found out to be one of the major reasons after time. Will not talk on time but lack of expertise is something I would like to discuss in more detail.
The biggest mistake people do when they get on with test automation try, is to automate as many test cases as possible (in the quickest time) with the basic premise that test automation can decrease the overall cost of testing, and improve software quality. This gives a lot of hope to many people however, quickly disappoints them too. In the race to get as many test cases automated, we forget that not everything needs to be automated. In my earlier blog Ask your testing partner – Should we go for complete automation testing, I have described in detail the areas where automation could work.
Wherever organizations have started automating without a proper plan they have not able to achieve its full potential. We have seen projects where the entire automation suite is scrapped and the tools purchased for automation has now become an expensive “shelf-ware”. If you can envisage that your automation suite would grow huge and maintaining it would be even more expensive – you need to revisit your automation plan.
Remember – It is not necessary to automate because the team has the resources to do so, but only if it is the right thing to do in the given situation, and also if it would be relevant as the application grows. Test automation would be a waste of exercise if the effort to add new test cases or to maintain the existing scripts is significantly higher. So automation has to be planed such that the incremental effort is lower than the initial effort.
Then the next big question is- how one should approach their test automation strategy? I have outlined an approach which I always suggest to all my clients.
How to go about Automation Testing?
The answer is simple – SDETs (Software Design Engineers in Testing). Traditional testers have always been beating around the bush once the product is almost ready. This results in developers accepting very few issues raised by testers and hence giving an opportunity to leak a bad product. Moreover, tester don’t completely understand the development nuisances and hence gives rise to a never ending conflict between the two. In order to successfully implement test automation strategy, your testers should not only understand the code written by the developers but also should be able to comprehend the business requirements into meaningful test cases that are relevant to the release cycle.
SDETs – being inherently software developers act as better liaison between the development team and the business-users. They understand the code and can also comprehend business requirements correctly. This gives the development team significant advantage in terms of getting early feedback on the software being developed into your test automation. This short feedback loop (CI – continuous integration) helps developers correct their code quickly to meet the business requirement, and also save organization a lot of money by discovering defects early in the SDLC.
SDETs are trained to pick and automate those test cases that have the maximum impact – those improve your overall test coverage and code quality – what I like to call “Relevance Testing”. I have discussed in detail the role of SDETs in test automation in my earlier blog How to build your Perfect Test Automation Team.
Before we wrap this blog, I would like to present a checklist for a successful test automation strategy. You can share your thoughts in comments section below are can drop me a line at firstname.lastname@example.org and I will happy to take it up.
Checklist for your Successful Test Automation
1. You can’t avoid testing – So it’s better to start early.
2. Have a plan for automation which would grow with your application.
3. Focus on what is relevant, and not what is convenient.
4. Find a tool(s) that fits your automation plan. You should factor in the license cost, maintenance cost, customization, required skills and its availability when selecting the tool. Also, consider one which the entire team can use – including developers (unit testing).
5. ROI may be a misnomer. However, you need to have a clear idea on how far you could go with this approach. Be willing to make a course correction if required based on the business needs.
6. Effort to add new test cases or to maintain the existing scripts should be significantly lower – should not require much support for future runs of the automation.
7. Finally, have a plan on how the suite will be maintained (post-delivery) – even new people joining the team should be able to maintain it. Ensure enough documentation is available.
About the Author:
Ramanath Shanbhag is a creative professional with around 18 years of experience across the industry – having worked at Mindtree, Microsoft, HP, Aditi, and Accord Software.Being an innovative, motivated and goal-oriented professional, he has consistently proven his ability to handle multiple strategic and operational level responsibilities in start-ups, mid-sized as well as large organizations. With such a unique blend of diverse experience, he has now embarked on a journey to help organizations achieve the best in Software Testing.
Ramanath is an advisor to clients, has an unmatched ability to discover cost-effective solutions, and adept at client management.Ramanath has comprehensive experience in Strategic Planning, Test Delivery Management, Software Testing, Process Management, Quality Control, Project Management, Product / Process Development, Market Recognition, Client Relations Management, Cross Functional Coordination, People Management, Team Management, and Creating innovation in testing.He has published and presented several Whitepapers, Articles, and Blogs in many prestigious conferences and magazines.