Science  People  Locations  Timeline
Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Home > Software testing


 

Software testing is a process used to identify the correctness, completeness and quality of developed computer software. Actually, testing can never establish the correctness of computer software. It can only find defects, not prove that there are none. 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 Kernighan

1 Introduction

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 may or may not actually manifest as a failure. A fault can also be described as an error in the correctness of the semantic of a computer program. A fault will become a failure if the exact computation conditions are met, one of them being that the faulty portion of computer software executes on the CPU. A fault can also 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 may be viewed as a sub-field of software quality assurance but typically exists independently (and there may be no SQA areas in some companies). In SQA, software process specialists and auditors 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 or deliver faster.

Regardless of the methods used or level of formality involved the desired result of testing is a level of confidenceIn political science confidence refers to a government's support in the legislature. If a motion of no confidence is passed in a legislature governments are forced to resign. Political science. in the software so that the developerIn computing, a programmer is someone who does computer programming and develops computer software. A programmer can be one who develops and maintains software on a large mainframe system or one who develops software primarily for use on personal computers 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. (What is a defect rate?)

A problem with software testing is that the number of defectDefect can refer to: in biology, the failure of an organism to develop properly. in manufacturing, the failure of a product to conform to specification. in materials science, a crystallographic defect is a structural imperfection in a crystal. in softwares in a software product can be very large, and the number of configurationIn communications or computer systems, a configuration is an arrangement of functional units according to their nature, number, and chief characteristics. Often, configuration pertains to the choice of hardware, software, firmware, and documentation.s of the product larger still. Bugs that occur infrequently are difficult to find in testing. A rule of thumbA rule of thumb is an easily learned and easily applied procedure for approximately calculating or recalling some value, or for making some determination. Compare this to heuristic, a similar concept used in mathematical discourse, or in computer science, 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.

A common practice of software testing is that it is performed by an independent group of testers after finishing the software product and before it is shipped to the customer. This practice often results in the testing phase being used as project buffer to compensate for project delays. Another practice is to start software testing at the same moment the project starts and it is a continuous process until the project finishes.

It is commonly believed that the earlier a defectDefect can refer to: in biology, the failure of an organism to develop properly. in manufacturing, the failure of a product to conform to specification. in materials science, a crystallographic defect is a structural imperfection in a crystal. in software is found the cheaper it is to fix it.



Read more »

Non User