After 13 months I've decided to move on from Moontoast and take a position as a senior web developer with Kaplan Professional working on their platform team and trying to create all sorts of testable awesomeness with them. I start on March 12 with two weeks of training in La Crosse, WI, followed by two weeks at home (wanted to be home for my birthday and family good times as Easter), followed by 4 weeks in La Crosse and then back in my basement lair cranking out the work.
With the new position comes more of the stuff I am really passionate about: testing and automation. Which also got me to thinking about the reasons why I am so passionate about these things.
I thought I would create my own little testing mini-manifesto here. The ideas my podcasting partner did with his MicroPHP Manifesto made me realize that sometimes it is good to write these things down, as it were.
I test because the tools are easy to use
I write tests because the tools that exist today to write them are easy to install and testing techniques are easily taught.
I test because I don't like surprises
I write tests to make sure what I am building behaves the way I am expecting.
I test because I want people to understand what I've done
I write tests so they can act as documentation for how to use things that I have built.
I test because I want to be able to change things fearlessly
I write tests so that I can experiment and change things, knowing I have a way of telling myself if I've done something wrong.
I test because automation is a secret weapon
I write tests so I can create an automated developer workflows that will reduce the likelihood that something horribly broken makes it into production.
I test because it forces me to focus on design
I write tests to force me to loosely couple my components and create simple systems that can display complex behaviour.
I test because to me it is the right thing to do
I write tests because applications with a high level of test code coverage have significantly reduced bug-fix cycles and turn production deployments into non-events that happen multiple times a day.
I hope my mini-manifesto at least makes you think about where testing fits into modern web application development.