Tuesday, April 14, 2015

Test-aliens are here on Earth, Go slow developers !!

 Why should a company have a team for Software Testing and Quality Assurance? What is the need to test a software?

Why shouldn't developers test their own work?

When I started my career around two years back I encountered above listed queries. At that time I had no reply to these queries. But after dwelling around two years in IT sector I come along with some firm replies.
                             All above listed questions are inter-belonging and the highlighted one was recently posted in a programmer's Q&A post, it inevitably raised my curious eyebrow. This can be a big debate. Diving straight to the point, the simple, unmistakable and well known answer is : “Developers are not very good testers.”
                                                                   But according to my understanding correct answer is, - “They don't want to see bugs in their code and only look for happy paths and and happy endings.” (Beleive me I was a developer in the past and then I moved to QA to avoid QA on my code, now I'm coding Automated Selenium Scripts and no one doing intesive testing on it and that's what I'm enjoyng. )

I know developers will never accept this fact, but I have a set of reasons for this to prove:

1) “Parental Feelings” towards their code
Developers are emotionally linked to the stuff they write. It may sound silly but it is hard to be objective towards the stuff you create.
For example, I know my kids are not perfect and still I am sure I would have a hard time if someone would come to me and starts criticizing them in any way (after all they are perfect, right? )

2) Optimistic developers
Yes, I wrote the code and I am confident it’s working properly. No need to test this path, no need to test that path, as I know it’s working properly. And right here developers skip the bugs.

3) Developers have Constructive attitude while Testers have Destructive
There is a big difference in developer's testing and tester's testing is that the developers usually make sure that their code is working properly whereas testers usually look for how the application is not working correctly.

My Bottom Line

Now you are good to go and set “Quality Checks” on developer's code. No doubt, code they write is their baby but it's QA's job to make the baby smarter. A small QA team has been established here and I hope we will build a good team with developers as well. Afterall, we are here to help the coders not to obstacle them. The key words – Unity, Trust, Respect for others opinion and acting without fear are ingredients for any successful team.
                          I was told in past developers tested their code themselves and there was no QA culture here. In view of above listed facotr, QA's job is even tougher.

I end up with my favorite quote – "I do QA, because Quality matters."

In the meantime, if I forgot something or if anyone disagrees feel free to let me know :)

Google, web

Vaneesh Behl