60 likes | 201 Views
ETG open problem #2 Improvement of ETG by static analysis. H. Schlingloff, A. Baars, Y. Hassoun, M. Leucker. Static Analysis in ETG. EvoTest WP4: removing irrelevant variables from evolutionary search by variable dependence analysis
E N D
ETG open problem #2Improvement of ETG by static analysis H. Schlingloff, A. Baars,Y. Hassoun, M. Leucker
Static Analysis in ETG • EvoTest WP4: removing irrelevant variables from evolutionary search by variable dependence analysis • SUT is a C function, test case is tupel of input parameters, objective is some coverage (e.g. branch) • a variable is irrelevant for a particular goal if its value does not contribute to the goal • this property can be (partially) decided by static analysis • if a variable is irrelevant, it is not included in the genome. This reduces the search space • This technique is applicable whenever it can be statically determined whether a certain variable (gene) contributes to the fitness of the whole individual (genome) or not • does this really reduce execution time???
Static Analysis (1) • The static analysis could improve the parameters of a genetic algorithm (like cross-over operators, fitness function etc.) rather than just limiting the search space • example: f(x,y,s,t) = if (x+y>10 and s+t>20) then goal: …; • crossover that changes x or y when their sum satisfies the condition might be counterproductive for the search in the sense that prevents reaching the solution quickly. • This information could be used when deciding upon a rep, in order to reduce the probability that these crossovers can happen • abstract interpretation and equivalence partitioning can define the range of input variables and hence limit the search space • This can easily be incorporated into the search • symbolic execution can determine path conditions • How can this be incorporated into the search??
Static Analysis (2) • more generally • functional dependencies between variables can be statically analyzed • How can this be incorporated into the search?? • ask • this seems to be a generalization of the previous result (how do parts of the genome influence the fitness of the individual) and should be investigated in more detail • Might be useful to determine the order of variables in the genome (in the genetic diversity computation) • Bayesian estimation? • Learning of dependencies? • Might be useful to optimize the order in which goals are targeted • dominating and dominated block analysis together with set cover
Human Interaction in ETG • Human interaction (assertions) can help in static analysis; thus, obviously, it can help in ETG • Seeding can be done manually • More generally, humans can choose and dynamically alternate some parameters of the genetic algorithm (e.g. crossover operators, mutation rates, …) • This could be coupled to the symbolic execution (to be investigated)
Model Checking and ETG • ETG might help MC • it is not clear how MC might help ETG • prove certain goals to be unreachable? • prove abstraction transformations?