Skip to content

Runtime Configurations

Yun Lin edited this page Nov 26, 2020 · 7 revisions

Testing Strategies

Algorithm -Option -Dstrategy -Dalgorithm -Ddse_solver -D(z3/cvc4)_path
Monotomic GA generateSuite Evosuite MONOTONIC_GA / /
DynaMOSA generateMOSuite MOSUITE DynaMOSA / /
MOSA generateMOSuite MOSUITE MOSA / /
Random generateTests ONEBRANCH random / /
DSE (Evosuite Solver) generateSuiteUsingDSE DSE / (default) (default)
DSE (CVC Solver) generateSuiteUsingDSE DSE / CVC_SOLVER .../cvc4.exe
DSE (Z3 Solver) generateSuiteUsingDSE DSE / Z3_SOLVER .../z3.exe
Hybrid Data Collector generateTests EMPIRICAL_HYBRID_COLLECTOR / / /
Learning-based Hybrid generateTests LEARNING_BASED_HYBRID / / /

If we would like to add (or just debug to apply) a new strategy, we should visit the class/method: org.evosuite.TestSuiteGenerator.generateTestSuite(), and org.evosuite.TestSuiteGenerator.generateTests()

For one-branch strategy (used for random strategy), the time (evolving) budget is set for each branch. For example, if we have N branches to cover, and the time budget is set to 1 minute. Thus, the evolving takes N minutes.

Seed Strategies

The seeding strategy is defined in ConstantPoolManager. Usually, Evosuite keeps two static constant pools and one dynamic constant pool. Literature shows that effective seeding strategy can effectively improve the branch coverage efficiency. Moreover, ConstantPoolManager allow the tool to generate magic number to cover some hard branches for SBST.

  • only use dynamic costant pool: -Dprimitive_pool 1 -Ddynamic_pool 1 (the second 1 is the probability)
  • only use static costant pool: -Dprimitive_pool 1 -Ddynamic_pool 0 (0 is the probability)