Functional specs? Anybody? Bueller?

OK, so you decide to add tests to your code. That typically isn’t so easy. The odds are that your code wasn’t designed and/or implemented to be easily testable. That means you will have to make changes to it to make it testable without breaking any of it (this is usually called refactoring these days). [...]

