Optimizing testing efficiency with error-prone path identification and genetic algorithms

We present a method for optimizing software testing efficiency by identifying the most error prone path clusters in a program. We do this by developing variable length genetic algorithms that optimize and select the software path clusters which are weighted with sources of error indexes. Although various methods have been applied to detecting and reducing errors in a whole system, there is little research into partitioning a system into smaller error prone domains for testing. Exhaustive software testing is rarely possible because it becomes intractable for even medium sized software. Typically only parts of a program can be tested, but these parts are not necessarily the most error prone. Therefore, we are developing a more selective approach to testing by focusing on those parts that are most likely to contain faults, so that the most error prone paths can be tested first. By identifying the most error prone paths, the testing efficiency can be increased.

[1]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[2]  James R. Larus,et al.  Programs Follow Paths , 1999 .

[3]  William M. Spears,et al.  A Study of Crossover Operators in Genetic Programming , 1991, ISMIS.

[4]  Charles W. Butler,et al.  Design complexity measurement and testing , 1989, CACM.

[5]  James M. Bieman,et al.  The relationship between test coverage and reliability , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[6]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[7]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[8]  Boris Beizer,et al.  Black Box Testing: Techniques for Functional Testing of Software and Systems , 1996, IEEE Software.

[9]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[10]  Renate Sitte A framework for quantifying error proneness in software , 2000, Proceedings First Asia-Pacific Conference on Quality Software.

[11]  Bryan F. Jones,et al.  A Strategy for Using Genetic Algorithms to Automate Branch and Fault-Based Testing , 1998, Comput. J..

[12]  Kalyanmoy Deb,et al.  Messy Genetic Algorithms: Motivation, Analysis, and First Results , 1989, Complex Syst..

[13]  Paul Strooper Proceedings of the 2005 Australian Software Engineering Conference , 2004 .

[14]  James M. Bieman,et al.  DESIGNING FOR SOFTWARE TESTABILITY USING AUTOMATED ORACLES , 1992, Proceedings International Test Conference 1992.

[15]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[16]  Joseph Robert Horgan,et al.  Test set size minimization and fault detection effectiveness: a case study in a space application , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).