Friday, June 11, 2010

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!