Whether you want the manual testing or the automation for your application, it depends on many factors. To make the right decision, right information is needed. They both have their own importance and place in the world of testing. In this article, I am going to list down all the factors which will help you to make a firm decision. We cannot underestimate the power, time saving capability, and accuracy of the automation tools and we cannot deny the creativity and out of box thinking of a manual tester. Yes, both are important and have their own role in testing a software. The question here is that, how do you make a decision of what to choose which works best for your project and takes care of all the testing needs and how to proceed with it? Is only one of them is required or balance of both will work the best?
Below are some of the key points which will help you in taking such decision:
- Type of project: If your project is more on GUI (Graphical User Interface) side then manual testing is the first choice. For example, mobile application testing. You can add automation to test the load and stress conditions, for example, if you click on a particular icon or button for 1000 times or if the memory is filled 90% and then you try and open some apps etc. in this case, major of the testing would be done manually. Let’s take one more example of web app testing, you have UI (User Interface), multiple browser testing, and load testing. Such projects require a good balance of both manual and automation since you have repeated test cases which are valid on different platforms.
- Number of Regression tests: A good practice is to run regression tests when a new change or a bug fix is introduced in the software. It is highly possible that regression tests run multiple times during one release. If your project demands a lot of regression testing and has a huge lists of regression tests, then automation is the way to go. As I mentioned above, compatibility testing requires automation to save time and efforts of the tester. Also, regression is something which you don’t change every day, they are the important and basic set of test cases to be run on a regular basis.
- Skillset of the software testing team: Both manual testing and automation require skill. Manual tester is expected to have out of the box thinking and automation requires scripting and tools knowledge. How much skill does your testing team have? If you have more manual testers then you would need more exploratory testing incorporated and if you have more automation testers then you will have to find ways to incorporate better tools and scripts in your testing. There are other factors which decide the needed skillset like type of project and how much budget your project has.
- Budget: this is one of the most important factors here, automation tools, testers, scripting and framework require additional costs which would be the part of overall project budget. If the project budget does not allow additional expenses, then you might end up doing only manual testing. For a small fix testing or a project with small duration, manual tests are effective whereas project with long duration, huge team and maintenance will need automation.
- Need of Random / Exploratory Testing: we cannot deny the fact that some important bugs can be found by just doing some exploratory testing. For example, if you are testing a mobile application, there could be so many random scenarios which can break that functionality and give you the bugs which couldn’t be found by simply running some functional or regression test cases. If your project demands quite a lot exploratory testing, then portion of manual testing would be heavier than that of automation.
- Team size: when you have less people, you would want to use automation tools to save their time and to reduce repeated efforts. When there are more people in your team, you can have them perform more manual and random scenarios, and distribute the workload accordingly.
- Testing as long term equity: We cannot deny the fact that though manual testing reaps out more bugs but it does not turns out to be a long term equity like that of automation testing. We can agree that at apoint of time we have a skilled team which have a very good knowledge of the application behavior. What if these skilled manual testers quit the organization one day? Does our manual testing with new testers will reap out the same benefit of bug free release? Obviously, the answer is not 100 percent. In such as case building a test automation environment helps a lot in building the long term equity that can makes sure on at least regression testing on iterative release which skilled or new manual testers could have missed while testing the application. Thus automation testing can be proved to be a long term equity or asset to a project in long run. But as discussed before, automation team requires a budget for developing automation script and their maintenance in the future.
Over to you:
When you consider each of above factors in your project planning, you know what balance of automation and manual testing works best for you and your team. If the project is more on the data driven side, then automation will dominate and if its GUI based then manual will dominate. Ideally, to have an effective testing, balance of both forms of testing is needed. For example, to test a web application use your manual testing skills to test the area of application under test and then automate those test cases if possible. Keep a regression suite separately for regular testing after a change or fix into the application and before the release, just perform some random scenarios and use the application like a real user.
What type of testing you are using in your project is it automation or manual or both testing? Let’s share your views on this.