Test automation
With the beginning of the test plan on every software product comes the question for the test automation and the manual testing. Which one should we use?
Manual testing
First it is very important to notice that manual testing is not just random clicks on the user interface of a software application. For efficient testing of the software product you should have test plan and strongly defined test cases. Manual testing is the process of executing trough these test cases manually.
Test automation
Test automation is a software code that is executing the same test cases or test scenarios but automatically using some kind of test automation tools or frameworks.
The development time of test automation can take a lot of time . Usually is a huge investment of time and resources. Some software companies prefer to use offshore outsourcing comapnies for doing their test automation, which cuts the costs.
It is common believe that once the test automation is created it is working forever. That is completely wrong. You can expect some expenses for fixing the test automation. But at the end test automation is much faster than the manual testing and is the only way you can do a fast regression testing. Test automation is recommended especially for very big software products.
My personal advice on whether you should use manual testing or test automation for your project is: Always have a small set of the most important tests automated, so when a bug fix is introduced at late stage of the project you will be able to run very quickly the most important test and after the bug fix is applied you will be able to do a full test pass.
Please don’t spread the myth that automated testing is much faster than manual. Management actually believes it without thinking. They really expect something that takes 30 minutes to do manually to run in 5 minutes if automated. Even thinking it will be 20 minutes if automated is wishful thinking.
With exception handling, sync points, etc. I have consistently found that automated tests take as long to run as executing manually. Now, I have been automating against enterprise-class software with hundreds or thousands of unique forms for the last ten years, so your mileage may vary. The more complex the SUT, the slower automated tests must necessarily run.
What automated tests can do that people cannot is work 24 hours a day. So I tell my management to expect 1 machine = 2.5 people. That allows time for inevitable machine hangs, network going down, etc.
I’m sorry to keep going here, but I also have to disagree with your statement that a small set of the most important tests should be automated. The most important tests are not always easily automated. This, again, leads to management misperception. They, and newbies to testing, start complaining because the tests that need to be run every time aren’t on a plan to automate them. Not every test is worth the time to automate, whether it is executed every build or not.
Thank you for the good comment. You are right for most of the things, but you are missing something.
It is true that test automation will run not much faster than manual testing, but if the test automation is created in a good way you can run it on multiple computers and achieve very good speed. In my company every tester is having at least 3 computers. One is used for creating the test automation and the rest is used for running test automation. If we need to achieve faster speed we are just adding more computer and this is up to the management if they want to spend more money on computers to achieve more speed.