Predicting Subsystem Defects using Dependency Graph Complexities
1. Predicting Subsystem Failures
using Dependency Graph Complexities
Thomas Zimmermann, University of Calgary, Canada
Nachiappan Nagappan, Microsoft Research, USA
2. Predicting Subsystem Defects
using Dependency Graph Complexities
search: ISSRE
Thomas Zimmermann, University of Calgary, Canada
Nachiappan Nagappan, Microsoft Research, USA
9. Resource allocation
Spent resources on the
components that need it most,
i.e., are most likely to fail.
10. Meet Jacob
• Your QA manager
• Ten years knowledge
of your project
• Aware of its history
and the hot spots
11. Meet Jacob
• Your QA manager
• Ten years knowledge
of your project
• Aware of its history
and the hot spots
• Likes extreme sports
12. Meet Emily
• Your new QA manager
(replaces Jacob)
• Not much experience
with your project yet
• How can she allocate
resources effectively?
13. Meet Emily
• Your new QA manager
(replaces Jacob)
• Not much experience
with your project yet
• How can she allocate
resources effectively?
14. Indicators of failures
Code complexity
◦ Basili et al. 1996, Subramanyam and Krishnan 2003,
◦ Binkley and Schach 1998, Ohlsson and Alberg 1996,
◦ Nagappan et al. 2006
Code churn
◦ Nagappan and Ball 2005
Historical data
◦ Khoshgoftaar et al. 1996, Graves et al. 2000, Kim et al. 2007,
◦ Ostrand et al. 2005, Mockus et al. 2005
Code dependencies
◦ Nagappan and Ball 2007
18. What are dependencies?
Dependency = (directed)
relationship between two pieces of code
MaX dependency analysis framework
◦ Caller-callee dependencies
◦ Imports and exports
◦ RPC
◦ COM
◦ Runtime dependencies (such as LoadLibrary)
◦ Registry access
◦ etc.
65. Future work
• Assemble the pieces of the puzzle
• Evolution of dependencies predictors?
Are churned dependencies better
• Development process development?
What’s the impact of, say, global
• Human and social factors
66. Conclusion
• Cycles and cliques correlate with defects.
• The complexity of the dependency
structure predicts the number of defects.
• Defect predictions help to allocate
resources for QA more effectively.
Slides on Slideshare.net (search for ISSRE)