Regression Testing

  • “A bug is simply a test case you forgot to write.”
  • Keep the test suites maintained along with the code; when you check in new code, run against the regression suites to make sure you didn’t break anything
  • Adding new features means adding new regression tests
  • Changing existing design / functionality means changing existing (or adding new) regression tests
  • Regression tests accumulate over time; testing takes longer and longer; developers fear to remove them tho
    • Moral: Testing is a core part of the system; treat it that way