The major objective of testing is to identify the hidden errors, not simply prove that the software works. For a tester to be effective in his role, he must be able to analyze the given business situation and judge all the possible scenarios. He should have the capacity to identify and tackle unfamiliar problems and should develop a strategy to validate it. Creating situations and validating the application under test, before presenting it to customers, can be done effectively only by a person who has strong analytical skills.
A tester should be able to separate the whole into logical parts -- to examine a complex problem, its elements and their relationships. He should be able to develop a logical argument based on relationships between elements and propositions, as well as be able to identify implications, relationships, redundancies and contradictions without leaving any room for inconsistency and ambiguity. He should be consistent in analyzing and solving complex, multi-step problems.
This was first published in November 2007