Automation testing is an approach were a skilled resource writes coded scripts by utilising various programming languages and software to automatically process tests for the AUT (application under test). It replicates the manual process of testing without the need of actual manual intervention.
Typical automation testing lends itself to regression, load and performance testing. The main goal of automation testing is to increase the testing efficiency and ensure the quality of the software is at the high standards before release to the end-user.
In today’s world business’s are coming up with constant improvements, enhancements to applications on a daily, weekly and monthly basis.With this in mind developers and QA engineers have their work cut out with ensuring the current system and new enhancements work as expected.
Imagine an update to the Amazon website were a user is able to buy an item now and pay for it later. The developer would have to implement this new feature and QA would have to ensure this feature works as expected with no deviation. On top of this QA would also need to ensure this change have not broken any parts of the existing system.
In my personal experience I have seen cases were changes similar to this could have around 20+ test cases just to check the feature works. However the regression suite of tests could be in excess of 1000 test cases! Yes I said 1000 test cases Amazon is a huge site.
Now imagine the team only has 3 QA resources to test 1020 tests in five days. That would mean each QA would have 340 tests to run in 5 days…meaning 68 tests per day. This would increase pressure on the QA team to deliver the completed suite of tests in the allotted time.
Due to the time constraints QA would probably not have enough time to conducted a personal favourite testing approach of mine “exploratory” testing. More on exploratory testing in another post. This is were automation testing comes into the mix.
Imagine those 1000 test cases some how could be automatically executed in less than 24hrs. How great would that be! Those 20+ tests would only require manual intervention. This would allow more time to explore the application as a whole to uncover defects that might have gone unnoticed.
The automation process would take care of the regression test execution then report back the results of the test run. This would give faster feedback as to the state of the AUT. Then the team can determine if the AUT is ready to be released in the wild.
In the next post I will be discussing the pro’s and the con’s of automation testing.