Monday, June 11, 2007

Testing Overview

1. What is Testing?

 

“Testing is an activity in which a system or component is executed under specified conditions; the results are observed and recorded and an evaluation is made of some aspect of the system or component

·       

 

Software testing is a process used to identify the correctness, completeness and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users.

2. Why we need Testing?

 

It is the primary duty of a software vendor to ensure that software delivered does not have any defects and that the customer’s day-to-day operations do not get affected. This can be achieved by rigorously testing the software.

To protect an organization from any trouble and in order to address various risks involved during a change to an organization, testing is important. Risks can be related to the ones affecting reputation or resources or could be the ones leading to legal issues.

The following is a list of major computer system failures caused by software bugs. These examples highlight the kind of catastrophic consequences that software bugs have on business, on life and property:

 

ü      In April of 1999 a software bug caused the failure of a $1.2 billion military satellite launch, the costliest unmanned accident in the history of Cape Canaveral launches. The failure was the latest in a string of launch failures, triggering a complete military and industry review of U.S. space launch programs, including software integration and testing processes. Congressional oversight hearings were requested.

ü      On June 4 1996 the first flight of the European Space Agency's new Ariane 5 rocket failed shortly after launching, resulting in an estimated uninsured loss of a half billion dollars. It was reportedly due to the lack of exception handling of a floating-point error in a conversion from a 64-bit integer to a 16-bit signed integer.

ü      The computer system of a major online U.S. stock trading service failed during trading hours several times over a period of days in February of 1999 according to nationwide news reports. The problem was reportedly due to bugs in a software upgrade intended to speed online trade confirmations.

ü      In November of 1997 the stock of a major health industry company dropped 60% due to reports of failures in computer billing systems, problems with a large database conversion, and inadequate software testing. It was reported that more than $100,000,000 in receivables had to be written off and that multi-million dollar fines were levied on the company by government agencies.

ü      Software bugs caused the bank accounts of 823 customers of a major U.S. bank to be credited with $924,844,208.32 each in May of 1996, according to newspaper reports. The American Bankers Association claimed it was the largest such error in banking history. A bank spokesman said the programming errors were corrected and all funds were recovered.

 

All the above incidents only reiterate the significance of thorough testing of software applications and products before they are pushed to production. It clearly demonstrates that cost of rectifying defect during development is much less than rectifying a defect in production.   

 

Monday, June 4, 2007

How Imp Testing Is?

Testing is a very important activity in product development lifecycle as it measures the quality of product and helps in determining production readiness of an application. It checks whether all requirements are implemented correctly and detects non-conformances if any, before deployment. Testing makes software predictable in nature, improves quality and reliability. It also helps marketability and retention of customers.

The various factors that contribute to making testing a high priority of any software development effort include:
1. Reduction of software development cost - Testing software in the initial stages of development reduces the cost of developing the program. A problem that goes undetected in the initial software development lifecycle stages can be much more expensive to resolve at a later stage. The following diagram can be used to explain the same.
2. Ensures completeness of the product - Testing a software product ensures that the customer requirements map to the final product that is delivered.
3. Reduction in total cost of ownership- By providing software that looks and behaves as shown in the user documentation, customers require fewer hours of training support from product experts and thus reduce the total cost of ownership.
4. Accretion of revenues - A bug free code (which is obtained only after intensive testing) also brings in customer satisfaction, which leads to repeat business and more revenues.

Sunday, June 3, 2007

Introduction

I would like to write about few software testing facts, like How important is testing in building up a project in a software field, what kind of effect it will make on financial investments kept on projects.