A Strategic Approach To Software Testing