Hello? Hello? Testing. 1,2,3...


You don't want your customer to say that

So you are a software developer? Are you ready to use that cool new framework for that project that you are about to start? Nice! Good for you. I am pretty sure you have covered all angles while drawing up the requirements. You have a pretty good reason your project will be perfect and deliver everything. Or maybe, you have already completed the development and are ready for the deployment. You are confident. It's gonna work. The customer is gonna like it. No, the customer is gonna love it. You're probably hyped too. And for a good reason. You would have put a lot of yourself in the project. But have you thought about getting it tested? Like properly, thoroughly tested? From top to bottom? Inside out? Have you? I am guessing your answer is ...Nope.

A lot of us developers don't think much about testing. We think if a bug appears we will solve it. Bugs do appear. They are supposed to appear. We are human after all. We make mistakes. True, true. All of it. But what if there are more bugs then you anticipated. Maybe, you realise a bug may not have appeared if you had not zoned out during that boring meeting(it happens). Or maybe, you goofed up during the design phase and ended up doing something you were not supposed to do. All of this might not have happened, you conclude, if someone had checked the project at some time. Someone. Any one, other than you.

Now, let's forget about development and testing for a moment, ok? Let's think of something else. Like...Hmmm...Getting ready to go out? You try various combinations of clothes. You look at yourself in the mirror. And then, you ask your friend/sibling/parent how you look. So you are essentially testing your outfit.

Now, let's think of something else. You need to buy a new car. You have gathered all info on the car that has caught your eye. So, you go to the showroom and check it out yourself. You even take it out for a test drive.

So you, as a customer, test everything before you buy and reject the product that fails your tests. So then, can you expect your customer to do the same with your product? They would check it from every angle. Even the ones that you could not have imagined.

I know all this, you say. I have made sure of all this when developing the product, you say. So let me ask you this. What happens when a bug gets through? Why have I emphasized (read: written in bold) the word "test" (and its variations) in the above paragraph? Why am I (not)so subtly asking you to test your product? Why am I putting so much stress on testing? Why are we on this earth? Did the chicken come first or the egg? Why am I going off topic? I don't know the answers to the last three questions, but the others, I do know. Do you know about a viral and still popular internet meme: "All your base are belong to us"? This is the best example of a bug that ended up in the final product because of improper testing. You do not want something like that in your final product. You do not want your product to crash in the middle of a demo. You do not want your product to not start during a demo meeting. You do not..you get the idea. Believe me, you do not. I have gone through this. It is not pleasant.

The solution to all of this? Testing. At all levels. You must employ some kind of testing, however small, for your product. And, you must not test your product yourself. Why? Because you will be biased towards your own creation.

So, in conclusion(short post...yay?), the answer to all(or almost all) your woes is testing. Testing. Testing! I can not stress this enough.