An ¡Effort-‑Aware, ¡ ¡ Evolu1on-‑Oriented ¡Approach ¡ ¡ for ¡Integra1on ¡Tes1ng ¡Ordering ¡ Aminata ¡Sabané , ¡Giuliano ¡Antoniol, ¡Philippe ¡Galinier, ¡ Yann-‑Gaël ¡Guéhéneuc, ¡Massimiliano ¡Di ¡Penta ¡ ¡ Juin ¡2014 ¡ ¡
Outline ¡ • Mo:va:on ¡ • Goal ¡ • Related ¡Work ¡ • Problem ¡Formaliza:on ¡ • Meme:c ¡Algorithm ¡ • Process ¡of ¡Using ¡METER ¡ ¡ • Experiment ¡ • Results ¡ • Conclusion ¡ 1 ¡
Mo1va1on ¡ Not ¡only ¡regression ¡tes-ng… ¡ ¡ • It ¡is ¡in ¡the ¡nature ¡of ¡soLware ¡to ¡evolve ¡ ¡ ¡ • During ¡evolu:on ¡of ¡OO ¡programs ¡, ¡classes ¡are ¡ added, ¡modified, ¡or ¡deleted ¡ ¡ • Tes:ng ¡ac:vi:es ¡are ¡required ¡for ¡quality ¡ assurance ¡of ¡the ¡next ¡release ¡ • Some ¡changes ¡can ¡require ¡not ¡only ¡regression ¡ tes:ng ¡but ¡also ¡ a ¡par1al ¡(re-‑)integra1on ¡of ¡ classes ¡in ¡the ¡system. ¡ 2 ¡ ¡
Mo1va1on ¡ SBC ¡principle ¡viola-on ¡& ¡early ¡defect ¡detec-on ¡ ¡ • Server-‑before-‑client ¡ è ¡Test ¡server ¡first ¡ ¡ • Greenfield ¡development ¡vs ¡SoLware ¡Evolu:on ¡ ¡ • Importance ¡of ¡the ¡test ¡server ¡first ¡principle ¡ – fault ¡localiza:on ¡ ¡ ¡ • Importance ¡of ¡early ¡defect ¡detec:on ¡in ¡tes:ng ¡ ac:vi:es ¡ ¡ 3 ¡ ¡
Mo1va1on ¡ No ¡big-‑bang ¡strategy… ¡ ¡ • Although ¡the ¡whole ¡system ¡is ¡available, ¡big-‑bang ¡ tes:ng ¡would ¡not ¡be ¡efficient ¡for: ¡ – fault ¡localiza:on ¡ ¡ – Early ¡defect ¡detec:on ¡ ¡ • Need ¡of ¡a ¡specific ¡order ¡for ¡class ¡integra1on ¡ tes1ng ¡ – Server-‑before-‑client(SBC) ¡principle ¡to ¡reduce ¡ tes:ng ¡effort ¡ – Priori:za:on ¡to ¡maximize ¡early ¡defect ¡detec:on ¡ 4 ¡
METER’s ¡Goal ¡ ¡METER ¡( Minimizing ¡Evolu1on ¡Tes1ng ¡EffoRt ) ¡ ¡ Determines ¡class ¡tes:ng ¡order ¡in ¡the ¡context ¡of ¡ soLware ¡evolu:on, ¡with ¡the ¡goal ¡of: ¡ ¡ • (1) ¡minimizing ¡the ¡number ¡of ¡viola:ons ¡of ¡the ¡ SBC ¡principle ¡ ¡ ¡ • (2) ¡maximizing ¡early ¡defect ¡detec:on ¡ ¡ 5 ¡
Related ¡Work ¡ Breaking ¡cycles ¡with ¡minimum ¡ number ¡of ¡removed ¡edges ¡is ¡NP-‑hard ¡ Harrold ¡et ¡al., ¡92 ¡ SBC ¡principle ¡with ¡only ¡Inheritance ¡ Kung ¡et ¡al., ¡93 ¡ AS ¡ CITO ¡– ¡SBC ¡principle ¡extended ¡ A ¡ B ¡ AS ¡ ¡ CITO ¡heuris:c-‑based ¡approaches ¡ CITO ¡graph-‑based ¡approaches ¡ • Le ¡Hanh ¡ et ¡al. , ¡01 ¡ • Taï ¡& ¡Daniel, ¡97 ¡ • Briand ¡ et ¡al. , ¡02 ¡ • Le ¡Traon ¡ et ¡al. , ¡00 ¡ • .. ¡ • Briand ¡ et ¡al. , ¡01 ¡ • Borner ¡& ¡Peach, ¡09 ¡ • … ¡ • Verglios ¡ et ¡al , ¡12 ¡ • Abdurazik ¡et ¡Offut, ¡09 ¡ ¡ METER, ¡CITO ¡in ¡SoTware ¡Evolu1on ¡Context ¡+ ¡Class ¡Priori1za1on ¡ 6 ¡
Problem ¡Formaliza1on ¡ • C ¡is ¡the ¡impact ¡set ¡ ¡ • For ¡ ¡c ¡E ¡C, ¡Prio(c) ¡gives ¡the ¡priority ¡assigned ¡to ¡c ¡ ¡ • (X,Y) ¡means ¡that ¡X ¡depends ¡on ¡Y ¡by ¡a ¡rela:on ¡of ¡As, ¡Ag, ¡or ¡I ¡ ¡ • S ¡=< ¡c1, ¡c2, ¡…, ¡cn>, ¡ permuta1on ¡of ¡|C| ¡classes, ¡a ¡solu1on ¡ ¡ • Pos(c, ¡S) ¡ ¡is ¡the ¡rank ¡of ¡c ¡ ¡in ¡S ¡ ¡ ¡ • SBC S, ¡ set ¡of ¡of ¡couples ¡(X, ¡Y) ¡with ¡viola:on ¡(Pos(X, ¡S) ¡<Pos(Y, ¡S)) ¡ 7 ¡
Problem ¡Formaliza1on ¡ • Cost ¡Func:on ¡to ¡be ¡Minimized ¡ ¡ Cpx( ¡X,Y ¡) ¡is ¡a ¡complexity ¡measure ¡for ¡the ¡dependency ¡between ¡ ¡X ¡and ¡ ¡Y ¡ ¡ ϒ( ¡Type( ¡X, ¡Y ¡)) ¡a ¡penalty ¡used ¡to ¡favor ¡a ¡certain ¡type ¡of ¡SBC ¡viola:ons ¡ ¡ α ¡ ¡ [0 ¡ ; ¡ 1] ¡ expresses ¡ the ¡ balance ¡ between ¡ the ¡ two ¡ objec:ves: ¡ Early ¡ defect ¡ detec:on ¡ maximiza:on ¡ ¡& ¡SBC ¡principle ¡respect ¡ 8 ¡
Meme1c ¡Algorithm ¡ Meme:c ¡ Algorithms ¡ (Mas) ¡ are ¡ an ¡ enhancement ¡ of ¡ Gene:c ¡ Algorithms ¡(GAs), ¡both ¡being ¡Evolu:onary ¡Algorithms ¡(Eas) ¡ 9 ¡
Meme1c ¡Algorithm ¡ • MA ¡is ¡an ¡hybrid ¡algorithm: ¡GA ¡+ ¡LS ¡ ¡ • MA ¡is ¡one ¡of ¡the ¡most ¡powerful ¡exis:ng ¡meta-‑heuris:c ¡ 10 ¡
Meme1c ¡Algorithm ¡ A ¡configura1on ¡(poten1al ¡solu1on) ¡ of ¡the ¡problem ¡corresponds ¡ to ¡ any ¡permuta1on ¡of ¡N ¡classes ¡ ¡ Crossover ¡Operator: ¡ Posi1on-‑Based ¡Crossover ¡( G. ¡Syswerda, ¡90) ¡ ¡ 11 ¡
Meme1c ¡Algorithm ¡ • ¡Local ¡Search ¡Operator ¡ Performs ¡ itera:vely ¡ a ¡ move ¡ that ¡ strictly ¡ decreases ¡ the ¡ cost ¡ of ¡ the ¡ solu:on ¡ and ¡ stops ¡ when ¡no ¡more ¡improving ¡move ¡is ¡available ¡ ¡ 12 ¡
Process ¡of ¡Using ¡METER ¡ (1) ¡ Iden:fy ¡Changes ¡ Releases ¡ R i-‑1 -‑>R i ¡ (source ¡ files) ¡ (2) ¡ Generate ¡ ¡Impact ¡Set ¡ (3b) ¡ (3a) ¡ Build ¡Dependency ¡ Assign ¡ ¡ Graph ¡ Priori:es ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(4) ¡ ¡ ¡ ¡ ¡ ¡ ¡M ¡ ¡ ¡ ¡ ¡ ¡E ¡ ¡ ¡ ¡ ¡ ¡T ¡ ¡ ¡ ¡ ¡ ¡E ¡ ¡ ¡ ¡ ¡ ¡R ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Engine ¡ ¡ ¡ 13 ¡
Experiment ¡ Goal ¡ Assess ¡the ¡ability ¡of ¡METER ¡to ¡ promote ¡early ¡defect ¡detec:on ¡ while ¡minimizing ¡SBC ¡viola:ons ¡ ¡ ¡ ¡ General ¡Research ¡Ques1on ¡ I s ¡ t h e r e ¡ a ¡ t r a d e -‑ o ff ¡ between ¡ minimizing ¡ SBC ¡ principle ¡ viola:ons ¡ and ¡ early ¡ defect ¡ detec:on ¡ capability? ¡ ¡ 14 ¡
Experiment ¡ Research ¡ques-on ¡1 ¡ What ¡is ¡the ¡effect ¡of ¡class ¡test ¡priority ¡on ¡ early ¡ defect ¡detec1on ¡ when ¡varying ¡its ¡importance ¡in ¡ determining ¡the ¡test ¡order? ¡ 15 ¡
Experiment ¡ Research ¡ques-on ¡2 ¡ What ¡is ¡the ¡effect ¡of ¡class ¡test ¡ priority ¡on ¡the ¡number ¡of ¡ server-‑ before-‑client ¡violated ¡constraints ¡ when ¡varying ¡its ¡importance ¡in ¡ determining ¡the ¡test ¡order? ¡ 16 ¡
Experiment ¡ • Cost ¡Func:on ¡Used ¡ ¡ Cpx( ¡X,Y ¡) ¡=1 ¡ ¡ ¡ ϒ( ¡As( ¡X ¡,Y ¡))=1; ¡ϒ( ¡Ag( ¡X,Y ¡))=10; ¡ϒ( ¡Ih( ¡X,Y ¡))=100 ¡ ¡ α ¡=0 : ¡No ¡class ¡priori:za:on ¡ α ¡in ¡{0.1,0.25,0.5,0.75} : ¡Class ¡priori:za:on ¡and ¡SBC ¡viola:ons ¡ α ¡=1 : ¡Only ¡class ¡priori:za:on ¡ 17 ¡ ¡
Experiment ¡ • Analyzed ¡Systems ¡ Version ¡ Classes ¡ NMC ¡ CIS ¡ Defects ¡ Ant ¡1.6.2 ¡ 623 ¡ 92 ¡ 187 ¡ 30 ¡ Ant ¡1.7.1 ¡ 731 ¡ 209 ¡ 440 ¡ 14 ¡ Argouml ¡0.14 ¡ 1187 ¡ 802 ¡ 1005 ¡ 473 ¡ Argouml ¡0.22 ¡ 1353 ¡ 687 ¡ 876 ¡ 359 ¡ Xerces ¡2.0.1 ¡ 466 ¡ 57 ¡ 92 ¡ 51 ¡ Xerces ¡2.6.2 ¡ 396 ¡ 57 ¡ 88 ¡ 28 ¡ 18 ¡
Experiment ¡ (1) ¡ Iden:fy ¡Changes ¡ Releases ¡ R i-‑1 -‑>R i ¡ (source ¡ Data ¡Extrac1on ¡ files) ¡ P1dej ¡Tools ¡(PADL) ¡ (2) ¡ Generate ¡ ¡Impact ¡Set ¡ P1dej ¡Tools ¡(PADL) ¡ Perfect ¡Knowledge ¡ (3b) ¡ (3a) ¡ Build ¡Dependency ¡ Assign ¡ ¡ Graph ¡ Priori:es ¡ Logis1c ¡Regression ¡Model ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(4) ¡ ¡ ¡ ¡ ¡ ¡ ¡M ¡ ¡ ¡ ¡ ¡ ¡E ¡ ¡ ¡ ¡ ¡ ¡T ¡ ¡ ¡ ¡ ¡ ¡E ¡ ¡ ¡ ¡ ¡ ¡R ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Engine ¡ ¡ 19 ¡ ¡ ¡
Recommend
More recommend