I got a personal reality today of why Larry Wall says the first virtue of a great programmer is laziness.
A couple days ago I had the task of slightly changing the format of some CSV files by hand so that a rather inflexible CSV importer could import them into a system.
I really didn't want to do this. I felt really lazy. Naturally and automatically I just kept thinking to myself that I really should just fire up Ruby and write a program that reformats these CSV files and I kept thinking of reasons of why I should and I finally convinced myself and that's what I did.
Yesterday I saw an unexpected error pop-up in a GUI program I'd been working on that I thought was already fine and tested. Today I kept thinking about how I hate having to test everything every time I make some changes to the application.
And then the idea came into my head that I should write automated tests for these kinds of GUI applications -- duh. And I can't get the idea out of my head. I'm so excited about it. Imagine all the manual testing I wouldn't have to do anymore and how much more secure I would feel.
I realized today that I have so much fun and love writing programs that tell computers to do work that I don't want to do. Just give me a boring task and I'll turn it into a computer program.
Of course I realize that you always have to consider if the overall effort of automating something will expend less energy than the long term manual effort.
17 August 2009
Reading this entry reminded me of a blog entry by Steve Yegge that was posted a few years ago. http://steve.yegge.googlepages.com/saving-time
14 August 2009
GUI testing is a hard problem. Generally what people usually do is write up scripts and then if possible make macros to run these scripts. GUI testing in general sucks, but if you are making something which is mostly a GUI, maybe you should do automated GUI testing (some games companies have automated macro testing).
14 August 2009
Selenium is a good place to start: http://seleniumhq.org/