This is one I learned in a class from BorisBeizer many years ago - if you can graph it, cover the graph. This pattern is the foundation of many test methodologies include code coverage testing, transaction testing, data flow testing, state machine testing, etc.
-- HowardFear