In our attempt to clean up software engineering and make it a more rigorous profession, I assert that testing is one tool that will ensure that the discipline produces consistent results and repeatable quality. Testing should be at the forefront of a developers’ mind, but in most cases it is an after thought. I suppose this is a reflection on the human condition. We are forever optimists hoping that our artefacts will stand the test of time.
Well I don’t live on hope and for me life is a set of precise constructs. Gravity always wins and code breaks. So lets get test-infected.
Writing a good tests assumes:
- A knowledge of the domain or access to a subject matter expert – can be the product owner
- An adequate tests framework
- A testable architecture
As someone once said, “any one can write a programme, it takes a disciplined developer to write code with tests”.