As I mentioned earlier, in black-box testing you have no idea how the functionalities have been implemented. You can get very creative with the ways you use certain parts of the software you are testing and go with your intuition. This way you can find bugs developers haven’t thought of.
Manual tests are one of the ways to implement black-box testing. You can either click through the app yourself or use an automation package. I like to use Selenium. What benefits does automated testing bring? Let’s say you want to register 100 customers. Why risk hand cramps and watery eyes from filling in the same registration form for two hours? I’ve done it too many times in the past. Now Selenium does it for me once I write a code it can execute many times in a row. Minus the watery eyes and hand cramps of course.
The most obvious advantage I see in black-box testing is detecting bugs and glitches in the software by using and abusing it as some end users would. What’s the most appropriate time to run black-box tests? One can do it during development but even so, one can NEVER forget about it right before putting the software to production.
The biggest con to black-box testing (which is not really a con if you also test software with white-box techniques) is the fact that you can sometimes lose a lot of time testing something that was not intended to exist in the first place. Imagine a situation when a certain functionality had a different purpose than you interpreted. Until you ask a developer or product owner, you might not even realize that your interpretation was in fact wrong.
Being in the dark (I can’t get enough of these cheesy puns) can be good and bad at the same time. That’s why you have to ask questions, often ahead of time to make sure that you understand what you’re testing.