Software Testing: Manual vs Automated

Software Testing, as described in Wikipedia, is the process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development; works as expected; and can be implemented with the same characteristics.

Software Testing is incorporated in many software-making industries to guarantee the market that the products being offered to them are effective, safe and of standard.

There are two major approaches if software testing. One is manual where a person is hired to execute or try out the product in different possible ways/ scenarios a customer will use it. Another approach is the automated where the company acquires an external or third-party tool which will execute a pre-set of steps or scenarios a customer will use it.

What do you think is the best approach in software testing? I will cite below the advantages and disadvantages of both testing approaches and you decide which is the best.

One major advantage of manual testing is this: Since a person thinks, therefore, the tester will find ways and means on how to best explore the product aside from the pre-set ways presented to him/her. In short, a person can do exploratory or monkey testing.

On the other hand, its disadvantage is this: Time consumption. The efficiency of the testing method depends on the tester. Efficiency varies from one tester to another. Compared to a machine, the efficiency and effectiveness of the testing is consistent. Thus, it is safe to say that manual testing is slower than automated.

Let's now move on to the automated. One major advantage of the automation is this: Efficiency. Since automation incorporates machines/ tools in which steps to execute are pre-set/ programmed, one click of the button provides the result efficiently. No matter how many times will you execute the steps, you are sure it will only yield the same result, as compared to manual where testing results vary due to external factors like erroneous data input, etc.

On the other hand, it's disadvantage is this: No human insight. During automated testing, the machine only executes what the conditions of the pre-set steps are. It has no capacity to think outside of the pre-set steps and do exploratory or monkey testing.

As you can see, advantages of the two testing approaches cancels out the cited disadvantages, bringing the best of both approaches when combined. Thus, the best approach is to incorporate the two software testing approaches. Why pick just one when you can have both!

Views: 2291

Add a Comment

You need to be a member of Software Testing Club - An Online Software Testing Community to add comments!

Join Software Testing Club - An Online Software Testing Community

Comment by jhenz on July 7, 2010 at 8:14
WOW! I am so overwhelmed with your feedback! Each and every one has great ideas that we can really incorporate in our professional life! I am sure that these will really help us, one way or another. Thank you very much, guys!!!
Comment by Gideon on June 17, 2010 at 12:27
I think I support Naveed saleem's comment .It really makes load of sense..because there are some projects that you just have to do some of maual ..But as for efficiency? For me Autmation will still be preferable ...It's a two way thing .
Comment by Dan Parkins on June 16, 2010 at 21:09
I’m with Bj. Well, I was until he mentioned “random graph traversal patterns…” Using both automated and manual testing is a balancing act. Rely too much on automated testing and you end up burning resources to maintain the automated scripts. Next thing you know, your automated scripts become the project bottleneck.
Rely too much on manual testing and you burn out testing resources on repetitive tasks. Or worse, the human robots start to fake testing so that they can get home on time.
As Teemu suggests, you need to know when to use the right tools for the right job. You certainly want to be responsible for “test errors”, where the defects are categorized as testing defects and now you’re testing becomes part of the problem instead of the solution.
Comment by Naveed on June 11, 2010 at 17:02
HI, I think we can not choose only one out of (manual testing or automation testing) to get maximum results. All the time we have to use both depending upon the project scope how much to automate and how much for manual.
Comment by Bj Rollison on June 11, 2010 at 16:10
Hi jhenz, your conclusion is spot on. There is not an either or solution to the testing problem. You will see many polorized comparisons between testing approaches such as manual vs. automation, exploratory vs. scripted (or prescribed), etc., but no single approach is effective all the time.

Just as a footnote, there are automation engines that can do automated "monkey testing" and some would say that (state transition) model-based testing is automated exploration of state machines, especially when using random graph traversal patterns. However, even the most well codified automation system still lacks cognitive dissonance.
Comment by Markus Deibel on June 11, 2010 at 9:49
The perfect example of when to use what was published by Pradeep Soundararajan only a few days ago.

Comment by Teemu Vesala on June 11, 2010 at 7:00
I'm using both. Smoke tests - automation if it is possible. During nightly build the smoke test can be also done. Of course this is not always the viable solution because application might change too rapidly or there isn't resource for test maintenance.

I'm also using automation a lot to support the manual testing. In many cases there is lot of actions which must be repeated and have very simple checks. If I can automate those so that manual tester can easily execute the automation part, I can release manual testers' time for better use.

E.g. I had one case where manual test had plenty of waiting because the operations were done by batch processor and also lot of image comparisons. There was lot of error prone data transfer from tester's machine to test environment. The automation part did data transfer, checked the results, told when all batch processing has been done, did some sanity check (compared hundreds produced images to reference items) and then told for manual tester when all were done. It needed manual interaction to start the processing and to check part of results. But it removed the most error prone manual parts.
Comment by Markus Gärtner on June 11, 2010 at 6:09
The best approach to software testing is to trade-off your available time with sufficient automation and sufficient manual testing activities. It's not either manual or automated. Instead consider what serves your project and provides you with just the right mix. This could be all automated, this could be all manual, but more often than not I see teams that should do some of one, and some of the other.


© 2017   Created by Rosie Sherry.   Powered by

Badges  |  Report an Issue  |  Terms of Service