“No one tests the depth of a river with both feet.”
Automated testing is better than manual testing
Automated tests are very explicit (black-white) so you have a greater chance of reproducing a bug if found by an automated test to know what the automated test performed to achieve the result. Because automated tests are explicit, they also perform consistently and do not get tired or lazy like humans, who are more prone to error.
Automated testing is faster to run than manual testing, as there is no delay between check-in and check-out time, which means you can run more tests on more browsers faster. Manually testing is the same functionality, for example, doing it in 8 browsers and 4 devices are tiring but can be easily achieved with automated testing.
Automated testing also enables you to test things that are manually impossible. For example, answering a question such as ‘what if I have 200 accounts?’ or ‘what if I processed 10 transactions simultaneously?’ can only be answered efficiently when using automated tests.
Manual Testing is better than Automated Testing
Even when automating a test scenario, you have to test it manually at least once in some way to automate it. (There are controversies). And you have to manually check the test result.
Automated testing may stop working for something like an unexpected pop-up, which can be quickly analyzed and rejected when testing manually.
Manual testing is an activity of the science of wisdom: an activity that requires human judgment. When you are testing, you are using implicit knowledge to judge whether something is working or not as expected. This gives you the chance to find extra bugs, which automated tests would never find. It also allows you to follow the smells you find, to explore areas that may not have been tested or required.
Manual testing is also useful for finding layout problems and trivial bugs, which would not be found by automated testing since you are observing the application fully while you are using it. Usability issues are also identifiable by manual testing, but cannot be discovered by writing and executing automated test scripts.
My 50 cents:
Well-done automated tests are not easily fooled by an unexpected pop-up mere. Well-designed tests avoid this type of situation and work in a controlled environment.
Nowadays you can do a lot more than you think with automated tests such as screenshots comparison tests, which greatly reduces the time for manual tests to check for simple style bugs and broken layouts.
Automated testing can (and if possible should) be written before the feature code itself. These guide the development of functionality for simplicity and evolutionary architecture.
Obviously some things will still be found only with manual tests, but professionals who only do so are no longer in demand, and more and more are looking for not only qualified personnel to work with test automation, but complete professionals, who are developers who create tests, architect a solution that adds value, develop and put software running continuously.
And you, what do you think?
Soon we will talk about: Are there things that can only be tested in production?