Está en la página 1de 41

Genetic Algorithms Search-based Software Testing

An Introduction to Search-based Software Testing


Raluca Lefticaru
University of Pite sti

05.12.2008

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Outline
1

Genetic Algorithms Overview Selection Strategies Recombination (Crossover) Mutation Search-based Software Testing Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Genetic Algorithms
Clas a particular a de algoritmi evolutivi, inspirat i din principiul select iei naturale (C. Darwin). Sunt algoritmi probabili sti, care combin a elemente de c autare dirijat a si c autare aleatoare, realiz and un echilibru aproape optimal ntre explorarea spat iului st arilor si exploatarea celor mai bune solut ii g asite. Lucreaz a cu o populat ie de indivizi (solut ii potent iale ale problemei c autare global a) si folosesc tehnici inspirate din biologie precum select ia, ncruci sarea (reproducerea) si mutat ia. Algoritmul simuleaz a un proces de evolut ie: la ecare generat ie, solut iile bune se reproduc, iar cele relativ slabe nu supraviet uiesc.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Genetic Algorithms
De regul a elementele populat iei sunt codicate n form a binar a. Operatorul de ncruci sare este cel principal, cel de mutat ie are un rol secundar. AG folosesc funct ii de performant a obt inute prin transform ari simple ale funct iei obiectiv. Nu este necesar ca funct ia obiectiv s a e derivabil a sau s a ndeplineasc a propriet a ti speciale de convexitate. Pot g asi solut ii optime sau aproape optime cu o mare probabilitate. Sunt folosit i n special n rezolvarea problemelor de optimizare combinatorial a.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Genetic Algorithms
X spat iul de c autare (spat iul st arilor problemei). Individ (genotip, cromozom, string) al unei populat ii = un element din X , adic a o solut ie posibil a a problemei.
t , . . . , x t } populat P (t ) = {x1 ia de indivizi de la momentul t . n P (t ) reprezint a o generat ie. P (t ) nu este mult ime, poate cont ine duplicate.

Cromozomul (purt atorul informat iei genetice) este o structur a liniar a format a din gene (tr as aturi, caractere). Genele se gasesc in cromozom pe anumite pozit ii (loci). Alelele reprezint a valorile genelor.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Genetic Algorithms
Genotipul reprezint a o solut ie potent ial a a problemei, iar fenotipul valoarea acestuia. Evaluarea calit a tilor indivizilor se face cu ajutorul unei funct ii de tness (performant a). Operatorul de recombinare R : X p X q realizeaz ao transformare de tipul (p , q ) n care din p p arint i iau na stere q descendent i. Operatorul de mutat ie este o transformare unar a m : X X , care realizeaz a mici perturb ari ale indivizilor. Supraviet uirea determin a n ce m asur a indivizii unei generat ii supraviet uiesc n urm atoarea.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Minimizarea unei funct ii n Matlab, folosind GADS (Genetic Algorithms and Direct Search Toolbox)
Exemplu Funct ia
2 2 Ras (x ) = 20 + x1 + x2 10(cos 2 x1 + cos 2 x2 )

are un punct de minim global in (0, 0). Reprezentarea funct iei, g asirea minimului folosind interfat a grac a a toolbox-ul GADS si apelarea n linia de comand a: >> plotobjective(@rastriginsfcn,[-5 5; -5 5]); >> optimtool(ga); >> [x fval exitflag] = ga(@rastriginsfcn, 2);
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Gracul funct iei Rastrigin

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Tipuri de algoritmi genetici

AG standard codicare binar a lungimea cromozomului x a m arimea populat iei x a

AG hibrizi codicare real a lungimea cromozomului variabil a m arimea populat iei variabil a

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Structura unui algoritm genetic


procedure genetic algorithm begin t 0 initialize P(t) while (not termination-condition) do begin evaluate P(t) t t + 1 select P(t) from P(t-1) recombine P(t) mutate P(t) end end
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Descriere
t , . . . , x t } populat P (t ) = {x1 ia de indivizi de la iterat ia t . n

Fiecare solut ie posibil a xit este evaluat a, valoarea rezultat a reprezent and tness-ul acesteia. La iterat ia t + 1 este format a o nou a populat ie prin selectarea unor indivizi din populat ia anterioar a (pasul select). C a tiva membri ai acestei populat ii suport a transform ari prin intermediul operatorilor genetici (mutat ie si recombinare), rezult and noi indivizi. Procedeul este repetat p an a c and criteriul de oprire este satisf acut.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Mecanisme de select ie Algoritmul Monte Carlo (alg. ruletei)


Algoritm de selct ie, bazat pe tness. Se calculeaz a valorile tness f (xi ) pentru ecare individ xi , i = 1 . . . n, f 0 de maximizat. Se determin a tness-ul total al populat iei F =
n i =1 f (xi )

Se calculeaz a probabilitatea de select ie pi a ec arui individ: xi ) pi = f (F Se calculeaz a probabilitatea cumulat a qi a ec arui individ: i qi = j =1 pj

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Mecanisme de select ie Algoritmul Monte Carlo (alg. ruletei)


Pentru a selecta noua populat ie, se repet a urm atorul procedeu de n ori: Se genereaz a aleator un num ar real r din intervalul [0..1]. Dac a r < q1 atunci se selecteaz a primul individ x1 , altfel se alege individul xi pentru care qi 1 < r qi . Observat ie Unii indivizi vor avea copii multiple n populat ia intermediar a, alt ii nu vor ap area deloc.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Alte mecanisme de select ie


Schimbarea de scal a a funct iei de tness: liniar a sau exponent ial a; static a (aceea si pentru toate generat iile) sau dinamic a. Select ia bazat a pe ordonare, unde n = nr. de indivizi, ri rangul individului i , q [1, 2] presiunea de select ie pi = 1 (ri 1)2(q 1) q n (n 1)

Select ia de tip turnir. Strategii elitiste.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Select ie bazat a pe ordonare

Figure: Inainte de ordonare

Figure: Dup a de ordonare


R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Recombinarea ( Incruci sarea)


Combin a tr as aturile a doi cromozomi p arint i rezult and urma si care mo stenesc aceste tr as aturi. Cei doi urma si rezult a cel mai des prin interschimbarea anumitor segmente din p arint i. Tipuri: ncruci sare cu un punct de t aietur a; cu mai multe puncte de t aietur a; ncruci sare adaptiv a; segmentat a; cu amestec; uniform a.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Incruci sarea cu un punct de t aietur a


pc probabilitatea ncruci s arii, parametru al algoritmului genetic; num arul a steptat de cromozomi care vor participa la ncruci sare este pc n pentru a selecta indivizii care vor ncruci sat i:
pentru ecare individ, se genereaz a un num ar aleator r n intervalul [0..1] dac a r < pc atunci selecteaz a individul respectiv pentru ncruci sare

pentru a realiza efectiv ncruci sarea (cu un punct de t aiere): alegem c ate o pereche de indivizi, select am aleator un punct de t aiere i {1, 2, . . . , n 1}, unde n este lungimea cromozomului, si interschimb am segmentele.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Incruci sarea euristic a


Incruci sare pentru codicarea real a: Michalewicz Folose ste valorile funct iei obiectiv n determinarea direct iei c aut arii. Pentru p arint ii x = (x1 , . . . , xn ), y = (y1 , ..., yn ), x mai adecvat dec at y , se genereaz a un singur urma s z = (z1 , ..., zn ), zi = (xi yi ) + xi , (0, 1) aleator. In loc de (0, 1) aleator, se poate folosi si un xat. z se va g asi n afara segmentului [x , y ], pe dreapta suport a acestuia, la o distant a mai mic a de p arintele cu tness mai bun.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Mutat ia
Altereaz a una sau mai multe gene alese arbitrar dintr-un cromozom. pm probabilitatea mutat iei, parametru al algoritmului genetic; num arul a steptat de gene mutate este pm m n, m lungimea unui cromozom; Mutat ia unei gene (bit): modicarea bitului din 0 in 1 sau invers Pentru ecare cromozom, si ecare gen a a acestuia:
se genereaz a un num ar aleator r din intervalul [0..1] dac a r < pm atunci se modic a valoarea genei

P astreaz a variabilitatea n populat ie

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Bibliograe AG
D. Dumitrescu. Algoritmi genetici si strategii evolutive - Aplicat ii n inteligent a articial a si n domenii conexe.. Editura Albastr a, Cluj-Napoca, 2000. D. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning.. Addison-Wesley, 1989. D. Whitley. A genetic algorithm tutorial. Statistics and Computing, 1994. An introduction to genetic algorithms. http://www.obitko.com/tutorials/genetic-algorithms/
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Overview Selection Strategies Recombination (Crossover) Mutation

Biblioteci pentru lucrul cu AG


Genetic Algorithms and Direct Search Toolbox (MATLAB): http://www.mathworks.com/products/gads/ JGAP - Java Genetic Algorithms Package: http://jgap.sourceforge.net/ JAGA - Java API for Genetic Algorithms: http://www.jaga.org/ ECJ - A Java-based Evolutionary Computation Research System: http://cs.gmu.edu/eclab/projects/ecj/ GAlib - A C++ Library of Genetic Algorithm Components: http://lancet.mit.edu/ga/ GAUL - Genetic Algorithm Utility Library (for C): http://gaul.sourceforge.net/
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Search-based Software Engineering (SBSE)


Description Search-based software engineering (SBSE) is a relatively new approach to transform the software engineering problems into optimization problems, which can be further solved by applying metaheuristic search techniques. The term of SBSE was rst used by Harman and Jones, 2001, although there are some previous papers on this topic. Applications Software testing, requirements engineering, automated maintenance, service-oriented software engineering, compiler optimization, quality assessment, project planning and cost estimation.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Search-based Software Engineering


Harman and Jones, Information & Software Technology, 2001 This paper claims that a new eld of software engineering research and practice is emerging: search-based software engineering. The paper argues that software engineering is ideal for the application of metaheuristic search techniques, such as genetic algorithms, simulated annealing and tabu search. Such search-based techniques could provide solutions to the dicult problems of balancing competing (and some times inconsistent) constraints and may suggest ways of nding acceptable solutions in situations where perfect solutions are either theoretically impossible or practically infeasible. In order to develop the eld of search-based software engineering, a reformulation of classic software engineering problems as search problems is required.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Number of publications per year from 1976 to 2008

Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

The ratio of SE research elds involved in SBSE

Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

The ratio of publications number in the world countries

Source: http://www.sebase.org/sbse/publications/
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Relevant publications
M. Harman, B. F. Jones. Search-based software engineering. Information & Software Technology, 2001. P. McMinn. Search-based software test data generation: a survey. Software Testing, Verication and Reliability, 2004. M. Harman. The current state and future of search based software engineering. International Conference on Software Engineering, 2007. Repository of publications on SBSE. http://www.sebase.org/sbse/publications/repository.html
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Search-based Software Testing (SBST)


Characterized by the usage of guided search techniques for test generation: hill climbing, alternating variable method, simulated annealing, genetic algorithms, genetic programming, particle swarm optimization, articial immune systems, tabu search etc. The test aim (cover all branches, obtain the WCET) is rst transformed into an optimization problem with respect to some tness (cost or objective) function. Search space = the input domain of the test object (program, function). The search spaces obtained are usually complex, discontinuous, and non-linear, due to the non-linearity of software Metaheuristic search methods are recommended.
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Aplicat ii ale AG n testare


Testare structural a: Control Flow Graph (CFG) Control Dependence Graph (CDG). Scopuri: atingerea nodurilor, c ailor etc. Pargas et al., Tonella, Tracey, McMinn etc. Testare funct ional a: Funct ia obiectiv obt inut a din precondit ie si non postcondit ie, pornind de la o specicat ie Z, Jones et al. Grey-Box Testing: Violarea assert-urilor, obt inerea except iilor. Testare non-funct ional a WCET de maximizat, iar BCET de minimizat. Wegener et al.

R. Lefticaru

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Exemplu
1 2 3 void example(double x, double y){ if (x >= 10 && x <= 20){ if (y >= 0 && y <= 10){ // TARGET } else { // alte instruct iuni } } else{ // alte instruct iuni } // si alte instruct iuni }
R. Lefticaru An Introduction to Search-based Software Testing

5 6

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

CFG si CDG

1 T 2 T 3 F 4 F

1 T 2
6

6 F 5

T 3

F 4

Control Flow Graph


R. Lefticaru

Control Dependence Graph


An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Funct ie de tness (Pargas)

Functia de fitness

1.5

0.5

0 40 20 0 20 40 x 20 40 y 0 40 20

tness = dependent executed


R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Funct iile obiectiv ale lui Tracey


Predicat relat ional a=b a=b a<b ab a>b ab Conectiv a logic a Boolean ab ab a xor b Funct ia obiectiv obj if abs (a b ) = 0 then 0 else abs (a b ) + K if abs (a b ) = 0 then 0 else K if a b < 0 then 0 else (a b ) + K if a b 0 then 0 else (a b ) + K if b a < 0 then 0 else (b a) + K if b a 0 then 0 else (b a) + K Funct ia obiectiv obj if TRUE then 0 else K obj (a) + obj (b ) min(obj (a), obj (b )) obj ((a b ) (a b ))
R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Funct ie de tness (Tracey, McMinn)

Functia de fitness

1.5

0.5

0 40 20 0 20 40 x 20 40 y 0 40 20

tness = approach level + normalized branch distance


R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Comparat ie funct ii de normalizare


1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 20 40
R. Lefticaru

11.01**(d) 11.001**(d) 11.0001**(d) d/max(d) d/(2*max(d)) d/(4*max(d)) d/(1+d)

60

80

100

An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

FSM pentru clasa Book


borrow Available return Borrowed

reserve

Reserved

return (a)

Borrowed& Reserved

R. Lefticaru

An Introduction to Search-based Software Testing

cancel

w rro bo

reserve

cancel

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Statechart pentru clasa Book


Book() A bor(int x) [ x > 0 ] ret(int x) [ x = getBorCustId() ] can(int x) [ x = getResCustId() ]
)] d( stI u C es tR e g

B res(int x) [ x > 0 and x <> getBorrCustId() ] BR

x) nt r(i o b

[x

ret(int x) [ x = getBorCustId() ]

(b)
R. Lefticaru An Introduction to Search-based Software Testing

can(int x) [ x = getResCustId() ]

res(int x) [ x > 0 ]

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Fitness pt testare bazat a pe FSM


Pentru generarea de date de test se poate folosi: tness = approach level + normalized branch level approach level {0, 1, . . . , m 1} normalized branch level [0, 1)

f1 [g1] S1
TA app RGET r M bran oach_le ISSE D ch_ leve vel = m l=o -1 bj(g 1)

f2 [g2] S2
TA app RGET r MIS bran oach_ SED le ch_ leve vel = m l=o -2 bj(g 2)

fm [gm] S3 Sm-1
TA R app GET bran roach MISSE _le D ch_ leve vel = 0 l=o bj(g m)

Sm

Pentru testarea de conformant a se poate folosi funct ia: pre-condition post-condition


R. Lefticaru An Introduction to Search-based Software Testing

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Exemplu

Fitness value

1.5 1 0.5 0 50 0 50 x2 x1 0 50

/R / B x1 > 0 s= A s i x2 = x1 norm : [0, 101] [0, 1), norm(d ) = 1 1.05d , K = 1


R. Lefticaru An Introduction to Search-based Software Testing

res (x1 )

bor (x2 )

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Num ar mediu de generat ii


Generations 100 80 60 40 20 0
12 E14 3. 11 E11 6. 25 E10 1. 25 E09 5. 16 E08 1. 25 E07 6. 09 E06 1. 85 E05 2. 46 E04 3. 47 E03 2. 04 E02 3. 07 E01
R. Lefticaru An Introduction to Search-based Software Testing

Axa Ox : num arul solut iilor / num arul elementelor din spat iul de c autare Generare valori pentru 35 de c ai din FSM cu lungimi ntre 2 si 7, folosind JGAP

3.

Genetic Algorithms Search-based Software Testing

Search-based Software Engineering Search-based Software Testing Structural Search-based Testing Evolutionary State-based Testing

Num ar mediu de e securi


Failures 8% 6% 4% 2% 0%
12 E14 3. 11 E11 6. 25 E10 1. 25 E09 5. 16 E08 1. 25 E07 6. 09 E06 1. 85 E05 2. 46 E04 3. 47 E03 2. 04 E02 3. 07 E01
R. Lefticaru An Introduction to Search-based Software Testing

Dimensiune populat ie = 20 indivizi, codicat i real Nr. maxim de evolut ii = 200 Valori din [10p , 10p ], p = 1, 2, 3, 4

3.

También podría gustarte