Test Automation – Advantages & Limitations
What is Test Automation:
A set of automated test cases is (basically) a program intended to test another program. A variety of tools available in the market (such as Ranorex and SOASTA Tests, which are Olenick partners) offer a number of features that emulate Mobile user behavior and validate usability aspects such as size of images & display, location of links and buttons, reaction to touch over screens and response time when performing certain actions – and many more of the kind.
Test Automation Limitations:
Automated Functional Tests CANNOT be used to validate user experience in regards to ease of use, GUI friendliness, appearance and aesthetic consistency across the application. The testing of those items can only be automated indirectly, for example, searching the GUI for certain items with specific features. In other words: the acceptance criteria for items accounting for the user experience MUST be covered manually by humans at first. Then, the “positive” impressions from the user can be translated into checkpoints, whose aspect and presentation can be used as validation points in an automated test suite.
Test Automation Advantages:
- It is way faster than the manual testing. Even highly trained manual testers will not outdo an automated suite of test cases. This is particularly valuable when rushing regression testing against the clock after any changes are introduced close to a project deadline.
- Wider test coverage of application features. Items such as performance and stress tests can be covered only by automation scripts. Therefore, by automating your test cases you will expand your testing coverage.
- Reliable in results. Functional Automation tests will always validate that their checkpoints fulfill the expected results.
- Improves accuracy. Even the most conscientious tester will make mistakes during monotonous manual testing, since repetitive tasks numb the eye. Automated tests perform the same steps precisely every time they are executed and never forget to record detailed results.
- Ensure Consistency. Automated test suits assure that the type of testing you make will be incremental as time goes by, yet consistent from the very beginning of the project.
- Test scripts are re-usable. With basic maintenance, test scripts may be used across different platforms. Therefore, you will not need to start from scratch every time you need to test your product over a new OS or device.
- Human Intervention is not required during execution. The execution of automated test suites can be triggered periodically and report any bugs or inconsistencies via email or many other means. Therefore, no human intervention is required.
- Increases Team Efficiency. If you have your DEVs share the access to automated tests written by your QA team, they will be able to catch problems quickly before sending a stable build to QA. This means that their confidence in their builds will be higher, and the cycles of bug fixes will be way shorter.
- Helps you test your product frequently and thoroughly. Testing areas of the application that are outside the core functionality may be hard when you are short of time. Once you have automated your test cases, ALL features will ALWAYS be included in your test plan. This means minimizing the chances of not catching bugs when you deliver builds under pressure.
- More cycles of execution can be achieved through automation. Given that the execution time of an automated test suite is way lower than manual, you can achieve a higher number of executions in the same amount of time. This is particularly helpful in AGILE contexts, where lots of changes are made in a small period of time.
- Your QA Team will be more motivated. Automating test cases implies increasing everyone’s technical skills and learning how to code and integrate. This will make work more challenging for the whole QA team, as well as force them to cooperate and communicate better. Motivated & cooperative teams deliver their products better and quicker.
- Early time to market. As mentioned above, automated testing increases the efficiency and speed of team deliverables. Therefore, the lenght of time it takes between a product is conceived and the moment it is available for sale ends up being way shorter.
- Saves Time and Cost in the long run. Manual testing does provide value, same as writing test plans and test cases. However, the cost of each execution is stable through time. On the contrary, once created, automated tests can be run over and over again at no additional cost and they are much faster than manual tests. Automated software testing can reduce the time to run repetitive tests from days to hours – time savings that translate directly into cost savings.
By Ricardo Ferrari, Lab Site Manager – Olenick & Associates, Buenos Aires