From genetic to bacteriological algorithms for mutation-based testing: Research Articles

  • Authors:
  • Benoit Baudry;Franck Fleurey;Jean-Marc Jézéquel;Yves Le Traon

  • Affiliations:
  • IRISA, Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France;IRISA, Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France;IRISA, Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France;IRISA, Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France

  • Venue:
  • Software Testing, Verification & Reliability
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The level of confidence in a software component is often linked to the quality of its test cases. This quality can in turn be evaluated with mutation analysis: faults are injected into the software component (making mutants of it) to check the proportion of mutants detected (‘killed’) by the test cases. But while the generation of a set of basic test cases is easy, improving its quality may require prohibitive effort. This paper focuses on the issue of automating the test optimization. The application of genetic algorithms would appear to be an interesting way of tackling it. The optimization problem is modelled as follows: a test case can be considered as a predator while a mutant program is analogous to a prey. The aim of the selection process is to generate test cases able to kill as many mutants as possible, starting from an initial set of predators, which is the test cases set provided by the programmer. To overcome disappointing experimentation results, on .Net components and unit Eiffel classes, a slight variation on this idea is studied, no longer at the ‘animal’ level (lions killing zebras, say) but at the bacteriological level. The bacteriological level indeed better reflects the test case optimization issue: it mainly differs from the genetic one by the introduction of a memorization function and the suppression of the crossover operator. The purpose of this paper is to explain how the genetic algorithms have been adapted to fit with the issue of test optimization. The resulting algorithm differs so much from genetic algorithms that it has been given another name: bacteriological algorithm. Copyright © 2005 John Wiley & Sons, Ltd.Based on ‘Genes and bacteria for automatic test cases optimization in the .NET environment’ by Benoit Baudry, Frank Fleurey, Jean-Marc Jézéquel and Yves Le Traon which appeared in Proceedings of the International Symposium on Software Reliability Engineering, Annapolis, MD, November 2002, pp. 195–206 [1]. © 2002 IEEE. This revised and expanded version appears here with the permission of the IEEE.