public abstract class ScheduleType extends Object
TODO: memory based on number of branches, as we can/should use larger population size, longer test cases, larger test suites, etc. These latter are an initial proof-of-concept of a more general optimized tuning.
TODO: handle schedule that is specific for the SVN/Git changes (ie only recently modified classes used for search). Would be interesting to analyze how often there are commits (how many classes are modified) in open source / industrial projects. If in last commit there were added/modified a set X of classes, not only we might want to focus on those, but also on the others that take them as input. Furthermore, we can look at the history: if CTG has been run for weeks/months, and then new classes are added, those should have much higher priority than old, heavily tested classes
TODO: we should also consider what version of EvoSuite has been used. If a new version of EvoSuite is introduced during CTG, it would make sense to re-generate test cases for all CUTs, as new version might achieve higher coverage
| Modifier and Type | Field and Description |
|---|---|
protected JobScheduler |
scheduler |
| Modifier | Constructor and Description |
|---|---|
protected |
ScheduleType(JobScheduler scheduler) |
| Modifier and Type | Method and Description |
|---|---|
abstract boolean |
canExecuteMore()
When we get a schedule, the scheduler might decide to do not use the entire
budget.
|
abstract List<JobDefinition> |
createNewSchedule()
Create a new partial/complete schedule if there is still search budget left
|
protected List<JobDefinition> |
createScheduleForWhenNotEnoughBudget()
if there is not enough search budget, then try
to target as many CUTs as possible
|
protected boolean |
enoughBudgetForAll() |
protected final JobScheduler scheduler
protected ScheduleType(JobScheduler scheduler)
protected boolean enoughBudgetForAll()
public abstract List<JobDefinition> createNewSchedule() throws IllegalStateException
IllegalStateExceptionpublic abstract boolean canExecuteMore()
When we get a schedule, the scheduler might decide to do not use the entire budget. Reason? It might decide to generate some test cases first, and then use those as seeding for a new round of execution.
Once the budget is finished, this schedule cannot be reused. A new instance needs to be created.
protected List<JobDefinition> createScheduleForWhenNotEnoughBudget()
Copyright © 2010–2016 EvoSuite. All rights reserved.