Software Testing-it is easy to pronounce but too difficult to practice. Most of us think testing is often a quite easy job. However in software industry, testing has its own approach. I would like to share the basics of testing with most of us. You can call this as a beginners blog. After completion of your degree or PG, if you wish to choose testing as your career, then this would definitely help you.
The first and foremost thing that a tester needs is
1) Test to break attitude.
2) Tactful and diplomatic.
3) Excellent communication skills.
4) Domain knowledge.
5) Technical Expertise.
We will discuss each one in detail.
1) Test to break attitude: This is one of the most essential quality that you should have as a tester. Whatever be the application, you should be ready to point out bugs then and there. You are given an application to test-you should have only aim-break it. Never think of testing the application in the way of working it. As a tester, we should be different from other. In our everyday life, all the people test one or the other. You go to a shop, buy a pen, what you do?
Test it by writing it on a paper or book. This is same with a software tester but do not think that anybody can test it. If tester goes to a shop and he buys a pen.
1) he should test it by writing it on a paper.
2) he should test it by writing it on a hard surface.
3) he should drop the pen and then write it.
4) he should check each and everything from the pen top to bottom. That makes him a different person.
Let me make this blog as a conversation between a Teacher and a Student.
STUDENT: what is Testing?
TEACHER: Testing is the activity of evaluating the quality of the software.
STUDENT: what is quality?
TEACHER: It means the degree of excellence. In customers point of view-it is fitness for use.
STUDENT: So my question is can testing improve quality?
TEACHER: No, how can we improve quality. We can only evaluate it. The developer who develops the application should improve it. We cannot improve quality. Never say that testing improves quality.
STUDENT: What is the outcome of testing?
TEACHER: if any body says QUALITY SOFTWARE- it is absolutely a blunder.
Outcome of testing is information about the behaviour of the system.
STUDENT: What is a Bug?
TEACHER: A bug is a nothing. It is a mismatch betwen the expected output and actual output.
STUDENT: So what is expected output? what is actual output? I am not understanding.
TEACHER: Suppose you are testing a calculator. You want to testing whether 1+1=2. So what you will do is. press 1. press +. press2 and then press=..so your expected output is 2. But the calculator shows 1. This is known as mismatch. You expected 2 but you received 1. So this is what we call as a BUG.
STUDENT: Why bug is present in an application?
TEACHER: 1) When the requirements are unclear.
2) Miscommunication.
3) Sofware Complexity.
4) Deadline.
5) Lack of knowledge.
STUDENT: I am confused, what is this REQUIREMENTS?
TEACHER: Okie, I will try explaining it clearly. A company assigns you a project. So they define the requirements. Suppose let us take the example of a fizzy drink( Cola or pepsi), your requirements are:
1) flavors to be added.
2) whether it has to be a 1 litre of 500 ml bottle.
3) whether it needs to be a can or plastic bottle.
4) what type of covering does it need?
5) the amount of carbon-dioxide to be mixed? etc..
so when any of the requirements are not clear, you face a bug. Suppose the company has not told
about the quantity. So you have produced 1 litre bottles but many of the customers do not feel it comfortable as they need a can or 500ml. So requirements were unclear.
STUDENT: Thank you Ma'm, So I think PROJECT and PRODUCT are both the same, right?
TEACHER: No, PROJECT is entirely different from PRODUCT.
Project is customized for an individual or company. For eg: You go to a tailor, you say to him to stich a shirt. What all you say? You say about the collar, where the pocket needs to be fixed. so you are assigning him a duty for your own purpose. This is a project.
Product is customized for mass. For eg: You go to a Zodiac Showroom, select your size-40, you cannot find any shirts made according to your needs. You can select your shirt from a bunch of size 40.
STUDENT: So, does a company follow a standard? I mean whether the software companies has a procedure when a project is assigned to them?
TEACHER: Yes, all of the companies do follow a procedure. This is known as SOFTWARE DEVELOPMENT LIFE CYCLE. We have different models however I am interested in dealing with only 2 models with you.
1) WATERFALL MODEL.
Requirements->Design->Coding->Testing
Requirements: This is one of the oldest model in software industry. In this stage, the business analyst gather the requirements with the customer. Get all the information. Once the requirements are complete only we go to next stage.
Design: This stage is usually handled by the project managers. Assign a team to complete the project. Assign the work to each and every individual. Announce the deadline.
Coding: This is the important stage in development. Here the project is developed.
Testing: This is the last stage in life cycle. Here the project is tested by a team of testers.
So only once a stage is completed, we go to next stage.
TEACHER: Do you feel any disadvantage with WATERFALL MODEL?
STUDENT: Yes Ma'm, I do feel. I think this model is not flexible for changes.
TEACHER: Yes perfect. Suppose if the client wants to change the requirements, this model is not flexible.
STUDENT: Ma'm, I think today this much is enough.
TEACHER: Okie, as you wish. We will be back with the V model on Monday.
Friday, August 14, 2009
Subscribe to:
Posts (Atom)