Re: Nobody told me I wasn't allowed to do it.
Randomized (or even methodical) input testing based on zero knowledge can be automated using fuzzing techniques.
Deeper testing of a system requires an understanding of what it is meant to be doing and an knowledge of the ways in which things can go wron. It is this element of engineering that is often overlooked by implementors and is a skill that those who excel at testing have an affinity for. Good testers should always have this different viewpoint of the system. Some of their task can be completed without an understanding of the system - but system knowledge can also be used to inform testing.
However, all this does not build in quality, but should be _part_ of a process that assures quality (and QA should be checking that that process is being properly applied). If testing is finding more than infrequent design and implementation errors that is an indication that the execution of the design/implementation is flawed. Simply patching up those errors is unlikely to result in a good quality system.