Monday, June 17, 2013

Which is better: Manual or Automation testing?



This is a very interesting topic which has been debated endlessly ever since the evolution of Software Testing and more so in recent times, as Software QA and testing has gained more prominence.

Let me first start by demystifying the myth about Automation testing. Many people have the misconception that Automation gets the work done faster than manual, hence it is better. The truth is far from it. While Automation definitely has its advantages and can reduce time and improve productivity, it is in no way an effective replacement for manual testing.

Any Software, big or small has to go through one round of manual testing as a minimum (or more as the situation demands). Manual testing requires domain knowledge, thorough technical grounding and good testing instincts with creativity to spot bugs early on as a minimum. Only after the functionality has been ascertained and the application stable can we proceed with automation. And also, there are certain areas which cannot be effectively tested by Automation testing.

That said and done, in todays’ testing scenario, given the complex nature and strict timelines needed to deliver top quality applications, we cannot afford to ignore automation at all. We would be doing so at our own peril. Automation can help us perform repetitive and complex tasks faster and safer leading to greater productivity. Automation also helps to reduce the load on manual testing giving testers more time to do some exploratory testing on the product, in turn leading to higher product quality. Automation has been used extensively and effectively in tasks involving high degree of repetition and complexity such as regression testing, cross browser testing, loads and stress testing etc. To put it in Industrial terms, manual testing can be compared to the initial design and testing of any product in a factory such as an automobile. Automation can come later and can help in performing tasks repetitive and time consuming tasks faster such as assembly, spray painting etc.

In a nutshell a complete tester / test manager / lead would be one who has a good understanding of automation tools as well as emphasizes the importance of manual testing. Manual testing would be like laying the basic platform for good and robust software of excellent quality and Automation can help us build on that and improve our delivery timelines and overall product quality by leaps and bounds. As the complexity and size of software grows, the more intermingled and important both will become.