Tuesday, October 5, 2010

Peer pressure

Last month was Ganesh festival and our Apartment committee had charged 1000 rupees this year for the celebration. I was surprised to see that almost everyone contributed the amount. During discussions, most of them thought that the amount was pretty high. I was discussing with one of my friend in the apartment and he immediately said one word - "Peer Pressure". This was the only reason why everyone contributed. They don't want to be left out from the crowd. This is really true, happens everywhere and every time.

Now what kind of Peer pressures do we face in office? There can be many, some can be positive and some negative. I think there are always few things that we do in office because of Peer pressure. I will list some of them and try not to categorize them as Positive or Negative.

1. Staying extra time, working on weekends - There will be few who genuinely stay and work, some stay late because other team members are still there, some because Manager is still there.
2. Trying to log not so useful bugs to catch up with your colleagues.
3. Drink or Smoke because your colleagues or Boss does the same. Please don't do this :).
4. Trying to complete tasks faster to catch up with others without caring about the quality.
5. Logging into Facebook, Twitter, Orkut because everyone exists over there.

An ideal Manager can effectively use Peer pressure technique to get the best out of the team. I have seen some great Managers applying positive peer pressure and you can't escape this trap and you don't realize the trap until you get deep into it.

Monday, September 13, 2010

STeP-IN Conference on Software testing

