Models of Software Testing and Uncertainties
Hadar Ziv, Debra J. Richardson · 1997
The lifetime of many software systems is surprisingly long, often far exceeding initial plans and expectations. During software evolution and maintenance, developers and managers frequently gain or lose confidence in software artifacts, especially when existing uncertainties are relieved or when new ones are encountered. Fluctuations in developers ’ confidences may in turn aflect process actions or decisions, for instance determining the impact of change, whether regression testing is needed, or when to stop testing. In this paper, we present an approach that allows for de ve lo pers ’ confidences or “be lie fs ” regarding software components to be modeled and updated directly. This approach is part of an overall strategy that calls for explicit modeling of software uncertainties using a known uncertainty modeling technique called Bayesian Belief Networks. Initially, we present several kinds of software uncertainty and how they may be modeled. This is followed by introducing Bayesian Belief Networks and how they may be used to either confirm, evaluate or predict software uncertainties. We discuss our experiences in constructing Bayesian-network models for an existing software system under development at Beckman Instruments. Once constructed, these models may be used by developers and managers in future software understanding, evolution, and maintenance activities. We also list several factors that may affect confidence as identified in conjunction with the Beckman study. Finally, we describe the design and implementation of a Java program that allows software systems and associated beliefs to be modeled explicitly.