Recent work on improving the fitness landscape

The fitness landscape faced by EvoSuite is challenging. Here are a couple of recent investigations to address this problem:

  • [PDF] S. Vogl, S. Schweikl, and G. Fraser, “Encoding the certainty of boolean variables to improve the guidance for search-based test generation,” in Proceedings of the Genetic and Evolutionary Computation Conference, 2021, pp. 1088-1096.
    [Bibtex]
    @inproceedings{GECCO21_Fitness,
      title={Encoding the certainty of boolean variables to improve the guidance for search-based test generation},
      author={Vogl, Sebastian and Schweikl, Sebastian and Fraser, Gordon},
      booktitle={Proceedings of the Genetic and Evolutionary Computation Conference},
      pages={1088--1096},
      year={2021}
    }
  • [PDF] [DOI] Y. Lin, Y. S. Ong, J. Sun, G. Fraser, and J. S. Dong, “Graph-Based Seed Object Synthesis for Search-Based Unit Testing,” in Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, New York, NY, USA, 2021, p. 1068–1080.
    [Bibtex]
    @inproceedings{FSE21_ObjectSeed,
    author = {Lin, Yun and Ong, You Sheng and Sun, Jun and Fraser, Gordon and Dong, Jin Song},
    title = {Graph-Based Seed Object Synthesis for Search-Based Unit Testing},
    year = {2021},
    isbn = {9781450385626},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3468264.3468619},
    doi = {10.1145/3468264.3468619},
    abstract = {Search-based software testing (SBST) generates tests using search algorithms guided
    by measurements gauging how far a test case is away from exercising a coverage goal.
    The effectiveness of SBST largely depends on the continuity and monotonicity of the
    fitness landscape decided by these measurements and the search operators. Unfortunately,
    the fitness landscape is challenging when the function under test takes object inputs,
    as classical measurement hardly provide guidance for constructing legitimate object
    inputs. To overcome this problem, we propose test seeds, i.e., test code skeletons
    of legitimate objects which enable the use of classical measurements. Given a target
    branch in a function under test, we first statically analyze the function to build
    an object construction graph that captures the relation between the operands of the
    target method and the states of their relevant object inputs. Based on the graph,
    we synthesize test template code where each "slot" is a mutation point for the search
    algorithm. This approach can be seamlessly integrated with existing SBST algorithms,
    and we implemented EvoObj on top of EvoSuite. Our experiments show that EvoObj outperforms
    EvoSuite with statistical significance on 2750 methods over 103 open source Java projects
    using state-of-the-art SBST algorithms.},
    booktitle = {Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
    pages = {1068–1080},
    numpages = {13},
    keywords = {object oriented, code synthesis, software testing, search-based},
    location = {Athens, Greece},
    series = {ESEC/FSE 2021}
    }
  • [PDF] Y. Lin, J. Sun, G. Fraser, Z. Xiu, T. Liu, and J. S. Dong, “Recovering fitness gradients for interprocedural Boolean flags in search-based testing,” in Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, 2020, pp. 440-451.
    [Bibtex]
    @inproceedings{ISSTA20_Gradient,
      title={Recovering fitness gradients for interprocedural Boolean flags in search-based testing},
      author={Lin, Yun and Sun, Jun and Fraser, Gordon and Xiu, Ziheng and Liu, Ting and Dong, Jin Song},
      booktitle={Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis},
      pages={440--451},
      year={2020}
    }