As we progress into a digital future, it seems that speed is an aspect that is taken for granted in all transactions. From finding information about anything on the Internet, to interacting with a brand about a product complaint, users want answers in a jiffy. With the advances made on all fronts and the type of gadgets at hand, it has become a possibility and nearly taken for granted.
This kind of expectation seems to have spilled over to the world of software testing as well, with automated testing becoming quite popular and prevalent in most organizations. Does this mean that manual testing is no longer necessary at all? Let’s try to answer this question in detail.
Advantages of automated testing
- Once the set of test cases have been recorded or programmed, the running of the automated test cycle takes less time compared to manual testing of the same cases. This reduces the testing effort by being less labor intensive as well.
- Automated testing is very reliable, and can be a boon especially in repetitive test sequences where human error by fatigue or boredom can cause errors in judgment.
- When there is a need to execute a test case with complex sequences, automated testing might be a good choice compared to manual testing, and can be performed quite easily once programmed.
- The results of automated testing can be provided in a clear format that is easy to read and assess.
http://www.slideshare.net/suyatitechnologies/automated-vs-manual-software-testing
While the above list of advantages sounds impressive, here are some reasons why manual testing and testers are not going anywhere anytime soon!
Automated testing can only follow manual testing: It is only after intensive manual testing that gives predictable results, that a decision can be made about which cases can be automated as they can then run smoothly without manual intervention. It is not advisable to run automated scripts for testing completely new functionality as errors while executing would lead to an incomplete test run, and it is difficult to handle unknown errors in such a situation.
Learning curve for programming test cases: Creating a set of automated test cases requires new skills and acquiring the knowledge of the appropriate programming language. This is not just a one-time effort, but will also require contribution to the automated cases every time a set of cases is added for manually testing any new functionality. Any errors that occur during the run of an automated test cycle, usually due to a new version of the product, might lead to a disruption and non-execution of remaining cases, and could also be tough to resolve.
Subjective testing is only possible with human intervention: When the result of a test case depends on the visual, aesthetic or other such impacts on the users, it is nearly impossible to achieve this by automated test cases. In high-level testing, the kind of insights that a manual tester can provide simply due to experience and noticing any missing aspects of the existing test suite cannot be duplicated by any tool. This is why manual testing is considered more flexible than its automated counterpart. Many types of ambiguous or exploratory test cases and those assessing usability are also best performed by a human tester.
Set-up and maintenance of automated testing can be expensive: Running an automated set of test cases would require a separate environment to be set-up which cannot be disturbed for any other needs. Other than the programming effort required, and the cost of tool licenses, there would also be a constant maintenance that is required for automation, and organizations need to take a subjective call if this cost is really required for their product. For smaller or short-term projects, this additional investment for testing might not make sense, but for long-lasting projects with multiple versions, it is almost a necessity.
Automated testing not suitable for legacy systems in maintenance: In a scenario where the product is already well-tested and not in active development and production, it may not make sense to put in the time and cost required to set up an automated testing environment. An existing manual testing suite would serve very well for such a requirement.
Automated testing can prove to be very useful for scenarios such as regression, load and performance test cases, which would take a lot of human effort and have to be run repeatedly on each new version of a product. It does not seem to be the ideal choice for all types of testing, and manual testing and the testers as well, are definitely here to stay for a long time to come.
We hope our blog helped bring out the pros and cons of manual and automated testing and the situations that they can be used in. If you wish to know more about Suyati’s QA services, write to us at services@suyati.com.
Image credits: gcuk.deviantart.com