The 7 Principles of Software Testing