As I am a developer, I want to see a tester to have development experience. He must have complete knowledge of business flow (automation). He should personally get access to the code (prior to this if he has some development experience). So he will be able to rectify where error is occurs other wise he will only test like a lay man. If he want; he updates the code removes the error to minimize Development and QA cycles. There are lots of QA techniques (Monkey testing, Smoke testing etc) you can search around net for detail.