Even with lots of efforts by our development teams, we often find that bugs creep-in into our released products. Our test teams try to find them and development teams try to fix them before our products reach customer's hands. Yet, we find that, even with best of our efforts, new bugs land up in our products and old bugs resurface.
Test automation is not a panacea. However, it adds another tool to our arsenal to increase the effectiveness and efficiency of our testing processes. Test automation can also help in reducing the recurring bugs (regressions) and increase the coverage of our tests.
One of the reasons for non-acceptance of test automation is that it is considered to be too expensive for small test teams. Our tools, Marathon and Marathonite, are affordable for even a single tester, yet flexible and powerful for large organizations.
Test Automation vs. Manual Testing
Test automation doesn't replace manual testing — it complements the manual testing. Once a test case is automated, the script can be executed multiple times either with different input data or different system configurations. Automation testing reduces the rote work performed by our testers thereby freeing them up to concentrate on more important and new features of the product. Automation testing, in some cases, allows a tester to perform tests that are impossible to perform manually.
There are many advantages (and some disadvantages) of test automation. We had lively discussions with Marathonite customers. Out of all the reasons, here are the top 7 reasons we identified how test automation helps.
1. Test Automation Saves Time and Money
With the advent of agile development practices, most of our development teams do not keep testing to the final phase. The test teams involve from the upfront in the development effort. In this scenario, tests are executed during each of the development releases. Every time a new feature is added or an existing feature is modified — tests need to be executed for validating that the existing features are not impacted by the changes to the code. Further, each release of the software need to be tested against different hardware/software configurations. Automation testing can help in reducing the efforts needed for this type of testing. Once created, automated tests can be executed across multiple platforms, with different data sets. Automation for regressions is one of major benefits for a development team that saves time and money.
2. Test Automation Increases Test Coverage
Test Automation allows us to run tests on multiple configurations, with different data sets and without much of human intervention. Scenarios that take long time to complete and skipped during manual testing can be run unattended.
Automated test scripts can look into the application internals, external systems like database and file systems to validate the behaviour of the product.
Test Automation allows you to run thousands of test cases against multiple configurations — that is impossible to perform with manual testing.
3. Test Automation Removes Drudgery
Even good testers make mistakes when given test cases that are repetitive, monotonous and plain boring. Automated test scripts are good at rote work and improves the accuracy of testing.
4. Test Automation Comes to Rescue for load/performance testing
Performing a performance or load testing in a controlled environment is near to impossible for manual testers. With the help of tools, Test Automation can create tens, hundreds or thousands of virtual users to excercise your application.
5. Test Automation Improves Team's Morale
With the drudgery of repetitive, monotonous and plain boring testing out of the way, our test teams concentrate on what is important. This makes the work more challenging and rewarding – improving the team morale.
6. Test Automation Improves Reporting
Automated tests along with the results and scripts can be shared between the test and development teams, reducing the effort required to create reproducing steps. The application logs and stack traces can be shared reducing the debugging time for the development teams to identify the source of a defect.
7. Test Automation Enhances Reusability
Automated test tools allow you to reuse scripts. You do not need to create new scripts for each version of operating system or application. Over a period, the library of reusable scripts becomes a valuable asset for the test team.