24 January 2014

The Whack-a-bug days

We're getting to the end of a three-month development project, exploring new technologies in ahead of a much larger project that will kick off sometime next month, and I have been working like a dervish to keep up with five developers.

I'm feeling quite pleased, overall, with the testing I've done. I have a mix of scripted manual tests, automated functional GUI tests, and exploratory testing areas, plus some random shell and python scripts for helping me through the nasty bits. The developers on the project are all experienced, decent, and they produce quality code that is a joy to test. I'm not tripping over stupid bugs that stop my flow and prevent me from getting down into the nitty gritty details where I love to frolic.

This week I found an NPE in a single line of code with the only possible case that would ever find it, an incorrect response from a REST call in such a corner case that I had to run the same script 400 times to check the fix, and my automated tests found two bugs immediately after the developer committed his changed code.

But then today came along and spoilt my whole week. There was a fairly big feature added to the product, with the terrifying comment "and then I found I had to refactor all the error handling", and all hell broke loose. I didn't get a green build all day, left the office at 19.00 with it still red but narrowed down to a single bug, and another problem, with a jsQuery parameter being intermittently set to null, raising its ugly (and I thought beaten) head all over the place. Oh, and the hour and a half I spent chasing a bug that turned out to be nothing more than a hardcoded value in a helper app as opposed to an actual bug.

To add to the fun, two of the identifiers I use for GUI elements in the automated tests changed name. And then one of them changed back to its old name. And this was apparently a really cool bug that I had found, but in reality was just me sitting in front of my monitor feeling confused.

Which got me thinking about how my job is really about being able to zoom in to the details, and then zoom out to see the big picture, on a minute by minute basis. And that while it is definitely better that I find those bugs now rather than in a month's time, working so that I do find them that quickly will inevitably result in days like today, when I am either chasing my own tail, or staring sadly at a build that has new failures for reasons that I don't want to look at at half past six on a Friday evening.

********************************************************************************

And yes, it has been a while. You're not interested in my excuses, so I won't make any. Nor will I make any vague plans to return. I'd like to keep this active as a place to talk about my work, but lots of other things have my attention too.