Using Genetic Algorithms to Improve Test Suite Prioritizations

Alexander Conrad and Gregory M. Kapfhammer. Using Genetic Algorithms to Improve Test Suite Prioritizations (Poster). Presented at the Undergraduate Research at the State Capitol, Harrisburg, Pennsylvania, October, 2008.

Related Project: Kanonizo

Abstract

Testing plays a major role in software development by uncovering defects and establishing confidence in correct functionality. As software projects grow in complexity, testing becomes difficult to accomplish. By rerunning all existing test cases for a large software system, regression testing can ensure that modifications to the system work correctly and do not introduce defects into previously functioning features. Large regression test suites often require weeks to execute. A primary technique for mitigating this runtime cost is test suite prioritization. By rearranging individual test cases within a suite, prioritization allows the tests to rapidly detect defects, enabling engineers to fix them sooner. While this approach is widely used in industry, current prioritization tools normally make selections based upon the most appealing next choice without planning for the future. Preliminary experiments reveal that genetic algorithms offer a superior solution for performing prioritization. By mimicking natural evolutionary processes, such as selection, mutation, and recombination, genetic algorithms "evolve" solutions to problems. This research involves implementing a test suite prioritizer that uses genetic algorithms, conducting an empirical study to evaluate the quality of genetically prioritized suites, and performing detailed statistical analyses to identify fundamental tradeoffs in efficiency and effectiveness.

[PDF]


Links to this Page