-
Notifications
You must be signed in to change notification settings - Fork 15
Runtime Configurations
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.
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)