This post is part of the Pride & Paradev series.
Which is better: manual or automated testing?
Manual Testing is better than Automated Testing
Manual testing is better than automated testing. Even when automating a test scenario, you have to manually test it at least once anyway to automate it, so automated testing can’t be done without manual testing. And you have to manually check the automated test results also.
Automated tests can stop working by something as simple as an unexpected pop-up dialog which can be quickly analyzed and dismissed when manually testing.
Manual testing is a sapient activity: one that requires human judgement. As you are testing you are using implicit knowledge to judge whether or not something is working as expected. This enables you to find extra bugs that automated tests would never find. It also allows you to follow smells you find to explore areas that may not have been tested or required.
Manual testing is also helpful for finding layout issues and trivial bugs which wouldn’t be found by an automated test, as you’re fully observing the application as you’re using it. Usability issues are also identifiable by manual testing but can’t be discovered through writing and running automated test scripts.
Automated Testing is better than Manual Testing
Automated testing is better than manual testing. Automated tests are very explicit (black and white) so you have a much higher chance of reproducing a bug if found by an automated test by knowing what the automated test executed to achieve the result. Because the automated tests are explicit, they also execute consistently as they don’t get tired and/or lazy like us humans.
Automated tests are quicker to run than manual tests as there’s no lag time between input and checking, and this means you can run more tests in more browsers more quickly. Manually testing the same functionality in, for example, 8 browsers and 4 devices is tiring, but can easily be achieved with automated tests.
Automated tests also allow you to test things that aren’t manually possible. For example, answering a question like ‘what if I had 200 accounts’, or ‘what if I processed ten transactions simultaneously’ can only be answered efficiently by using automated tests.