To improve quality:
Quality means the conformance to the specified design requirement.
Being correct, the minimum requirement of quality, means performing as required under specified circumstances.
Debugging, a narrow view of software testing, is performed heavily to find out design defects by the programmer.
Finding the problems and get them fixed , is the purpose of debugging in programming phase.
For Verification & Validation (V&V):
Important purpose of testing is verification and validation (V&V).
Testing can serve as metrics.
It is heavily used as a tool in the V&V process.
Testers can make claims based on interpretations of the testing results, which either the product works under certain situations, or it does not work.
We can also compare the quality among different products under the same specification, based on results from the same test.
We cannot test quality directly, but we can test related factors to make quality visible.
Quality has three sets of factors –
- functionality
- engineering and
- adaptability
This table illustrates some of the most frequently cited quality considerations.
Typical Software Quality Factors
Functionality (exterior quality) | Engineering (interior quality) | Adaptability (future quality) |
Correctness | Efficiency | Flexibility |
Reliability | Testability | Reusability |
Usability | Documentation | Maintainability |
Integrity | Structure |
Good testing provides measures for all relevant factors. The importance of any particular factor varies from application to application.
Any system where human lives are at stake must place extreme emphasis on reliability and integrity.
In the typical business system usability and maintainability are the key factors.
Our testing, to be fully effective, must be geared to measuring each relevant factor and thus forcing quality to become tangible and visible.
clean tests or positive tests:
Tests with the purpose of validating the product works are named clean tests, or positive tests.
The drawbacks are that it can only validate that the software works for the specified test cases. A finite number of tests can not validate that the software works for all situations.
On the contrary, only one failed test is sufficient enough to show that the software does not work.
Dirty tests or negative tests:
Dirty tests, or negative tests, refers to the tests aiming at breaking the software, or showing that it does not work.
A piece of software must have sufficient exception handling capabilities to survive a significant level of dirty tests.
Testable design:
A testable design is a design that can be easily validated, falsified and maintained.
For reliability estimation:
Software reliability has important relations with many aspects of software, including the structure, and the amount of testing.
Based on an operational profile (an estimate of the relative frequency of use of various inputs to the program ), testing can serve as a statistical sampling method to gain failure data for reliability estimation.
We can never be sure that a piece of software is correct. We can never be sure that the specifications are correct. No verification system can verify every correct program. We can never be certain that a verification system is correct either.
No comments:
Post a Comment