Litcius/Paper detail

Recovering fitness gradients for interprocedural Boolean flags in search-based testing

Yun Lin, Jun Sun, Gordon Fraser, Ziheng Xiu, Ting Liu, Jin Song Dong

202025 citationsDOIOpen Access PDF

Abstract

In Search-based Software Testing (SBST), test generation is guided by fitness functions that estimate how close a test case is to reach an uncovered test goal (e.g., branch). A popular fitness function estimates how close conditional statements are to evaluating to true or false, i.e., the branch distance. However, when conditions read Boolean variables (e.g., if(x && y)), the branch distance provides no gradient for the search, since a Boolean can either be true or false. This flag problem can be addressed by transforming individual procedures such that Boolean flags are replaced with numeric comparisons that provide better guidance for the search. Unfortunately, defining a semantics-preserving transformation that is applicable in an interprocedural case, where Boolean flags are passed around as parameters and return values, is a daunting task. Thus, it is not yet supported by modern test generators.

Topics & Concepts

Computer scienceBoolean functionBoolean expressionFLAGS registerTransformation (genetics)Task (project management)Theoretical computer scienceAlgorithmOperating systemManagementGeneChemistryBiochemistryEconomicsSoftware Testing and Debugging TechniquesSoftware Engineering ResearchSoftware Reliability and Analysis Research
Recovering fitness gradients for interprocedural Boolean flags in search-based testing | Litcius