With the evolution of technology over the past decade, developers and testers are required to spend excessive amount of effort in testing their products. Mobile revolution and emergence of e-commerce market has further complicated this process. Numerous combinations of operating systems, browsers, databases and devices are already giving nightmares to many of us. Also, in domains like banking and point-of-sale, ‘security testing’ becomes an essential part of the test plan.
In today’s competitive business environment, relying only on manual testing has brought in lot of challenges to the organizations. In such difficult times, test automation emerged as a savior and has played an instrumental role in overcoming challenges posed by manual testing.
Many people think that test automation is a panacea for all their software testing challenges. But digging deeper can enlighten us with the fact that there are certain advantages which are specific to manual testing and cannot be achieved through test automation.
• Not everything can be automated: Things which are dynamic in the software gives a hard time to automation testers. And in some cases if they are automated leads to huge maintenance effort which results in low ROI. For instance, in the visual layout and UI related test cases, one can automate limited things and cannot replace the “human eyes”. For example, on a web page if a button is present on the UI, the selenium test will mark it as “passed” irrespective of its location on the page whereas human eyes can catch such kind of bugs in fraction of seconds. Also, in cases where hardware/handheld devices are part of test case steps, automating them is impossible.
• You cannot automate the user experience: ok, we have automated the functional test cases and also have covered UI test cases to some extent. Now, is this much testing enough for your product? What about the usability testing? We clearly cannot automate the overall user experience.
• More is less: The more time tester spends manually testing a module the lesser is the probability of overlooking the real user bugs. Automation tool is again just software and test scripts are also code which doesn’t necessarily act as a real user.
• Domain expertise is imperative: Test automation is appropriate for regression test cases and may not be a one-stop solution for new features. The reason being testing of new features require domain expertise in writing effective manual test cases. Also, test automation needs to be planned, discussed with team and development of tests takes time.
• Dilemma of recruitment: Employing people with expertise in test automation and domain knowledge can give you a tough time. Firstly, such talent might not be readily available in the market and secondly, it is expensive.
• Things that matter: If an automated test has passed it does not necessarily ensure correct software behaviour. Probabilities of false ‘passed’ test case always haunt the automation testers.
As they rightly say, things which really matter ought to be tested manually anyway!
It’s a fact that in the current scenario, manual testing alone is not a feasible solution and effective test automation gives enormous ROI due to the reduced test execution cost and effort. But at the same time it is also true that test automation cannot diminish the sheen of manual testing.
A wise combination of manual and automation testing can fulfill the need for an effective software testing solution for your product.