Encyclopedia > Software testing

  Article Content

Software testing

Software Testing is a process used to identify the correctness, completeness and quality of developed computer software. There are a number of different testing approaches that are used to do this ranging from the most informal ad hoc testing, to formally specified and controlled methods such as automated testing.

The quality of the application can and normally does vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability. For a more complete listing of attributes it is suggested that the ISO standard ISO 9126[?] be consulted.

"An effective way to test code is to exercise it at its natural boundaries"
--Brian Kerninghan[?]

A list of software testing activities includes:

In general, software engineers distinguish software faults and software failures. In case of a failure, the software does not do what the user expects. A fault is a programming error that does not actually manifest itself. A fault can turn into a failure when the software is ported to a different hardware platform or a different compiler, or when the software gets extended.

Software testing is a sub-field of Software Quality Assurance[?]. In the latter, software engineers take a broader view on software and its development. They examine and change the software engineering process itself to reduce the amount of faults that end up in the code.

Regardless of the methods used or level of formality involved the desired result of testing is a level of confidence in the software so that the developers are confident that the software has an acceptable defect rate. What constitutes an acceptable defect rate depends on the nature of the software. An arcade video game designed to simulate flying an airplane would presumably have a much higher tolerance for defects than software used to control an actual airliner.

A problem with software testing is that the number of defects in a software product can be very large, and the number of configurations of the product larger still. Bugs that occur infrequently are difficult to find in testing. A rule of thumb is that a system that is expected to function without faults for a certain length of time must have already been tested for at least that length of time. This has severe consequences for projects to write long-lived reliable software.

See also

DMOZ (http://dmoz.org/Computers/Programming/Software_Testing/)



All Wikipedia text is available under the terms of the GNU Free Documentation License

 
  Search Encyclopedia

Search over one million articles, find something about almost anything!
 
 
  
  Featured Article
Canadian Charter of Rights and Freedoms

... above) and the notwithstanding clause. Before the Charter came into effect, other Canadian laws and legal precedents protected many of the rights and freedoms that are ...

 
 
 
This page was created in 33.5 ms