Search This Blog

Benefit analysis - Manual versus Automated Testing

Both Manual Testing & Automated Testing have several pros & cons, which are briefly discussed here.

Problems with Manual Testing: Some of the problems with manual testing are:

1) Less Reliable: Manual testing is not reliable, as there is no yardstick available to find out whether the actual and expected results have been compared. We just rely on the tester's words.

2) High Risk: A manual testing process is subject to high risks of oversights and mistakes. People get tired, they may be temporarily inattentive, they may have too many tasks on hand, they may be insufficiently trained and so on. Hence, unintentionally mistakes happen in entering data, in setting parameters, in execution and in comparisons.

3) Incomplete Coverage: Testing is quite complex when we have mix of multiple platforms, O.S. Servers, clients, channels, business processes etc. Testing is non-exhaustive. Full manual regression testing is impractical.

4) Time Consuming: Limited test resources makes manual testing simply too time consuming. As per a study done, 90% of all IT projects are delivered late due to manual testing.

5) Facts and Fiction: The fiction is that manual testing is done while the fact is only some manual testing is done depending upon the feasibility.

It is worth noting that the manual testing is used to do the documentation of tests, creating testing related guides according to data queries, providing structures for helping run the tests on temporary basis and measuring the test results.

Manual testing is considered to be costly and time-consuming; hence we use automated testing to cut down the time and cost.

Benefits of Automated Testing: On the contrary, Automated testing is having many benefits.

Automated testing is the process of automating the manual testing process. We use automated testing to substitute or provide a supplement to manual testing with the use of a comprehensive suite of testing tools. Automated testing tools assist software testers to evaluate the quality of the software by automating the mechanical aspects of the software testing task. The benefits of automation are better software quality, lesser time for marketing, repeatability of testing procedures & reduced cost of testing. We shall now list some more benefits of test automation. They are given below

1) Automated execution of test cases is faster than manual execution. This saves time. This time can also be utilized to develop additional test cases, thereby improving the coverage of testing.

2) Test automation can free test engineers from mundane tasks and make them focus on more creative tasks.

3) Automated tests can be more reliable. This is because manually running the tests may result in boredom and fatigue, more chances of human error. While automated testing overcomes all these shortcomings.

4) Automation helps in immediate testing, as it need not wait for the availability of test engineers. In fact,

Automation = Lesser Person Dependence

5) Test cases for certain types of testing such as reliability testing, stress testing, load and performance testing cannot be executed without automation. For example, if we want to study the behavior of a system with millions of users logged in, there is no way one can perform these tests without using automated tools.

6) Manual testing requires the presence of test engineers but automated tests can be made to run round the clock, (24 x 7) environment. So, automated testing provides round the clock coverage.

7) Tests, once automated, take comparatively far less resources to execute. A manual test suite requiring 10 persons to execute it over 31 days i.e., 31 x 10 = 310 man days, may take just 10 man-days for execution, if automated. Thus, a ratio of 1 : 31 is achieved.

8) Automation produces a repository of different tests, which helps us to train test engineers to increase their knowledge.

9) Automation does not end with developing programs for the test cases. Automation includes many other activities like selecting the right product build, generating the right test data, and analyzing results and so on.

Automation should have scripts that produce test data to maximize coverage of permutations and combinations of input and expected output for result comparison. They are called as test data generators.

It is important for automation to relinquish the control back to test engineers in situations where further sets of actions to be taken are not known.

As the objective of testing is to catch defects early, the automated tests can be given to developers so that they can execute them as part of unit testing.

Drawbacks of Automated Testing: Despite of many benefits, pace of test-automation is slow.

Some of its disadvantages are as under:

1) An average automated test suite development is normally 3-5 times the cost of a complete manual test cycle.

2) Automation is too cumbersome. Who would automate? Who would train? Who would maintain? These issues complicates the matter.

3) In many organizations, test automation is not even a discussion issue.

4) There are some organizations where there is practically no awareness or only some awareness on test automation.

5) Automation is not an item of higher priority for management. It does not make much difference to many organizations.

6) Automation would require additional trained staff. There is no staff for the purpose. Automation actually allows testing professionals to concentrate on their real profession of creating tests and test cases, rather than doing the mechanical job of test execution.

Test automation is a partial solution and not a complete solution. One does not go in for automation because it is easy. It is painful and resource-consuming exercise but once it is done, it has numerous benefits. For example, developing software to automate Inventory Management may be time-consuming, painful and costly resource-intensive exercise but once done, inventory-management becomes relatively a breeze.