Wednesday, July 23, 2008

LinFu, and Biting the Testing Bullet.

Ok, I just have to admit it. LinFu still needs a lot more work. The test coverage is still 'awefully low', and despite the fact that I've kept my code clean and simple, it still doesn't take away from the fact that other programmers rely on automated unit tests to verify that your code works as advertised. I think Jeremy Miller said it best when he sent me this email:

I'm giving you an A+ for the outright coolness of LinFu and the Comp Sci nature of things, but I'm questioning the software engineering. To put it another way, I think you'll get far more adoption of LinFu if you have a better story to tell about the testing. If you retrofit a battery of automated tests to at least cover the dynamic proxy and maybe the AOP, I'd be very interested in using LinFu inside my own StructureMap project.

Jeremy definitely has a point there, and in some ways, it's a bitter pill for me to swallow. The bottom line is that LinFu won't get widespread adoption unless I can increase its the test coverage rate. The irony here is that since I have a low test coverage rate from the start, I'll be subjecting myself to some of the same ills that I woefully complained about in other developers.

With that in mind, I've decided to suspend all new development work on LinFu until I can resolve the test coverage issue. I will find a way to get to 100% unit test coverage, even if it means that I'll have to rewrite everything from scratch.

LinFu is officially on lockdown mode, and I've got some major cleaning up to do.


  1. I am glad to hear that you're going this route despite the hard work that's involved. One added benefit that may help the adoption rate once tests are completed is that the tests can serve as an example of how to use the code.

  2. Congrats!!! Base on my own experience I can tell you that as soon as you start implementing tests you also will start to refactor! For the better...

  3. Seconded! In my 'private' projects I never managed to force myself to do TDD, but once I got involved in a commercial project where TDD was a 'must' requirement I have to say it was quite a good experience.

  4. 100% test coverage? I don't think that is possible, even if it is, it is dangerous to think it is.


Ratings by outbrain