Why Test

Here are some common reasons given for automated testing:

  • Reduce bugs
    • Confirm nothing breaks when platform and dependencies are updated.
  • Provide documentation
  • Improve application design
    • Expose design flaws; “architectural pushback” (AiA)
    • Defer design decisions (Metz)
    • Write decoupled code (Martin)
  • Support refactoring
    • Supports increasing abstractions (Metz)
    • Confidence to drastically evolve the app (AiA)
    • Clean messy code so you aren’t slowed down by it anymore (Martin)
  • In all of the above, the ultimate goal is to reduce costs of time and money (Metz)

Sources: