In both this MSDN magazine article and this episode of the .net show, Don Box introduced four fundamental tenets for developing service based or connected systems.
- Boundaries are explicit
- Services are autonomous
- Services share schema and contract, not class
- Service compatibility is determined based on policy
That inspired me to develop my own list of guiding principles that apply to software testing. These tenets are documenting some key learning’s from over the years working as a Test Manager, Senior Consultant and Development Manager for various software development shops.
- You can’t test everything so you have to focus on what is important.
- If you are going to run a test more than once, it should be automated.
- Test the product continuously as you build it.
- Base your decisions on data and metrics, not intuition and opinion.
- To build it, you have to break it.
- Apart from Test-Driven Development, A developer should never test their own software.
- A test is successful when the software under test fails.
