Friday, 4 March 2011

What is Testing ? Why Testing ?

In my previous post I gave my experience as what it is to be a tester. But have you all wondered what is Testing ? Why is Testing done in Software Developemnt ?

In SDLC Testing is a significant phase.

What is Testing ?
* Testing is a risk reducing activities

* It is mainly aimed at reducing faults and bugs in the software

* It is used to determine whether the requirements have been met

* Testing is not a process that happens at the end of development but it is something that starts right from Requirement Specification

* Testing is a way to measure the quality of software produced

Testing is completely different from debugging.

Testing is a process of finding the presence of faults and defects. While debugging is a process of correcting the faults and the defects present in the Software. Debugging is done by the developers while testing is done by testers.

By the above statement people genrally wonder why there are testers seperately? Cant the developers do the job of a Tester ?

A Team generally consist of testers seprate testers because the general pschycology of a person is to not accept faults on his\her creation. So if there is a person who was not involved in the creation of a product, he\she will not be biazed and can raise more defects and bugs that are actually present in the Software. The aim of testing is not to show that software is doing what it is suppose to do, but to show what the software is doing what it is not suppose to do. In short the aim of the tester is to raise as many defects and bugs present in the software as possible in the early stages of development so as to improve the quality of the System.

The Significance of Testing in Software Development is
* Rigourous testing and documentation is important to reduce the risk and defetcs in the software being developed

* It is not a phase that comes at the end of SDLC but however it is a phase that satrts right brom the start

*The advantage of testing is when the process raises defects and bugs at the early stages of developement thus reducing cost of development and improving quality

* Testing shows only the presence of bugs and not the absence. So it is genrally considered that a bug free product is not possible

Before I move on I would like to discuss about Quality

What is Quality ?
There are different definitions given by differnt bodies. But I like this definition.

It is the degree to which a software adheres to the explicitly and implicitly stated requirements.
eg:- Let us consider a web application for say for railway reservation. We say that the web application is of good quality when:-

1) The web application has a easy to use user interface
2) The web application meets the user requirements
3) The web application is a very low response and turn around time
4) It can handle umpteen users and conduct multiple concurrent transaction and provide the same response time to all its users
5) The application handle the unexpected huge amount of load it receives from the users
etc.

This gives a small picture as what is quality. There are various quality models that i will discuss soon.

I will now discuss the next section as

Why do Testing ?

* A Bug free software is never possible. As we humans are never perfect and as I said testing shows the presence of defects and not its absence. Hence a bug free product is almost impossible. But we need testing to remove the defects that are present

* A software that posses bugs can lead to problems:-
a) Loss of money.
Let us consider a net banking application for fund transfer between two savings aacount. A bug existed in updation of the database which was never found. Just imagine how much will the customers lose if such an application is released

b) Injury to health and even death:
I remember reading once that there was a cancer curing machine developed that was controlled by a software. The software controlled the amount of radiation that will be exposed to a patient. The software had a defect and the machine exposed huge amount of radiation to the patients which inturn caused death to many of the hospital's patients .

c) Wastage of time.

* To improve quality of the system

* To check if the requirements are met


One must undderstand the common causes of defects that happen in SDLC. They are as follows:-

* Human errors. This happen due to tight schedules and dealines. A team might have the best programmers and developers in the world, but under tight situation errors and mistakes are prone by anyone

* Complexity of the technology and solution used and provided. In such complex scenarios many loopholes tend to exist which are to be found by the testers and they need to be blocked.

* Programming errors which cannot be avoided as no one is perfect and working on tight schedules makes it happen.

* Wrong programming styles used

* Poor requirement captured

I hope this article thre some light on testing. More on my next article.

Till then Cheers From Sai !!!

No comments:

Post a Comment