Probabilistic software quality analysis
J.B. Dugan, Ganesh Pai · 2007
This thesis contributes to the practice of software quality assessment (SQA) on several fronts. First, existing SQA methods are inadequate in providing a representative assessment since they mainly consider one aspect of software quality at a time. To address this, we develop a new probabilistic characterization for software product quality. It provides a quantitative assessment of the quality level, conditioned on the evidence available from the quality attributes of fault content, fault proneness, and reliability. It is also extensible to include other qualitative or quantitative attributes from existing software quality standards. Second, in practice, the software development process exhibits sufficient variation so that faults are introduced into the product from diverse sources. The existing models for fault content or fault proneness analysis use product metrics in their formulation while typically excluding the different process sources. These models are insufficient to include those process attributes that are only subjectively qualified. To address these issues, we employ Bayesian networks (BN), to build a useful, feasible framework for SQA that includes qualitative and/or quantitative data from both the process and product sources. It also provides a formalized framework to assess process assertions about product quality. To support this framework, we have built a data flow representation for software process modeling, and an algorithm to convert it to BN. Third, our framework unifies many different analysis methods in the taxonomy of SQA, including the new quality characterization. Specifically, (1) we show that the BN representation of the generalized linear model can be used for fault content or fault proneness analysis and (2) we build a generic BN representation for many practically used software reliability models. Our approach is applied to and evaluated on real software systems. First, we analyze a public domain data set for a medium sized object-oriented system: the results demonstrate that our approach performs no worse than existing methods and produces statistically significant estimations. Subsequently, we perform an end-to-end code quality analysis on the guidance, navigation and control component for an autonomous free flying robotic camera system: the results are applied in the broader context of system-level probabilistic risk analysis.