Is your design on the right track? Remember "PC-COF"

Testable Software Design:

Here’s my current definition of a testable system:

For each logical part of the system, a unit test can be written relatively easily and quickly that satisfies all the following PC-COF rules at the same time:

  • Partial runs are possible
  • Consistent results on every test run
  • Configuration is unneeded before run
  • Order of tests does not matter
  • Fast run time

—Roy Osherove via Keith Ray.