Testing You should test all of your lines of code Especially error paths Really: fake all errors and check the outcome Whe you have a bug, you can't debug your error management too Any "if" is one test-run more in your way to delivery Which doesn't mean I support "test-driven programming" To be honest, I see the rationale behind TDD But the true gospel of TDD kills creativity And please remember to test corner cases Run-time is the best testing environment If come scary code is unlikely to run, make it frequent Scared about overflows? Start at 0xffff Scared about 64-bit ops? Shift your data up "I hope it won't happen" leads to failure