Assessing the Relationship between Software Assertions and Faults: An Empirical Investigation
- 1 November 2006
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in 2006 17th International Symposium on Software Reliability Engineering
- p. 204-212
- https://doi.org/10.1109/issre.2006.14
Abstract
The use of assertions in software development is thought to help produce quality software. Unfortunately, there is scant empirical evidence in commercial software systems for this argument to date. This paper presents an empirical case study of two commercial software components at Microsoft Corporation. The developers of these components systematically employed assertions, which allowed us to investigate the relationship between software assertions and code quality. We also compare the efficacy of assertions against that of popular bug finding techniques like source code static analysis tools. We observe from our case study that with an increase in the assertion density in a file there is a statistically significant decrease in fault density. Further, the usage of software assertions in these components found a large percentage of the faults in the bug databaseKeywords
This publication has 12 references indexed in Scilit:
- Static analysis tools as early indicators of pre-release defect densityPublished by Association for Computing Machinery (ACM) ,2005
- Righting softwareIEEE Software, 2004
- Assertions: a personal perspectiveIEEE Annals of the History of Computing, 2003
- Putting assertions in their placePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Robustness and diagnosability of OO systems designed by contractsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Investigating the use of analysis contracts to support fault isolation in object oriented codeACM SIGSOFT Software Engineering Notes, 2002
- A static analyzer for finding dynamic programming errorsSoftware: Practice and Experience, 2000
- A practical approach to programming with assertionsIEEE Transactions on Software Engineering, 1995
- Assertions in programming languagesACM SIGPLAN Notices, 1980
- Assigning meanings to programsProceedings of Symposia in Applied Mathematics, 1967