Testing is development here…

Testing is such an integral and important element of our development process that it’s difficult to distinguish from design and coding.

All the software we create is done in a test-first fashion (Test Driven Development). When we start on a new feature we first create system tests and unit tests. This test code exercises the source code, confirming that it satisfies the behavior the customer has asked for.

Testing first does a number of very good things:
  • The test becomes the first user of the source code.
  • Bugs revealed by the tests are easy and fast to fix because where they are is known.
  • Very few latent bugs survive to production where they are hard to find and fix.
  • Tests serve as living documentation for future developers.
  • We can work confidently and happily with our customer knowing that what we create is sound.
  • All of our tests are automated, so we can run all of them all the time (known as regression testing).
  • Our test suites help us maintain and extend source code since they are watching that nothing is inadvertently broken.
  • Designing for testability naturally creates good design.

Visit our best practices center to learn more about the nitty gritty of how we do testing.

Edit