Bayesian Belief Networks for Test Driven Development

Testing accounts for the major percentage of technical contribution in the software development process. Typically, it consumes more than 50 percent of the total cost of developing a piece of software. The selection of software tests is a very important activity within this process to ensure the software reliability requirements are met. Generally tests are run to achieve maximum coverage of the software code and very little attention is given to the achieved reliability of the software. Using an existing methodology, this paper describes how to use Bayesian Belief Networks (BBNs) to select unit tests based on their contribution to the reliability of the module under consideration. In particular the work examines how the approach can enhance test-first development by assessing the quality of test suites resulting from this development methodology and providing insight into additional tests that can significantly reduce the achieved reliability. In this way the method can produce an optimal selection of inputs and the order in which the tests are executed to maximize the software reliability. To illustrate this approach, a belief network is constructed for a modern software system incorporating the expert opinion, expressed through probabilities of the relative quality of the elements of the software, and the potential effectiveness of the software tests. The steps involved in constructing the Bayesian Network are explained as is a method to allow for the test suite resulting from test-driven development.




References:
[1] David A. Wooff, Michael Goldstein, and Frank P.A. Coolen, "Bayesian
Graphical Models for Software Testing", IEEE Transactions Software
Engineering, May2002, pp 510-525.
[2] Kearton Rees, Frank Coolen, Michael Goldstein, and David Wooff,
"Managing the Uncertainties of software testing: a Bayesian Approach".
Quality and Reliability Engineering International, 17, in 2002 pp 191-
203.
[3] F.P. Coolen, M. Goldstein, and D.A. Wooff, "Using Bayesian statistics
to support testing of software systems". Proceedings of the 16th
Advances in Reliability Technology Symposium, in 2005, pp 109-121.
[4] F. P. A. Coolen and M. Goldstein and D. A. Wooff, "Project viability
assessment for support of software testing via Bayesian graphical
modeling", In: Safety and Reliability, Lisse: Swets & Zeitlinger, in 2003,
pp 417-422.
[5] Jensen, F.V.,".Bayesian Networks and Decision Graphs". New York:
Springer 2001
[6] "Bayesian Belief Networks", Available:
http://www.hugin//developer.com//
[7] Norman E. Fenton, Martin Neil, "Software Metrics: roadmap",
Proceedings of the Conference on the future of Software Engineering,
ACM Press, 2000, pp 357-370.
[8] "Introduction to Test-Driven Development (TDD)", Available:
http://www.agiledata.org//
[9] "Improving Application Quality Using Test-Driven Development
(TDD)", Available: http://www.methodsandtools.com//