I was reading a blog the other day that highlighted the fact that I’ve only got a limited number of keystrokes to use up in my working life. I can use those keystrokes on anything: email, writing code, futzing around with the git command line, facebook status messages, posts on Plus, anything….
That got me thinking about why I think that testing is an important part of software development: not an afterthought, but something that’s as vital as considering API design or how to structure methods. It’s because I only have a certain number of keystrokes. I’d rather spend those working on new features and moving the bits of the world I care about forward rather than fixing bugs or chasing down regressions.
It’s undeniable that writing a test and the code itself takes more time. I’m having to write more code. I’m burning keystrokes. But each of those tests may be helping to prevent regressions, or providing insight into the structure and usage of my code. And that additional insight, and those prevented regressions, mean that cumulatively I have more time to spend hacking on features, and that’s what I love to do.
So that’s why I care about automated tests. That’s also why I think you should care too.