October 23, 2004

Bring In the Customer: Part - II

....Continued from an earlier post. Bring in the customer early? But how early? Show the specs to him? Ask his opinion even before you start coding?

As I had mentioned the train scenario.... being the end user, would I ever have guessed that the seating was not proper by just looking at the design? No, I would not have! The same goes with any software. The end user just uses your product. When he comes across a problem, its reported in form of a bug and fixed in the next release (hopefully!). This end user would not be able to find flaws in the design stage. That part is left to us experienced testers. But there are few bugs which come out only when the product goes in the market. There is definitely some combination which we have not tested the product on. (An example, gmail worked fine on IE 6. Back in Mumbai I got onto my P-I which still runs IE 3.0 and gmail did not work). There are millions of these combinations which sometimes even if known are impossible to test due to time constraints.

Enter Beta Testing. A good idea is to release the product one stage before its ready to ship. Fine, in such a case, you cant make major changes. If someone says the train carriage size needs to be bigger, its not possible. But if someone says the seating needs to be rearranged, that could be possible.

Hence leave the initial part to the experienced clan. But get in the customer when appropriate. You would be surprised the amount of bugs which come in from Beta testers which make us wonder "How did I miss that??". Which is why a good tester has excellent customer focus.

October 21, 2004

Testing Never Ends...

This is an interesting story I found while reading Micahels blog. Micahel is a test lead at Microsoft and writes some neat stuff on testing. For all testing afficianados, his blog is a must read. I treat it like a bible! A part of his blog read.

"A speaker demonstrating how testing is never complete told us that he was from Israel, where there are lots of places a plane can fly below sea level. Five months before the F-16 (the first completely fly-by-wire fighter, he told us) entered production, the F-16 team did some flight tests in Israel. Anytime the pilot flew below sea level, the plane turned itself upside down and flew along just fine! Five months before production!"

Testing never ends....

October 15, 2004

Interviewing Tips

This one comes in reply to a S.O.S. A friend of mine mentioned about getting a call from Microsoft for their initial on campus screening through college recruiting. He also wondered how he could prepare for it. Here is what I have to say:
  • Look up their website. Look up their positions (I think they have 4). Go through the details and figure out which one you would identify with. Also try to identify with a core Microsoft technology and express your desire to work in that group (this is not a must, but would show you have done some homework!)
  • Once you have decided what you are likely to go in for, google around a bit for those positions. Many interview questions are available on google itself.
  • If you have the time, look up Zoe and Gretchens blog on http://blogs.msdn.com/jobsblog They have some good inside information on the recruiting process.
  • Irrespective of what position you apply for, make sure you are well versed in regular string manipulation, data structures and algorithms and the regular HR questions. I suggest Algorithms and Data Structures and Pointers in C written by Yashwant Kanitkar for the same.
  • Be prepared for puzzles. I think http://www.techinterview.org/ is a good place to start off with.
  • Most important: GO THROUGH YOUR RESUME!! If you cant answer something on your resume, dont show it there. "I had worked on this a while back hence I dont really recollect it" is a strict NO-NO!
  • Dont be scared to say "I dont know." Suppose you are asked questions on Operating Systems and its not what you want to go into, dont be scared to say "This is not what I would like to go into. Altho I know OS is an important part of MS etc. etc. but I would like to work in groups such as encarta or messenger. OS does not really interest me right now". These guys are more interested in your strengths and not your weaknesses. Of course, dont be too rigid.
  • Do a self evaluation. If you have taken specialised courses in Software Design and none in testing (and you know nothing about testing), you probably are more suited for SDE. Find where your passion lies and interview for that position.
  • Think! Think ten times before you code. Ask millions of questions. Test your code. I am sure the interviewer will ask you to test it anyways.
  • At the end of the interview, ask some genuine questions and not for the sake of asking questions!
  • More importantly, be yourself. Be calm. Be relaxed. Be methodical... and smile! Show the person across the table that you are enjoying the experience!
  • There is a remote possibilty that the person interviewing you is HR and not tech. Such times, tech. questions would be rare. Concentrate on teamwork, how you contibuted "differently" to your project and few examples of leadership qualities.

Good Luck!!

October 14, 2004

Bring In The Customer: Part-I

As a software tester many a time I have seen myself get into the mode of a critic. This "critic nature" varies as per the phase of a project I belong to. Specially if I am in the Spec review stage this nature is at its best and never restricted to the software I am testing.

Yesterday as I travelled from Churchgate to Andheri (reminder: I am in Mumbai, India at this moment) via train during rush hour, this critic mode was at its best. An over packed train, people hanging out by the door, 4 people sitting in a 3 seat bench... the regular rush hour scene.

Here is what I wondered, there is a large amount of people who stand in the trains. The ones who sit are pretty uncomfortable since 3 seaters are occupied by 4. This in turn reduces the amount of space available to stand. On the whole, those standing and those sitting are uncomfortable.

Why not make the benches a little smaller, such that they fit exactly 3 and there is no place for the fourth? This way those who sit are comfortable and it opens up more space to stand. The way the seats are designed and laid out give minimum area for those who stand. A good design to implement would be SOME of the subway designs in New York City. All the seats are lined up against the walls (periphery) and the center space is for people to stand. I could keep going on with other suggestions I had...

Now where does Software Testing come into all this? This train journey is an ideal example of me being a customer/end user and whoever designed the train cars being the development group. Some issues which cannot be identified by the design/test group can be identified by the customer.... since the customer is the final user of this product. Those who designed the train cars probably had the idea of providing 3 people comfortable space to sit. A rush hour scene, where 4 people would sit on those benches, more people would be standing etc. might not have been imagined. But who experiences this scenario? The customer! Who gives feedback on these usability features? The customer! The customer is the most important aspect for any tester (or developer). More so for the tester since it is every testers role to advocate for the millions of users who would use the product.

All this makes me ask.... when should you bring in a customer into product development? We have Beta users. But what would happen if you bring in customers at the very initial stage. Advisable? I'll cover that in my next post.

October 13, 2004

An Introduction...

Hello! This is Apoorva Joshi and this blog is for all hopeful Software Test Engineers as well as experienced ones. More importantly this blog welcomes anyone who is not of the software world... its always a good challenge to explain a non-tech person on how things work in the tech world. Every tried explaining your Grandmom how a C++ compiler works?

Who am I?

Call me an amateur tester. I test for fun. Sometimes my job deals with testing, which again equates to fun. I hail from the city of Bombay (renamed Mumbai), India. Currently I live in the United States of America. I am bad at self-publicity hence anything more you would just have to ask.

What this blog would cover?

Anything and everything which is related to Software Testing. The mindset of a Software Test Engineer, few experiences, interviewing tips and any other suggestions you would have. Most probably I would pick some Microsoft technologies as an example from time to time. Yes, I am a fan of Microsoft (no I dont work for them) and the way they take testing seriously (of late). More so this blog is aimed at creating an awareness of testing. Why should one take testing seriously. Its a small start to making this software world a more secure place.