Nowadays, we tend to advocate test automation. But, is it really good to automate everything? What are the benefits of test automation? How to choose which tests to automate?
Manual testing execution takes time because it is necessary to set up a meticulous and recurrent time-consuming testing protocol. Testers are limited by the time available to work. When it comes to automated testing, execution time is optimized. Automated test protocol takes more time to implement, but takes less time for each execution. It allows automation to be competitive as the number of deliveries/campaign replays increases. Also, automation works 24/7.
For testing accuracy, manual testing is relevant on a human aspect. In fact, it allows more flexibility from a human perspective in the viability of the tests. Elements that were not initially in the tasks can be judged manually. On the other hand, automated testing relies on automation tools and scripts. In fact, scripts cannot find anomalies if they are outside its test program. However, automated testing shows a higher efficiency, because automation is run by a machine, where a manual process increases a risk of errors omission due to the human factor.
When well done and without heavy maintenance, test automation gives more time to testers to explore real end-to-end end-user UX and interface scenarios. However, exploratory and UX testing are hard to engage due to heavy workload on manual testing.
Types of tasks
With automated testing, coverage tests and functional tests can be automated, including real user simulations.
For the UI, both types of tests are valid. With manual testing, the tester can give feedback on the application's user-friendliness to provide ideas. With automated testing, automation does not allow for objective opinions but gives more time to testers to provide feedback.
User path testing
Automation does not analyze or perceive system behaviors that are not implemented in its programming, whereas humans can perceive particular system behaviors. For this part, manual testing tends to be more effective than automation.
Automation can’t judge the user experience. This task needs a brain to verify the correct display of text, links, images…
With automated testing, it is easy to ensure greater test coverage with automated regressions tests. It produces future regressions' automation tests on new codes. Automated testing should be done at the most convenient time for new products delivery. Coverage exhaustivity may be delegated to code footprint tools or requirement traceability tools.
With manual testing, coverage exhaustivity requires tests plans analysis or requirement traceability. Also, there is a waste of time testing the old codes in addition to the new codes of each new version.
Automation follows its program, regardless of the context, and it adapts to any type of system. On the other hand, a tester may encounter difficulties if he is out of his comfort zone. Automation speeds up the verification process and allows more time to correct anomalies. Moreover, manual testing can lead to deadlines overrun if too many errors occur.
Due to heavy workload, manual testing should be done at the very end of the software production process, breaking the production process. Processes may be leanified by automation by allowing a more softened flow of work.
Teams state of mind
Validation teams are under pressure for each delivery testing phase. Developers are also forced to work on two versions at the same time. Automation testing provides more regular work, allowing testers to have more time to work with other teams (3 amigos), ensuring a better state of mind.