Side Effects

Ever seen a quick fix turning out to create a chaotic situation, thats called Story of a Side Effect. Happens a lot in maintainence projects when you are looking for a quick fix, inspite of reviews and testing rounds, you still manage to introduce new bugs.

One of the famous side effects that we all laugh about in my current project was a really interesting one. I was working on a web based reporting tool and the project was very data intrinsic and performance and accuracy of reports were of the utmost importance, so, I was really concerned about the testing team looking into the accuracy of the reports in all scenarios and all the testing team was coming back to me with were cosmetic bugs which was really annoying at that stage (especially when I so hated working with HTML and Javascript). Anyways, one of the testers reported a bug regarding the submit button on the user page not being title case and the bug was raised a show stopper to make sure that it was fixed and not overlooked by the otherwise UI ignorant developer, in their words. One of the team members went ahead and altered the jsp page to make it title case and turns out, the whole applications went bizarre. No reports got generated, no errors on the standard output or standard error, to everyone’s surprise a blank frame came up everytime the request was submitted to generate a report. Apparantly, it was due to a check in the Action class which was meant to handle request from multiple entry points and used the submit action to decide which entry point was the request coming from and thereon generate the report on the web page or on the filesystem and so the side effect of a cosmetic fix. Whenever we sit for lunch and discuss any bugs, this one really comes up and the tester surely mentions how these developers hate TitleCase.

I really feel for a team to prevent any side effects to creep in, testing done by testing team can never be enough. Their skills can make them look for bugs in other scenarios of the same module, however, only a developer exactly knows whether or not there is a shared code between modules and changing anything in one module can lead to affecting what all other modules. On the other hand, due to the mindset of a developers, they only test the code on the same patterns that they wrote it on (dont think many would be able to understand this sentence). The best way to capture side effect, therefore, is to have the developer point out the parts of applications to the testing team that the testing team should surely test thoroughly to get the best out of both skills.

PS – May be I have left some related point untouched in this blog, do make sure to point out that side effect to me.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s