In a profession such as software development, testing the code that your developers write is of the most important things you can do.
Working with complex requirements which can change at any time can be a challenge to say the least. Writing maintainable, bug free code is also a challenge and with the best will in the world the code your developers write is unlike to ever be completely bug free.
If you have a product for example, the code needs to have proper unit tests which are ran daily (even hourly) and when code gets checked in order to make sure nothing gets broken when you make a change. This is fairly standard but the number of places I have seen which don’t have this basic scenario is quite alarming.
When a customer asks for a new feature to the product and you don’t have proper unit tests with code coverage then how on earth will you know if you havent broken anything. To go back and test the entire application is unrealistic but if you don’t unit test the application then you cannot say for sure that you havent broken something no matter how trivial the change may be.
In my next blog post I will talk about CI (continuous integration) and how it should be setup and why it works so well.
In my opinion, software companies need testers – to have the developers test their own software is wrong, even to have other developers test other developers work is wrong, testers are professionals and they test out with the boundaries that a developer would test. Testers save time and money in the long run as the product becomes more stable, less bugs appear and your customers are happier as the code is more reliable.
Releasing code also becomes less fraught as you can have confidence in the fact that the code has been tested and has passed the unit tests.
When the tekpub videos talk about coding, Rob Conery always says if you’re not doing Test Driven Development or Unit Testing then you’re doing it wrong – I have to agree with that comment. We are software professionals and cutting corners is not what we do.