I have attended STeP-IN conference on Software testing on Sept 3rd in Taj Krishna, Hyderabad (http://www.stepinforum.org/hyderabad_testing_conference/index.html) and it's AMAZING. This is the first time that I have attended a whole day QA seminar and I absolutely loved it. In fact this is the first whole day testing seminar in Hyderabad as far as I know. I have attended Eclipse conference in Hyderabad and Bangalore and I have attended Hysea conferences and I can definitely say that this is a step above from all of them. Here are the details on the sessions.


I reached Taj Krishna by 9.15 AM and when I entered the room, the room was fully packed. It's amazing to see more than 500+ testing engineers at one place.


The inaugural address is by Dr. S.K Chaudhuri, a Scientist and Associate Director from Imarat. It's nice to see him talk about Missiles and Rockets and how they develop and test them. He passionately shared all his experiences showing all the pics of missiles and explaining each part.


Next is the keynote address from Sanjay Karla, CEO of Tech Mahindra. It's a WOW. The way he took examples of rural India and the way he criticized white papers, the way he provoked everyone by mentioning how QA was a few years back is truly true. It makes you laugh and think at the same time. One example – A employee comes and says that he wants to move to development from QA. When asked why, the answer was “I am getting married”. A humorous one but really true a few years back. Things did change a lot from now to then. He talked on distributed applications, SaaS, Cloud and how Indians implemented all of these since centuries.

This was followed by vote of thanks and a tea break. After hearing Sanjay Karla, my expectations about the conference peaked out. It's all very professionally organized and the speakers are all CEO's, Founders and VP's of some of the big companies and I didn't yet find a flaw (as a QA person, it's very easy to find one).


Next session is from Amit Chatterjee who talked on "Testing in an Agile World". He started with the success and failure rate of Projects and how Software is controlling everything and how we are moving to Agile now. I think his main intention of this session was to showcase Visual Studio 2010, this topic was chosen very carefully to achieve this. He talked less on Agile and more on demoing Visual Studio and explaining how VS can help in moving to Agile. At this point, I was just praying that this should not continue for the rest of the day. Well Microsoft is the main sponsor for this Event, so I guess this is expected. A little let down but the session was OK.


Next one is from Sashi Reddy, Founder and Chairman of AppLabs on "Top ten predictions for 2011 and Beyond". He started with Cloud which everyone is talking about now and then on Mobile application testing and some more predictions like Crowd testing, more importance to the testing, TCoE.


The last one before lunch is from Sunil Gupta, VP of Product Quality from Symphony Services on Output based and outcome based testing. It's already 1.30 PM and everyone is hungry by that time and we were sitting there since 4 hours and so the concentration levels were little low.


Lunch was delicious and the helpers there have to ring the bell again and again reminding us that the sessions were starting.


For the next three sessions, there were two parallel tracks. For the first session, Track 1 is by Ashwin Palaparthi on "Automation test case generation for Web services". Since I had attended Ashwin's talks before, I had chosen the other one which is on "Innovative Test Management System" from Sabre Holdings. It’s interesting to see how they have used API’s to integrate all their tools starting from Project management tool (VersionOne) to Bug tracking tools (JIRA), Source control, Automation Tools like QTP, JMeter, Fitness, Selenium, QC etc. They had also talked on Eclipse plug-ins for developers to run the tests. Most of them are similar to what we do in our company except for QC. I wished that we had given this presentation. Finally they had shown the demo on how they created a story in VersionOne and how it’s automatically transferred to other tools. A nice presentation which show cases the amazing things that testing groups has been doing in different companies. Nice to see that there are other companies which does similar things as we are doing.


For the next session, I had chosen Track 1 which is on “Industrial Strength Exploratory testing” by Anutthara, Senior Program Manager from Microsoft. I had read a few Articles on Exploratory testing from James Bach (I think he termed this word) before and I clearly did not see how it’s different from Adhoc testing and this session answered a few questions. In Exploratory testing, we will define the Charters and we will define the time before we start the testing. A Charter is like a scenario (Ex: Validations, Icons & Images, Accessibility i.e. only use keyboard) and the tester will spend a specific amount of time on this charter. The main question everyone had is how do we measure the Exploratory testing. This is the same that I had and the presenter had detailed a few things like recording, using code coverage (Method followed by Microsoft is, look at the code coverage for a particular period and come up with trends to see how we are going and then change the charters based on the trends.) etc but still it’s little unclear, at least to me. A very interesting and lively session. It’s good to see how some engineers thinks of nice name for the different kinds of testing that they do. Ex: Bad neighborhood testing where we will make all other applications consume the CPU and memory and check how our application under test behaves. A simple testing but the name that was given was pretty cool.


Last one before the tea break, this session is on “Cognitive biases in testing” by Srikanth Krishnan, Senior Director from Oracle. He had chosen a very interesting topic and explained on how different parts of brain reacts to different scenarios/questions and how we should not fall for these traps while providing estimates for testing. A very nice real time examples were chosen which made the presentation very attractive. I will just mention one example – You decided to buy a pen which is 600 rupees in a particular shop. You then heard that the same exact pen is sold for 500 rupees in another shop which is a five minute walk from the first shop. What will you do? The majority answered saying that they go to the second shop. Now you are planning to buy a Coat which is 5000 rupees and you heard that another shop which is a five minute walk from the first shop is selling the same coat for 4900 rupees. What will you do? Majority answered saying that they will buy in the first shop and won’t go the second one. It’s the same 100 rupees that we are saving, just the baseline changed which is changing our decisions. So never let some number influence your decision. There are many other amazing examples like this.


During the tea break, Microsoft had played videos of how future is going to be and how software does everything.


The last session of the day is from Kripanand, Founder and Director of See beyond technologies on “Testing in testing times”. His talk was focused on how the industry changed its track during the down time and how we adopted Agile and Exploratory testing methods. He talked very passionately about testing by taking nice examples. He proudly mentioned that he was a developer at the beginning and then moved to testing and is very proud to be in testing.


The conference ended with a Panel discussion on “Emerging trends in Software testing”. This was chaired by Ramesh Loganathan, VP and Product Head of Progress Software and the panelists are from Google, Imaginea and Deloitte. Before starting the discussion, Ramesh talked on how QA was focusing more and more on automation and what areas we can look at. He took a nice example of automating the process of analyzing code coverage results and linking them to the failed tests and narrowing down to the problematic code. A very interesting scenario to try it out. By this time, we crossed the time and so the hotel guys started dismantling the partitions and in the process making lot of sound (seems they want us to get out and so deliberately making loud noises).


Finally a very informative and professional conference. It's interesting to see that everyone is talking about Agile, about Code Coverage and about Center of Excellence groups which we are actively into. I wanted to write a lot more, detail on all examples but it’s hard to put it all here.

Tuesday, September 7, 2010

Joining the pieces

How many testers can do this? I didn't see a lot of them in my career.

To take an example, there are few favorite questions that i always ask while interviewing for QA position (for SE-2 levels and above). One of them goes this way...

Two QA Engineers have installed the same Java based application from the same place on a Windows XP OS. For one of them, the application crashes during start, for the other it works perfectly. How would you go about debugging this problem step by step.

Most people stop after mentioning that they will check the logs or reboot the machine. Even after giving a few minutes time, they couldn't come up with different options to eliminate possibilities. I am not even expecting composite answers but simple ones like:

1. Check the location of install, is it in the same drive or different drive?
2. Are there spaces in the install location?
3. Are the two machines on same service packs level?
4. Are there changes in the OS settings, like firewall options?
5. Is the application picking the right JRE? Check the classpath to make sure no other JRE is affecting this.
6. Check all the processes that are running. Are there any issues with CPU or memory?

There can be numerous other things that we can check depending on our application, just the simple ones, nothing complex. When the application is same and the difference is only with the machines, isn't it simple to correlate and think of machine to machine differences and join the pieces. I think this is one of the major difference between a good testing engineer and others. Every day you will see bugs like this. Debugging and providing the right information will earn you the respect and not the bug count of this type saying "Application crashes".

Monday, August 9, 2010

Exposing your thoughts to external world

Until few months back, every time I search Google for something, I some how used to feel bad about myself. There are lot of people contributing lots of good stuff every minute and all this material helps me in some form or the other every day. I never contributed anything useful in blogs, technical websites or knowledge base until few months back. The excuse I used to give myself is, I am not so expressive especially when I have to write my thoughts and I am too busy. These are true to some extent but not blockers (excuse me for my testing language - I am used to this) to contribute.

Coming to another story... few months back, I want to check how many entries will be listed in Google when I search for my name (Srinivas Kantipudi) . To my surprise, there are quiet a few entries (both in web tab and images tab), some because of the presentation that I did in Eclipse Summit and some because of my contribution in Progress communities. My next thought was, how can I increase this count. I just have to contribute whatever little I know in various places. So I started with a blog (I have been postponing this idea since years) and then searched for some active testing sites and started contributing wherever I can. In few months, I see at least two pages when i type my name in Google. Surprisingly my blog had already started showing up in first page, a very nice feeling when i saw this.

Now I don't have to feel guilty when i Google for information and at the same time I am marketing myself by contributing whatever little I know :).

Monday, July 26, 2010

UI Automation does't mean...

Every time i meet someone who had mostly worked on back end, I had a hard time explaining them about UI Automation tools. All they think of UI Automation tools is that they are just a record and playback tools which checks the fields from UI and nothing else. This is same for a person who had only manual testing experience and never looked at UI Automation tools. Mostly they think these are some fancy tools for marketing purpose within the company. This is really not the case. If that's your experience or opinion, I think you did not actually use the tool properly or never worked on automation. Here are some misconceptions on UI Automation/tools.

UI Automation doesn't mean:

  • Checking Button's and field's status
  • A Record and playback tool
  • Breaks for every simple change in UI
  • Doesn't touch actual functionality
  • Back end still needs Robust tests
  • Starts only after the release or after everything is frozen
  • Involves lot of maintenance
  • Needs a lot of manual intervention
  • There will be inconsistencies in runs

If any of your automation matches any of the above, then it's a pure misuse of the tool. Maybe you are not using the right tool or doesn't have the right plan. It all depends on us and not the tool, tools just does what we ask.

Sunday, June 13, 2010

My Reflections - My Managers

In these 12 years of Journey in Software, I got a chance to work with some really great Managers. Every manager is wonderful... the way I am today is the way my Managers are with me. I am just a reflection of all my Managers (in work), everyone is so wonderful, I did learn a lot from everyone. There are few wonderful words/gestures which I remember every day, which I learned from my Managers from different companies and which I try to implement every day. Here are few of them.

1. One day I was very mad (didn't remember why) and went to my Manager. My Manager was very cool and told me, whatever you do, whether right or wrong, I will support you always. I believe in you, so go ahead and do what you think is right. That's like magic words which i remember every day. It gave me lot of confidence to fight for things that I think are right. If I don't have this kind of support, I would never had been a good tester. Of course the first thing you need to do is to earn this trust and it takes lot of effort to earn one's trust.
2. Support the team when they are in trouble - This was not explicitly told to me but learned it as my Managers implemented this. Be ready to take the beating yourself but don't let anyone touch or point your team if you really believe in the team/person.
3. Think of the question before you act - This is one of the wonderful things that I learned. Always think of question and see how you can beat the other person to death if they ask this question. If you don't have the answer, don't do the task until you find an answer or do it in an alternate way so that you won't get this question.
4. There is a right way to do things and there is also a way that everyone wants to see. I really don't want to explain this. You have to talk to me in person if you want details on this and you shouldn't be my Manager or Manager's Manager to know the answer.
5. Always be a role model to your team, especially if you are a lead or above. Your team tries to learn from you and will follow you in many occasions. Show the team why you are in this position. Work is the first main thing, gain the respect of the team by being on top of the work. Apart from work, there are million other things. Your dedication, punctuality, commitment and so on and so forth, everything counts and matters.
6. Never hire an average guy - One of my Manager always used to say this. Never hire an average guy. It's good to hire great performers. It's OK to hire a poor performer, we can fire them when they don't perform. Never ever hire average performer's, they will kill the company. You can't really fire them because they do their work. They really can't go beyond a specific limit and all the main load goes to the top performers and you over kill the top performers. This way the whole company will sink. So I am OK if you hire a poor performer but never hire an average performer.

Finally I will end with a quote that one of our boss in my current company always says - It has taken a lot of great people to make me look this good.

Monday, May 31, 2010

Journey of a QA Engineer

I have interacted with many QA engineers during my career and I still remember all of the QA groups that I worked with (5 in total) and our discussions on bugs, quality, certifications and QA during the initial days and there after. Here are some differences in the mind set of QA engineer (including mine) during the initial phase of the career and few years after.

Initial stages
Few years after
Passionate about every bug and fights for every bug and wants every
bug to be fixed in the current release
Learns when to fight and thinks of release priorities
Automation is of no use, only helps while switching jobs
Automation does help when done properly, we need automation
QA Certification's will help in career
Certifications only teaches definitions, doesn't help
Process related things are boring, testing is only important for me
Process helps
Test plans are a waste, I can test everything without a test plan in an hour
Test plans are important, helps us in not missing out scenarios
It's cool to be a developer, I want to move to development
Testing is Cool, I will continue in testing
Everything is in my brain, why should i write a document
Documents are important and helps in maintaining the process


So next time, when you hear any of this from your colleagues, it's because they are in a specific phase in their career and it's common in that phase .