The interaction with systems software occupies an increasing part of our lives. Many people interact with software that does not behave in the manner expected. Software that doesn’t work properly can cause many problems.
A human can make a mistake, which produces a defect (fault, bug) in the program code or in a document. If the faulty code is executed, the system may fail to do what it has to do (or it can do something that doesn’t have to), causing a negative outcome ‘failure’.
Negative results can also be caused by environmental conditions that can cause faults in firmware or can influence the execution of the software going to change hardware conditions.
A rigorous testing of systems and documentation of quality can reduce the risk of problems that may occur during the operation and it can contribute to the quality of the software system, if the found defects are corrected before the system is released for its use operating.
With the help of testing, you can measure the quality of software in terms of defects found (ISO 9126).
When testing finds defects, the quality of the software system increases when these defects are corrected. By understanding the causes of found defects in other projects, processes can be improved, and this should prevent the recurrence of these defects and, consequently, it improve the quality of future systems.
The decision of how much testing is necessary, must consider the level of risk, including technical, business, project risks, and project constraints such as time and budget.