This article intends to touch upon some of the top challenges in test automation. We will also look at what approach we can take to conquer these challenges. We have been hearing and using the term ‘Automation’ for more than a decade now. Appreciating and listing the benefits of automation, especially Test automation should not be difficult for us.
Generating enormous ROI and value in terms of Test coverage, Peace of mind for developers and testers, reduced time to market, Eliminate wasteful and repetitive manual effort, Enables Agility, are all the immediate pluses we can recollect.
With great benefits, comes challenges/obstacles that need to be dealt with, to ensure the flow of value continues throughout and across the chain.
Probably the most unexpected challenge, yet placed first on the list!
Stakeholders have unrealistic notion and expectations about automating testing.
Well, would you buy a home without planning on How many rooms, members and their requirements, Accessibility and availability of critical needs, Future needs, Hygiene, etc.? Certainly, the answer is NO. The same way, when a huge investment on Automation is made, it’s essential to talk to multiple and diverse people who will be directly or indirectly benefited.
For example; Review test cases, scripts and results with stakeholders (Developers, Architects, Business people, Project managers, Product managers, Business analysts, etc.). Helps in –
Finding issues, gaps early in the game
Team implementing or owning the Automation is abreast of the current changes/situation
Shared vision, Transparency across, all on same page
Infrastructure Needs and availability of a clean test environment
Challenge: Too many dependencies such as Database, browsers, applications, multiple Operating Systems may take days to be procured /setup /configured, which will shadow the benefits of automation.
Approach: By using Virtualization, and lately, cloud testing strategies – test environments can be created on demand and reused.
High upfront investment costs
Challenge: With the advent of Agile practices, it has become a mandate to automate Regression tests. The automation costs include Licensing, Infrastructure to support the automation framework, Operating costs of maintaining the hardware, updating the scripts to match the changing requirements, Training costs, etc.
Approach: There are free open source tools in the market such as Cucumber, JBehave and Serenity. Start cross-training team members. Focus your automation efforts to the selected few components that will ensure higher value.
Building the right framework and defining the Scope of automation
Challenge: Framework is what ties together all the logic that orchestrates the execution of test cases. Designing the right framework to meet your needs requires answering several questions such as – How to reduce effort in implementation and maintenance of the test scripts, What reporting features to include, look at the long term goals, how to minimize the effort when there is a change in testing strategy.
Approach: With baby steps, you can explore and implement the most important aspects that you want to automate. Remember – you cannot cover every component 100% for automation, instead choose the ones that will give higher value and focus your/team’s efforts on only those.
Need for Skilled resources
Challenge: Test automation being looked upon as just creating test scripts and putting them to run by themselves, involving just a tiny layer of testers, technical developers will not help us build scalable automation framework. Automation resources need to have a good blend of programming skills and automation tools know-how.
Approach: Partnering with a reliable Testing expertise provider who can collaborate with you to understand the short and long term goals to help formulate the testing automation framework.
Cross train resources internally. Include a mix of developers, architects, business analysts, testers into the team who will own automation.