We often hear testers talk about how difficult it is to find time for Regression tests because most of the testing is performed manually. Needless to say, all the tests are of equal importance. ‘Agile’ and ‘Test Automation’ have been the most spoken buzz words in today’s IT scenario for obvious reasons – Systems are trending towards agility to accommodate frequent changes & Testing are being automated to fix issues sooner and save time. Automated tests applied on frequently changing systems will produce no value as it will cost more in maintaining the test cases. Automation is more successful when the system to which it’s applied is not prone to change often. Now, the question is How do we Automate testing on Agile systems where the test objects are constantly changing with refinement over several sprints? OR; how do we create a sustainable architecture for automation which works well even in agile development. Frequent and High-quality deployments can be achieved only by automated testing. With each sprint comes new functionality and consequently the test cases for System testing and Regression testing will grow and need to be revisited. Hence, it’s important to ensure unmodified code /functionalities are not affected by new changes going into the system. Receiving high-quality rapid feedback is something that drives Agility. And you will agree that performing comprehensive tests manually in every sprint is a herculean task. It is important to understand that we cannot automate everything right away. Instead, it’s recommended to strategize and focus on what’s worthwhile to automate. Let’s address a common question – How to identify what needs to be automated and how do we prioritize the factors?
Business critical functions – the ones that directly have an impact on business operations
Functions frequently used by many users – the ones that affect user experience
Functionalities or test cases that need to run several times under different conditions
Functionalities or test cases that are easy and give you the expected results
The benefits of automated testing are manifold –
Time that’s saved is the most significant advantage
Confidence in the system as you can now run comprehensive tests more often
You do not have to postpone adding complex functionalities in your release cycles just because you earlier ran out of time performing tests manually
You can now plan frequent releases of your software thereby making your product Agile and reducing the time to market
The quick feedback from the tests help fix issues at a faster rate
Resource dependability does not affect your software quality. Your testers and developers can now be available for other tasks.