Putting assertions in their place
- 17 December 2002
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Assertions that are placed at each statement in a program can automatically monitor the internal computations of a program execution. However, the advantages of universal assertions come at a cost. A program with such extensive internal instrumentation will be slower than the same program without the instrumentation. Some of the assertions may be redundant. The task of instrumenting the code with correct assertions at each location is burdensome, and there is no guarantee that the assertions themselves will be correct. We advocate a middle ground between no assertions at all (the most common practice) and the theoretical ideal of assertions at every location. Our compromise is to place assertions only at locations where traditional testing is unlikely to uncover software faults. One type of testability measurement, sensitivity analysis, identifies locations where testing is unlikely to be effective.Keywords
This publication has 8 references indexed in Scilit:
- Improving the software development process using testability researchPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Rare conditions-an important cause of failuresPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- SACEM software validationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- The effect of imperfect error detection on reliability assessment via life testingIEEE Transactions on Software Engineering, 1994
- Faults on its sleevePublished by Association for Computing Machinery (ACM) ,1993
- PIE: a dynamic failure-based techniqueIEEE Transactions on Software Engineering, 1992
- Predicting where faults can hide from testingIEEE Software, 1991
- The coupling effect: fact or fictionPublished by Association for Computing Machinery (ACM) ,1989