From my experience most new bugs get found through exploratory testing. Automated testing is more for confirming that the system still works but not for finding tricky bugs.<p>It works especially well if the tester has a lot of experience as developer or tester. When I test a piece of software where I know the stack that’s used I usually can guess the difficult parts where the devs may have made mistakes. And of course you need real users. They do stuff nobody ever thought about during development.
This reminded me of a blog by Michael Feathers about a similar idea he calls Characterization Testing. There's also some code examples. The difference is instead of trying to find out where the gaps are in your scripted testing, it is about creating tests in order to understand something that isn't tested or has an unclear specification. The intentions are slightly different, but the I'd think the process is the same.<p><a href="https://michaelfeathers.silvrback.com/characterization-testing" rel="nofollow">https://michaelfeathers.silvrback.com/characterization-testi...</a>