Wednesday, September 29, 2010

Happy Monday on Wednesday

I have been 'allocated' to test fixes for upcoming patch releases for 2 different projects.
I haven't touched Project A since last August and felt rusty. Project B was just released a week ago and the customer reported a bug that must have been introduced shortly before the release. The team missed it as we were too focused on the last minute fixes and, in my case, exploratory and functionality testing. We ran out of time for regression testing.
I felt pretty disappointed when I learned about the error as I verified that function multiple times while testing a respective dialog window. However, changes kept coming until the day before the release. I kept installing and configuring at least one build a day, making database changes, and still reporting errors. Agile at work! 
I nagged and reasoned about the importance of regression and last minute spot-checking but the release was not postponed. And so that nasty bug turned up in the logs and nobody could figure out why! The worst part was that the web server stopped responding after some time.

I heard James Bach talking about the importance of logs in testing at the STARWEST conference in San Diego today (it was streaming live and for free). I thought to myself what a coincidence. I spent the whole day today checking logs for errors while testing the fix. We are 'married' to logs on our projects. I tail logs when I deploy builds to make sure that all the internal and external connections are established, that database changes have been correctly applied, that data is parsed and tables are populated. I then continue monitoring access and actions in the web application, especially if they result in data validation and changes that in turn trigger subsequent changes and algorithms.

Logs are my friends. Quite frequently they are the only evidence that there is a problem in the code even though everything looks beautiful in the application. I do my best to watch logs closely but sometimes I get caught up in my explorations and lose track of them. I report my findings anyway and attach logs as proof. I know that the developers will ask me how I ran into it and reproduce it.

It irritates me when I can't explain how I found a bug. I find myself running in circles, trying to retrace my steps. Sometimes it's easy. Other times it is close to impossible as there are too many intricacies; and to reproduce something wicked involves stopping servers, rebuilding schemas, restarting the application and waiting for tables to re-populate and then hunt again. I hate it when this happens. We analyze logs and make improvements as we go along. But there is always something that we did not think about during the design phase or there is just something stupid that was missed.

This and a few minor bugs are now fixed and have been verified. Let's keep our fingers crossed that nothing major hits us until the next release in a few weeks.

This is how I felt today dealing with this bug:

No comments:

Post a Comment