Today I started working on one of the components. This components is the one that already had some tests. The component is a device driver (written in C!) and it is the component that I mentioned yesterday already having some tests.
Within the first hour of adding some extra tests I found a couple of bugs that had not been reported. I suspect that these bugs have never been seen because the driver is never used the way it is in the tests I have written.
Is there any point in writing these tests then?
I think so. Firstly there is nothing stopping another developer from writing another component that uses this driver that way. That developer will get somewhat annoyed when they find out the driver is misbehaving. Secondly, based on my current understanding of the expected new functionality to be added later in the project, that other developer will quite likely be me.
After fixing the broken tests I continued adding a few more tests, finding bugs and fixing tests. That has been my day. I am happy because the driver (while not finished) is now a lot closer to ‘zero defect’ than it was when the day started.
I have a suspicion that tomorrow might be a similar day, I’ll let you know…