A penetration tester should find vulnerabilities in an application. So he must have a good knowledge of all the possible vulnerabilities that an application can have and how to find and exploit it. Should be good with penetration testing tools and have creativity to use them in a customized way.