>Today while fighting the undead for BLITEOTW day, I managed to fix about 491 failing unit tests for the W3C XPath 2.0 test suite. Formatting of XSDouble and XSFloat values were causing some of the biggest pain. However the big nightmare was getting xs:gDay, xs:gMonth, and xs:gMonthDay date creation setup right. This is where the importance of tests, and a guide test suite comes in. With out the tests, it would have been a crap shoot making sure we had things setup correctly. With out tests that can be re-run time and again, you have no way to know that you aren’t doing more harm than good when changing your code. Reading specifications, and coding to how you think it should be done, is not the same as actually running that code against a test suite.
Testing Status for PsychoPath against the XPath 2.0 Test Suite is as follows:
Code Coverage: 75.2%
As I’ve mentioned before, when I started out testing, we only had about 20% code coverage, and we failed nearly 6000 of the tests. If you are writing against a specification and it has a test suite that is commonly used to check compliance, take the extra time to run your implementation against the test suite. It helps to make sure your implementation is interoperable with others. It will make your consumers happier, as well as any adopters that may be building off your implementation. Oh and Publish your results.
It takes time. It isn’t glorious. The effort can pay dividends later. Oh and thanks to Nick Boldt for letting me know about BLITEOTW.