Using Bayesian statistics to support testing of software systems

Testing of software systems is crucial for reliability, but is often difficult owing to the many uncertainties and practical constraints involved. The nature of the software development process often prevents straightforward application of standard statistical methods. In recent years, the current authors have developed a Bayesian statistical approach to support software testers, in particular for high reliability testing of software systems near the end of the development process. Throughout this period, they have been collaborating with an industrial partner to ensure practical relevance of the methods. An important difference when compared with existing methods to support software testing is that the judgements and current practice of the software testers are central, so the method helps testers to structure their judgements and optimize corresponding test actions, the latter process being far too complex to be done effectively without the support of such sophisticated statistical methods. In the present paper, an overview is given of this approach and of results to date. Recent progress is also discussed, together with related future research topics aimed at wide practical applicability of the approach.

[1]  James O. Berger Statistical Decision Theory , 1980 .

[2]  Michael Goldstein,et al.  Bayesian Graphical Models for Software Testing , 2002, IEEE Trans. Software Eng..

[3]  Malcolm Munro,et al.  Moral Dominance Relations for Program Comprehension , 2003, IEEE Trans. Software Eng..

[4]  T. Bedford,et al.  Probabilistic Risk Analysis: Foundations and Methods , 2001 .

[5]  Michael Goldstein,et al.  Bayes linear kinematics and Bayes linear Bayes graphical models , 2004 .

[6]  John H R May,et al.  Integrity prediction during software development , 1992 .

[7]  P Coolen-Schrijner,et al.  On Zero-Failure Testing for Bayesian High-Reliability Demonstration , 2006 .

[8]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[9]  Frank P. A. Coolen,et al.  On the Use of Imprecise Probabilities in Reliability , 2004 .

[10]  W. Nelson Statistical Methods for Reliability Data , 1998 .

[11]  S. E. Ahmed,et al.  Markov Chain Monte Carlo: Stochastic Simulation for Bayesian Inference , 2008, Technometrics.

[12]  Hoang Pham Software Reliability , 1999 .

[13]  Jerald F. Lawless,et al.  Statistical Methods in Reliability , 1983 .

[14]  Frank P. A. Coolen,et al.  Generalized partition testing via Bayes linear methods , 2001, Inf. Softw. Technol..

[15]  Frank P. A. Coolen,et al.  Managing the uncertainties of software testing: a Bayesian approach , 2001 .

[16]  Paulo A.F. Martins,et al.  Invert-Forming of Thin-Walled Tubes Using a Die , 2006 .

[17]  K. Chaloner,et al.  Bayesian Experimental Design: A Review , 1995 .

[18]  Michael R. Lyu,et al.  What is software reliability? , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

[19]  H. Martz Bayesian reliability analysis , 1982 .

[20]  Colin L. Mallows,et al.  Factor-covering designs for testing software , 1998 .

[21]  Christoph A. Schneeweiss,et al.  Distributed Decision Making , 2003 .

[22]  P. Garrone,et al.  Some new models of software testing with performance comparisons , 1991 .

[23]  Sidney Addelman,et al.  trans-Dimethanolbis(1,1,1-trifluoro-5,5-dimethylhexane-2,4-dionato)zinc(II) , 2008, Acta crystallographica. Section E, Structure reports online.

[24]  Norman E. Fenton,et al.  A Critique of Software Defect Prediction Models , 1999, IEEE Trans. Software Eng..