Monday, November 19, 2007

Testing Overview

Overview on Testing

There are many published definitions of software testing, however, all of these definitions essentially convey the same statement:

Software testing is the process of executing software in a controlled manner, in order to answer the question “Does the software comply to specifications”.

Software testing is often used in association with the terms Verification and Validation. Verification is the checking or testing of items, including software, for conformance and consistency with an associated specification. Software testing is one kind of verification, which also uses techniques such as reviews, analysis, inspections and walkthroughs. Validation is the process of checking if what has been specified is what the user actually wanted.

Validation: Are we building the right product?

Verification: Are we building the product right?

Software testing should not be confused with debugging. Debugging is the process of analyzing and locating the bugs when software does not behave as expected. Although the identification of some bugs will be obvious from playing with the software, methodical approach to software testing is a much more thorough means of identifying bugs. Debugging is therefore an activity that supports testing, but cannot replace testing. However, no amount of testing can be guaranteed to discover all bugs.

What is testing?

Testing is the process of executing a program with the intent of finding an error. A good test case is one that has a probability of finding an as-yet undiscovered error. A successful test is one that uncovers an as-yet-undiscovered error;

Why testing?

The development of software systems involves a series of production activities where opportunities for injection of human fallibilities are enormous. Errors may begin to occur at the very inception of the process where the requirements may be erroneously or imperfectly specified. Because of human inability to perform and communicate with perfection, software development is accompanied by a quality assurance activity.

Economics of Testing

“Too little testing is a crime - too much testing is a sin”. The risk of under testing is directly translated into system defects present in the production environment. The risk of over testing is the unnecessary use of valuable resources in testing systems that have no defects, or very few defects that the cost of testing far exceeds the value of detecting the system defect.

Most of the problems associated with testing occur from one of the following causes:

Failure to define testing objectives

Testing at the wrong phase in the cycle

Use of ineffective test techniques

Cost of Testing

The cost-effectiveness of testing is illustrated in the above diagram. As the cost of testing increases, number of undetected defects decreases. The left side of the diagram represents the under test situation and the right the after test. In the under test side, cost of testing is less than the resultant loss from undetected defects. At some point, the two lines cross and an overtest condition begins. In this situation, the cost of testing to uncover defects exceeds the losses from those defects. A cost effective perspective means testing until the optimum point is reached, which is the point where the cost of testing no longer exceeds the value received from the defects uncovered.

1 comment:

Masood said...

itni shiddat se maine tumhein paane ki koshish ki hai,ke har zarre ne tumhein mujh se milane ki saazish ki hai:-)

Powered By Mushu

Powered By Mushu