|
iMeans Infotech Pvt. Ltd. Software Quality Assurance Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs (errors or other defects). Software
Testing is the process of executing a program or system with the intent of
finding errors.Or, it involves any activity aimed at evaluating an attribute or
capability of a program or system and determining that it meets its required
results. Hetzel Software is not unlike other physical processes where inputs
are received and outputs are produced. Where software differs is in the manner
in which it fails. Most physical systems fail in a fixed (and reasonably small)
set of ways. By contrast, software can fail in many bizarre ways. Detecting all
of the different failure modes for software is generally infeasible. Unlike
most physical systems, most of the defects in software are design errors, not
manufacturing defects. Software does not suffer from corrosion, wear-and-tear
-- generally it will not change until upgrades, or until obsolescence. So once
the software is shipped, the design defects -- or bugs -- will be buried in and
remain latent until activation. Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible, but because the complexity of software is generally intractable -- and humans have only limited ability to manage complexity. It is also true that for any complex systems, design defects can never be completely ruled out. A
further complication has to do with the dynamic nature of programs. If a
failure occurs during preliminary testing and the code is changed, the software
may now work for a test case that it didn't work for previously. But its
behavior on pre-error test cases that it passed before can no longer be
guaranteed. To account for this possibility, testing should be restarted. The
expense of doing this is often prohibitive. |
