You are here

Why is Testing Necessary

Software developed by people.  People make mistake, because of pressure. Pressure can be happened in variety ways, Such as deadline, change of new technology, complexity of organization and system and error in specification, design and software code.  Error or mistake lead defect and defect cause failure. Not only people, environment condition can effect for system failure. They are presence of radiation, magnetism, electronic field and pollution. Software failure can affect people, companies and environment.

How do defects in software harm people, environment and companies.

Example:-

  •  News reports in February of 2003 revealed that the U.S. Treasury Department mailed 50,000 Social Security checks without any beneficiary names. A spokesperson indicated that the missing names were due to an error in a software change. Replacement checks were subsequently mailed out with the problem corrected, and recipients were then able to cash their Social Security checks.
  • In March of 2002 it was reported that software bugs in Britain's national tax system resulted in more than 100,000 erroneous tax overcharges. The problem was partly attributed to the difficulty of testing the integration of multiple systems.

What is a bug?

          Error: a human action that produces an incorrect result 

          Fault: a manifestation of an error in software. Also known as a defect or bug. When it is executed a faulty may cause failure. 

          Failure: deviation of the software from its expected delivery or service 

          Software faults become software failures only when the exact computation conditions are met, and the faulty portion of the code is executed on the CPU.

How Much Testing is enough

Complete testing is impossible for several reasons. They are:-

          We can’t test all the inputs to the program

          We can’t test all the combinations of inputs to the program

          We can’t test all the paths through the program

          We can’t test for all of the other potential failures, such as those caused by user interface design errors or incomplete requirements analyses

Testing is necessary. Because software is likely to have faults, to learn about the reliability of the software, to fill the time between delivery of the software and the release date,  failures can be very expensive, to avoid being sued by customers, to stay in business, confidence in quality of software, prevent defects from passing on, make sure requirements are met, to demonstrate that the product performs each function as intended and to demonstrate that the internal operation of the product performs according to the requirements. 

Testing measures software quality. Testing can find faults; when they are removed, software quality (and possibly reliability) is improved. Testing demonstrates Reliability, Usability, Efficiency, Maintainability, Functionality and Portability.

Prevention is better than Cure. Testing is help to find the root cause of the defects, ensure the occurrence of such defects is taken care in the future projects, it is better to find a defect early in the SDLC than later and improves the quality of software.

In a little time, there is so much to test. Time to test the software is limited. First of all tester need to identify what to test first, what to test most and how thoroughly to test each item.

How much testing

          It depends on RISK 

          Risk of missing important faults 

          Risk of incurring failure costs 

          Risk of releasing untested or under-tested software 

          Risk of losing credibility and market share 

          Risk of missing a market window

          Risk of over-testing, ineffective testing

Complete testing is impossible for several reasons. Because:-

          We can’t test all the inputs to the program

          We can’t test all the combinations of inputs to the program

          We can’t test all the paths through the program

          We can’t test for all of the other potential failures, such as those caused by user interface design errors or incomplete requirements analyses

If we want to avoid failure we must avoid errors and faults first. Also we need to find them and rectify them. Testing is help to avoid errors. If we wish to influence errors with testing , we need to do testing beginning of the development process, and we need to do testing until we are confident that there will be no serious issues.