Adoption of new working practices and methodologies has meant that organisations are constantly challenging themselves to get products and services to market faster than ever and in doing so are now having to think very hard how this can be achieved. We all know that first to market gets the spoils, so there is a lot at stake getting the delivery model right. Test Automation is just one way of speeding up your project delivery and in doing so building up a regression pack of test scripts that can be run with little effort in a short amount of time.
The three greatest benefits to test automation are: saving time, using resources more efficiently and effectively and easily increasing your test coverage.
Automation greatly increases the speed of the testing process and shortens the testing lifecycle. Automation never sleeps, so you can run scripts at any time of the day or night, along with running automation around a range of machines and platforms at the same time. Automating your test scripts saves a huge amount of time compared to running them manually.
Now that your automation is running as and when you want, you can utilise test resources more effectively and apply their skills when and where they are needed most as automated tests can execute unattended with results being published at the end of the regression test. Allowing test resources to have a broader remit allows them to consider test services not always factored into projects, like performance and security testing.
Test Automation is a great way for you to increase your test coverage; quite simply once you have a set of automated tests you can test how the software reacts under various configs and repeated execution of the same original test. Automated tests can easily be built up once you have the core tests in place, meaning that you can add tests into the regression pack easily and build a larger test coverage quickly, which would be time consuming to do manually.
But before you begin on automating your regression tests, what you need to consider for each individual regression test is its return on investment. If the effort to create and run, outweighs the cost of doing this manually then we have to question why you are spending time on this. With regards to running automated tests, despite the fact it is automated there is a cost. While a good automation framework may allow regression runs to be kicked off by the click of a button and run unaided, there is still a requirement to analyse the results, and that does incur a cost—even if those results are summarised in a dashboard.
This also takes into consideration that the scripts have been created within the framework to deal with unexpected events, such as pop-up messages, which could potentially stop a regression run. If they require a human to analyse the results, they are not fully automated. Maybe it is worth questioning if these tests are truly automated.
When selecting tests for automated regression testing you should always start by creating a test that can be whole or in part used again; the reuse of automation tests already written should be marked as regression tests in the future.
When doing the analysis and design of your tests, why not mark tests that should be used for regression before the test case is even written? The regression test simply gets scripted as an automated test immediately. This saves on both preparation time to write the test, plus the test execution that may happen manually until it gets automated.
This is where Agile teams need to focus; they cannot afford to test the same thing once manually and then again as automated. This would not be a very efficient way to test. Let automation take care of what it is good at - checking.
In addition to being selective about what is created as regression tests, some care is required about which regression tests are executed, especially in Agile projects. With the increase in communication and collaboration between business analysts, developers, and testers, it is possible to target testing to what has just changed as you know what the potential impacts on tests that have already executed and passed for that feature.
There should be a task on your to-do list detailing continuous review of your regression tests to ensure that they are still providing the benefit to your project that you expect. As situations change over time, consider which regression tests you want to retire and which need refreshing.
Environment is another area for management. As the maturity of the system grows, certain tests may deliver less value, particularly if no development has been done in that area for a period of time. Changed functionality or features should aldo trigger a review of the related regression tests. If changes are actioned as they occur, regression packs will remain current.
Proper maintenance of regression tests can have a significant impact on your delivery. Keeping regression tests that are no longer required or of little value just wastes time and effort. Additionally, if you aren’t measuring the coverage your regression tests provide, you may be spending too much time for little benefit. Consider the value of your regression tests as you create and manage them.
If you would like to know more about Test Automation, regression testing, proof of concept or a test automation assessment of your current automation, then do please do call us, we would be glad to assist.