VALIDATION DU TEST DU LOGICIEL PAR INJECTION DE

Transcription

VALIDATION DU TEST DU LOGICIEL PAR INJECTION DE
VALIDATION DU TEST DU LOGICIEL PAR INJECTION DE FAUTES :
L’OUTIL SESAME
!
Y#e%!Cr()*et,!P.%c.0e!Th3#en(56F(%%e!et!8309ne!:.e%e0;nc<!
LAAS6CNRS!
B,!.#en)e!5)!C(0(ne0!R(che!
C1EBB!T()0()%e!Ce5eF!G!
!
Résumé
L.!#.0i5.ti(n!5)!te%t!5)!0(Iicie0!5.n%!0e!c.%!5J.pp0ic.ti(n%!critiL)e%!e%t! 5J)ne!imp(rt.nce!c.pit.0e.!Cet!.rtic0e!pr3%ente!)n!
()ti0! L)i,! )ti0i%3! en! c(mp03ment! 5J()ti0%! 5J.n.0;%e! 5e! c()#ert)re! %tr)ct)re00e,! e%t! 5e%tin3! O! .ccr(Ptre! 0.! c(nfi.nce! 5.n%!0e%!
te%t%! .pp0iL)3%! O! )n! 0(Iicie0.! LJ()ti0! pr(c95e! p.r! inRecti(n! 5e! f.)te%! 5.n%! 0e! c(5e! %()rce! 5J)n! pr(Ir.mme! et! permet!
5J.n.0;%er!0J.ptit)5e!5e%!te%t%!O!0e%!r3#30er.!
Cet!.rtic0e!%J.tt.che!5J.S(r5!O!pr3%enter!0.!pr(S03m.tiL)e!5e!0.!me%)re!5e!0Jeffic.cit3!5e%!te%t%!.pp0iL)3%!O!)n!0(Iicie0.!L.!
techniL)e! 5JinRecti(n! 5e! f.)te%! reten)e! 5.n%! )n! (SRectif! 5e! me%)re! c(mp03ment.ire! 5e! 0Jeffic.cit3! 5e%! te%t%! e%t! .0(r%!
pr3%ent3e.!Une!p.rt!imp(rt.nte!5e!0J.rtic0e!e%t!en%)ite!c(n%.cr3e!O!0.!5e%cripti(n!5e!0J()ti0!SESAME.!Enfin,!)ne!pr3%ent.ti(n!
5)!Si0.n!5e%!eFp3riment.ti(n%!men3e%!%)r!2X!pr(Ir.mme%!ciS0e%!i%%)%!5)!mi0ie)!in5)%trie0!c(nc0)t!0J.rtic0e.!
!
!
%tr)ct)re00e! 5e%! te%t%.! Le! p.r.Ir.phe! C! intr(5)it! 0J.n.0;%e!
1. Introduction
5e!m)t.ti(n.!Le!p.r.Ir.phe!G!e%t!c(n%.cr3!O!0.!5e%cripti(n!
!
53t.i003e! 5e! 0J()ti0! 5J.n.0;%e! 5e! m)t.ti(n! L)e! n()%!.#(n%!
Le! c(Yt! 5)! pr(ce%%)%! 5J30imin.ti(n! 5e%! f.)te%! 5e!
53#e0(pp3!e! 0J()ti0! SESAME! Z5e! 0J.nI0.i%! S(ftf.re!
c(ncepti(n! 5.n%! )n! 0(Iicie0! critiL)e! Zn)c03.ire! ci#i0! et!
En#ir(nment!f(r!S(ftf.re!An.0;%i%!S;!M)t.ti(n!Effect%[.!
mi0it.ire,! tr.n%p(rt! .3rien! ()! ferr(#i.ire,! ...[! repr3%ente!
En!I)i%e!5e!c(nc0)%i(n,!0e!p.r.Ir.phe!X!pr3%ente!0e!Si0.n!
%()#ent! p0)%! 5e! XE! \! 5)! c(Yt! I0(S.0! 5)! 53#e0(ppement!
5e%!eFp3riment.ti(n%!men3e%!%)r!5e%!pr(Ir.mme%!i%%)%!5)!
5J)n! 0(Iicie0.! M.0Ir3! 0J3merIence! 5e! techniL)e%! 5e!
%ecte)r!in5)%trie0.!
pre)#e%! f(rme00e%! 5e! pr(Ir.mme! p()r! 0.! #3rific.ti(n!
!
%t.tiL)e! Z%.n%! eF3c)ti(n! 5)! pr(Ir.mme[,! 0e! test! re%te! 0.!
techniL)e!0.!p0)%!c()r.mment!)ti0i%3e!p()r!0.!#3rific.ti(n!
2. Validation
5e! pr(Ir.mme%.! I0! c(n%i%te! O! eF3c)ter! 0e! pr(Ir.mme! %)r!
du test du logiciel
)n!Zpetit[!%()%6en%emS0e!5e!%(n!5(m.ine!5Jentr3e,!.ppe03!
!
jeu de test.! L.! c(nfi.nce! .pp(rt3e! p.r! 0J3t.pe! 5e! te%t!
2.1. Définitions préliminaires
53pen5!5e!0.!pertinence!5e%!entr3e%!%30ecti(nn3e%!#i%6O6#i%!
Afin! 5e! mie)F! pr3ci%er! 0e%! pr(S09me%! renc(ntr3%! p()r!
5e%! f.)te%! 5e! c(ncepti(n! L)i! p()rr.ient! %)S%i%ter! 5.n%! 0e!
3#.0)er! 0.! pertinence! 5e%! Re)F! 5e! te%t! O! r3#30er! 0e%! f.)te%!
0(Iicie0! Zf.)te%! r3%i5)e00e%[.! ^.n%! 0e%! ()ti0%! 0(Iicie0%!
r3%i5)e00e%! 5.n%! )n! pr(Ir.mme,! i0! n()%! p.r.Pt! imp(rt.nt!
.ct)e00ement! 5i%p(niS0e%! %)r! 0e! m.rch3,! 0Jeffic.cit3! 5e%!
5Jintr(5)ire! 0e%! c(ncept%! 5e! f.)te,! 5Jerre)r! et! 5e!
Re)F! 5e! te%t! e%t! e%%entie00ement! .n.0;%3e! p.r! 5e%! me%)re%!
53f.i00.nce.! N()%! 5(nn(n%! 5J.S(r5! 0.! 53finiti(n! I3n3r.0e!
5e!c()#ert)re!.)!ni#e.)!5)!Ir.phe!5e!c(ntr_0e!()!5)!f0(t!
5e! ce%! c(ncept%! 5.n%! 0e! c.5re! 5e! 0.! %Yret3! 5e!
5e! 5(nn3e%! 5)! pr(Ir.mme.! Ce! t;pe! 5e! me%)re! 5e!
f(ncti(nnement! 5e%! %;%t9me%! inf(rm.tiL)e%! c2d!a! ce%!
c()#ert)re! e%t! %()#ent! R)I3! in%)ffi%.nt! p()r! I.r.ntir! L)e!
c(ncept%!%(nt!en%)ite!53c0in3%!5.n%!0e!c.5re!5)!0(Iicie0.!
0e%! Re)F! 5e! te%t! %(nt! .pte%! O! r3#30er! 0e%! f.)te%! 5e!
!
c(ncepti(n.! En! effet,! p()r! r3#30er! )ne! f.)te,! i0! ne! %)ffit!
Une! défaillance! 5)! %;%t9me! %)r#ient! 0(r%L)e! 0e! %er#ice!
I3n3r.0ement! p.%! 5JeF3c)ter! 0.! p.rtie! 5)! pr(Ir.mme! (`!
530i#r3! 53#ie! 5e! 0J.cc(mp0i%%ement! 5e! 0.! f(ncti(n! 5)!
r3%i5e! 0.! f.)te! a! 0.! mi%e! en! 3#i5ence! 5J)ne! f.)te! pe)t!
%;%t9me,! cJe%t6O65ire! 5e! ce! O! L)(i! 0e! %;%t9me! e%t! 5e%tin3.!
n3ce%%iter!5e%!c(n5iti(n%!5J.cti#.ti(n!p.rtic)0i9re%.!
Une! erreur! e%t! 0.! p.rtie! 5e! 0J3t.t! 5)! %;%t9me! L)i! e%t!
!
%)%ceptiS0e! 5Jentr.Pner! )ne! 53f.i00.nce.! L.! c.)%e! .5R)I3e!
Une! #(ie! p(%%iS0e! p()r! .ccr(Ptre! 0.! c(nfi.nce! 5.n%!
()!%)pp(%3e!5J)ne!erre)r!e%t!)ne!faute.!
0Jeffic.cit3!5e%!Re)F!5e!te%t!e%t!0J)ti0i%.ti(n!5J)ne!m3th(5e!
!
eFp3riment.0e! S.%3e! %)r! 0JinRecti(n! 5e! f.)te%.! Si! 0e%! te%t%!
Une! faute! pe)t! .pp.r.Ptre! O! nJimp(rte! L)e00e! ph.%e! 5)!
.pp0iL)3%! .)! pr(Ir.mme! %(nt! c.p.S0e%! 5e! r3#30er! 0e%!
53#e0(ppement! 5J)n! pr(Ir.mme! Zph.%e! 5e! %p3cific.ti(n,!
f.)te%! inRect3e%,! i0%! pe)#ent! btre! R)I3%! pertinent%! p()r!
5e! c(ncepti(n,! 5e! r3.0i%.ti(n,! etc.[! ()! pen5.nt! 0.!
r3#30er!5e%!f.)te%!r3e00e%!L)i!.)r.ient!p)!%)S%i%ter!5.n%!0e!
m.inten.nce.!Le%!f.)te%!5e!S.%!ni#e.)!pe)#ent!%e!tr.5)ire!
pr(Ir.mme.! Cette! .ppr(che! .! 3t3! 53finie! initi.0ement! p.r!
5e! 5i#er%e%! m.ni9re%! .)! ni#e.)! 5)! c(5e!e! p.r! eFemp0e,!
^eMi00(!c1d %()%!0e!n(m!5Janalyse de mutation.!
in%tr)cti(nZ%[!()!5(nn3eZ%[!inc(rrecteZ%[,!m.nL).nteZ%[!()!
!
%)pp03ment.ireZ%[.!Une!f.)te!%er.!5ite!activée!%i!0.!p.rtie!
L.! %)ite! 5e! cet! .rtic0e! c(mp(rte! L).tre! p.r.Ir.phe%.! Le!
5)! c(5e! L)Je00e! .ffecte! e%t! eF3c)t3e! et! L)J)ne! erre)r e%t!
p.r.Ir.phe! 2! 53crit! 0.! pr(S03m.tiL)e! 5e! 0.! #.0i5.ti(n! 5)!
cr33e.!
te%t! 5)! 0(Iicie0! et! intr(5)it! 0J.n.0;%e! 5e! m)t.ti(n! en! t.nt!
!
L)J.ppr(che! c(mp03ment.ire! .)F! .n.0;%e%! 5e! c()#ert)re!
Une! erreur! c(rre%p(n5! O! )n! 3t.t! interne! err(n3! 5)!
pr(Ir.mme.! LJerre)r! e%t! 5ite! erreur initiale! 0(r%L)Je00e!
r3%)0te! 5e! 0J.cti#.ti(n! 5J)ne! f.)te.! Cette! erre)r! initi.0e!
pe)t!p.r!0.!%)ite!cr3er!5e!n()#e00e%!erre)r%!p.r!pr(p.I.ti(n!
en!.ffect.nt!0e!f0(t!5e%!5(nn3e%!()get!0e!f0(t!5e!c(ntr_0e!5)!
pr(Ir.mme.! S)ite! O! 5e%! ph3n(m9ne%! 5e! m.%L).Ie! )ne!
erre)r!pe)t!5i%p.r.Ptre.!!
!
Une! défaillance! %)r#ient! 0(r%L)e,! p.r! pr(p.I.ti(n,! )ne!
erre)r! .ffecte! 0e! %er#ice! 530i#r3! p.r! 0e! 0(Iicie0,! p.r!
eFemp0e,! 0(r%L)J)ne! erre)r! .ffecte! .)! m(in%! )n! 5e%!
r3%)0t.t%!f()rni%!p.r!0e!pr(Ir.mme.!CJe%t!en!i5entifi.nt!)ne!
53f.i00.nce!p.r!0.!c(mp.r.i%(n!entre!0e%!r3%)0t.t%!f()rni%!et!
ce)F!.tten5)%!L)e!0J(n!c(nc0)r.!O!0.!pr3%ence!5J)ne!f.)te!
5.n%!0e!pr(Ir.mme.!
!
En! r3%)m3,! p()r! p()#(ir! r3#30er! )ne! f.)te,! 0e%! 5e)F!
c(n5iti(n%! %)i#.nte%! 5(i#ent! btre! remp0ie%! 0(r%! 5e!
0JeF3c)ti(n!5J)n!Re)!5e!te%t!e!
h! 0e!Re)!5e!te%t!5(it!5J.S(r5!btre!c.p.S0e!5J.cti#er!0.!f.)te!
Z3t.pe!5e!c(mm.n5.Si0it3[,!
h! 0e! Re)! 5e! te%t! 5(it! en%)ite! btre! c.p.S0e! 5e! pr(p.Ier!
0Jerre)r!initi.0e! R)%L)JO!5e%!5(nn3e%!(S%er#3e%! en!%(rtie!
Z3t.pe!5J(S%er#.Si0it3[.!
!
2.2. Analyse de la couverture des tests
^.n%! 0e! c.5re! 5e! 53#e0(ppement! 5e! 0(Iicie0%! critiL)e%,!
5e)F!t;pe%!5J.n.0;%e!5e!c()#ert)re!5e%!te%t%!pe)#ent!btre!
eFiI3%!cCd!e!!
1[! 0Janalyse (e la cou,erture (es s/0cifications! 5)!
0(Iicie0! L)i! .! p()r! (SRectif! 5e! #3rifier! 0.! c(mp03t)5e!
5e%! te%t%! f(ncti(nne0%! p.r! r.pp(rt! .)F! 303ment%! 5e! 0.!
%p3cific.ti(n!5)!0(Iicie0!a!
2[! 0Janalyse (e la cou,erture structurelle L)i! .! p()r!
(SRectif!5e!53terminer!0.!c(mp03t)5e!5e%!te%t%!#i%6O6#i%!
5e%!p.rtie%!5)!c(5e!eF3c)t.S0e%.!
!
Le%! crit9re%! )ti0i%3%! p()r! 0.! c()#ert)re! %tr)ct)re00e! %(nt!
S.%3%!%)r!0e!Ir.phe!5e!c(ntr_0e!()!0e!f0(t!5e!5(nn3e%!cGd.!A!
titre!5JeFemp0e!5e!crit9re%!%tr)ct)re0%,!n()%!p()#(n%!citer!
0e%! crit9re%! %)i#.nt%!e! it()te%! 0e%! in%tr)cti(n%j,! it()te%! 0e%!
Sr.nche%j,!it()te%!0e%!c(n5iti(n%g53ci%i(n%j,!etc.!!
!
^e! n(mSre)F! ()ti0%! c(mmerci.)F! %)pp(rtent! ce%! t;pe%!
5J.n.0;%e! 5e! c()#ert)re! %tr)ct)re00e.! I0%! permettent! 5e!
me%)rer,!p()r!)n!pr(Ir.mme,!5.n%!L)e00e%!pr(p(rti(n%!)n!
Re)! 5e! te%t! %en%iSi0i%e! 0e%! 5iff3rent%! 303ment%! %tr)ct)re0%!
.%%(ci3%!O!)n!crit9re!5(nn3.!On!3t.S0it!.0(r%!)ne!me%)re!5e!
c()#ert)re!%tr)ct)re00e!e! p.r! eFemp0e,! lX!\! 5e%! Sr.nche%!
(nt!3t3!te%t3e%.!
!
^e! te00e%! .n.0;%e%! 5e! c()#ert)re! %tr)ct)re00e! %(nt!
in5i%pen%.S0e%!a! en! effet,! %i! )n! 303ment! %tr)ct)re0! 5J)n!
pr(Ir.mme! nJe%t! p.%! c()#ert! p.r! 0e! Re)! 5e! te%t,! i0! e%t!
imp(%%iS0e! 5J.#(ir! )ne! inf(rm.ti(n! %)r! 0.! L).0it3! 5e! 0.!
f(ncti(n! L)e! cet! 303ment! %tr)ct)re0! e%t! cen%3! remp0ir.!!
T()tef(i%,! ce! t;pe! 5J.n.0;%e! nJe%t! p.%! %)ffi%.nt! p()r!
3#.0)er! 0.! pertinence! 5J)n! Re)! 5e! te%t! O! r3#30er!
5J3#ent)e00e%! f.)te%! r3%i5)e00e%.! En! effet,! mbme! %i! )n!
303ment!%tr)ct)re0!L)i!c(ntient!)ne!f.)te!e%t!c()#ert!p.r!0e!
Re)!5e!te%t,!i0!nJ;!.!.)c)ne!in5ic.ti(n!%)r!0e!f.it!L)e!0e!Re)!
5e!te%t!.it!effecti#ement!.cti#3!0.!f.)te!en!pr(5)i%.nt!)ne!
erre)r!initi.0e!Zc(mm.n5.Si0it3[,!()!L)e!0Jerre)r!in5)ite!.it!
p)! btre! pr(p.I3e! R)%L)JO! 5e%! %(rtie%! 5)! pr(Ir.mme!
Z(S%er#.Si0it3[.!!!
!
Une! f.m(n! 5J.)Imenter! 0.! c(nfi.nce! L)e! 0J(n! pe)t! .#(ir!
5.n%! 5e%! Re)F! 5e! te%t! e%t! 5J)ti0i%er! )ne! techniL)e!
5JinRecti(n!5e!f.)te%!permett.nt!5e!me%)rer!0J.ptit)5e!5e%!
Re)F!5e!te%t!O!r3#30er!0e%!f.)te%!inRect3e%.!Cette!techniL)e,!
c(nn)e! %()%! 0e! n(m! 5J.n.0;%e! 5e! m)t.ti(n,! e%t! pr3%ent3e!
5.n%!0e!p.r.Ir.phe!%)i#.nt.!
!
3. Présentation de l’analyse
de mutation
!
3.1. Principe!
^3finie!initi.0ement!p.r!^eMi00(!c1d!0J.n.0;%e!5e!m)t.ti(n!
c(n%i%te,! 5.n%! )n! premier! temp%,! O! cr3er,! O! p.rtir! 5J)n!
pr(Ir.mme! ciS0e! P,! )n! en%emS0e! 5e! pr(Ir.mme%! Pi! n!
.ppe03%!mutants!n!L)i!5iff9rent!5e!P!p.r!)ne!et!)ne!%e)0e!
m(5ific.ti(n! 303ment.ire,! %;nt.FiL)ement! c(rrecte,!
intr(5)ite!5.n%!0e!c(5e!%()rce!5e!P.!Cette!m(5ific.ti(n!e%t!
.ppe03e! mutation.! Le%! m)t.ti(n%! %(nt! 53finie%! p.r! 5e%!
(p3r.te)r%! 5e! m)t.ti(n! L)i! permettent! 5e! 53crire! 0.!
m(5ific.ti(n! %;nt.FiL)e! .pp(rt3e! .)! pr(Ir.mme! ciS0e.!
P0)%ie)r%!c.t3I(rie%!5J(p3r.te)r%!5e!m)t.ti(n!pe)#ent!btre!
5i%tinI)3%!e! remp0.cement! 5J)n! (p3r.te)r! p.r! )n! .)tre!
(p3r.te)r,! m(5ific.ti(n! 5J)ne! #.0e)r! n)m3riL)e,!
remp0.cement! 5J)n! %;mS(0e! Zn(m! %;mS(0iL)e! 5J)ne!
c(n%t.nte,! n(m! 5J)ne! #.ri.S0e,! 5J)n! t.S0e.),!...[! p.r! )n!
.)tre! %;mS(0e,! etc.! A! titre! 5JeFemp0e,! )ne! 0i%te! 5e%! 22!
(p3r.te)r%! 5e! m)t.ti(n! p()r! 0e! 0.nI.Ie! F(rtr.n! .! 3t3!
pr(p(%3e! 5.n%! cXd.! Le%! (p3r.te)r%! 5e! m)t.ti(n! %(nt!
.pp0iL)3%! 5e! m.ni9re! eFh.)%ti#e! O! 0Jen%emS0e! 5e%!
303ment%!5e!P!pri%!)n!O!)n!p()r!pr(5)ire!)n!en%emS0e!Z()!
S.%e[!5e!m)t.nt%!5)!pr(Ir.mme!ciS0e.!
!
^.n%! )n! 5e)Fi9me! temp%,! p.rt.nt! 5e! 0Jen%emS0e! 5e!
m)t.nt%!5)!pr(Ir.mme!P!et!5J)n!Re)!5e!te%t!T,!0J.n.0;%e!5e!
m)t.ti(n! c(n%i%te! O! 3#.0)er! 0.! pr(p(rti(n! 5e%! m)t.ti(n%!
r3#303e%! p.r! T.! Une! m)t.ti(n! mi! e%t! r3#303e! p.r! T! %i! 0e!
m)t.nt! c(rre%p(n5.nt! Pi! f()rnit! .)! m(in%! )ne! #.0e)r! 5e!
%(rtie!5iff3rente!5e!ce00e!pr(5)ite!p.r!0e!pr(Ir.mme!ciS0e!
P!en!r3p(n%e!.)!Re)!T!e!0e!m)t.nt!Pi!e%t!.0(r%!5it!tué!p.r!T.!
Si!Pi!f()rnit!0e%!mbme%!%(rtie%!L)e!0e!pr(Ir.mme!P!0(r%!5e!
0JeF3c)ti(n! 5e! T,! Pi! e%t! 5it! vivant. ! ^e)F! c.%! %(nt! .0(r%!
p(%%iS0e%!e!1[!%(it!i0!eFi%te!)ne!()!p0)%ie)r%!entr3e%!5e!te%t!
L)i! p()rr.ient! r3#30er! mi,! m.i%! .)c)ne! 5Jentre! e00e%!nJe%t!
c(nten)e!5.n%!T!a!2[!%(it!i0!nJeFi%te!.)c)ne!entr3e!5e!te%t!
p()r!0.L)e00e!Pi!f()rnit!)n!r3%)0t.t!5iff3rent!5e!ce0)i!5e!P.!
^.n%!0e!premier!c.%,!i0!%J.Iit!5J)ne!f.iS0e%%e!5)!Re)!5e!te%t!
T!a! 5.n%! 0e! %ec(n5! c.%,! .)c)n! Re)! 5e! te%t! ne! pe)t! t)er! Pi!!
L)i!pr(5)it!t()R()r%!5e%!%(rtie%!i5entiL)e%!O!ce00e%!5e!P,!en!
53pit!5e!0.!m)t.ti(n!intr(5)ite!e!i0!ne!%J.Iit!5(nc!p.%!5J)ne!
f.iS0e%%e!5e!T,!0e!m)t.nt!Pi!3t.nt!3L)i#.0ent!.)!pr(Ir.mme!
ciS0e! P.! Un! eFemp0e! 3#i5ent! 5e! m)t.ti(n! en! 0.nI.Ie! C,!
pr(5)i%.nt! )n! m)t.nt! 3L)i#.0ent! .)! pr(Ir.mme! ciS0e,! e%t!
0e! remp0.cement! 5e! 0J(p3r.te)r! 0(IiL)e! o!J! p.r! opo! 5.n%!
)ne! eFpre%%i(n! S((03enne! ibool! !! 0j! (`! bool! 53%iIne!
)ne!#.ri.S0e!S((03enne.!!
!
L.! me%)re! permett.nt! 5e!c.r.ct3ri%er!0Jeffic.cit3!5J)n!Re)!
5e!te%t!O!r3#30er!5e%!f.)te%!5e!t;pe!m)t.ti(n!e%t!0e!score de
mutation.!P()r!)n!pr(Ir.mme!P!et!)n!Re)!T,!i0!c(rre%p(n5!
O! 0.! pr(p(rti(n! 5e! m)t.nt%! n(n! 3L)i#.0ent%! O! P! L)i! %(nt!
t)3%!p.r!T.!CJe%t!5(nc!)n!n(mSre!c(mpri%!entre!E!et!1!e!)n!
%c(re!pr(che!5e!0J)nit3!%iInifie!L)e!T!%Je%t!m(ntr3!effic.ce!
p()r!r3#30er!0e%!f.)te%!intr(5)ite%!5.n%!P.!
!
L.! repr3%ent.ti#it3! 5e%! m)t.ti(n%! #i%6O6#i%! 5e%! f.)te%!
r3e00e%! 5e! 53#e0(ppement! e%t! tr9%! c(ntr(#er%3e,! %i! Sien!
L)Jen! pr.tiL)e! 0J.n.0;%e! 5e! m)t.ti(n! e%t! p0)%! )ti0i%3e!
c(mme! S.%e! 5e! c(mp.r.i%(n! eFp3riment.0e! entre!
5iff3rente%! m3th(5e%! 5e! te%t,! L)e! c(mme! S.%e! 5e!
0J3#.0).ti(n!5e!0.!L).0it3!5e%!Re)F!5e!te%t.!
!
^e%!tr.#.)F!r3cent%,!O!0.!f(i%!th3(riL)e%!et!eFp3riment.)F!
cq,! Bd,! (nt! 3t3! men3%! p()r! c.r.ct3ri%er! 0.! repr3%ent.ti#it3!
5e%!m)t.ti(n%.!I0%!(nt!c(n%i%t3!O!.n.0;%er!et!O!c(mp.rer!0e%!
c(mp(rtement%!err(n3%!I3n3r3%,!5J)ne!p.rt,!p.r!5e%!f.)te%!
r3e00e%!r3%)0t.nt!5)!53#e0(ppement,!et!5J.)tre!p.rt!p.r!5e%!
f.)te%! .rtificie00e%! 5e! t;pe! m)t.ti(n.! Ce%! tr.#.)F! (nt!
permi%!5J.S()tir!.)F!c(nc0)%i(n%!%)i#.nte%!e!
h! 0e%! c(mp(rtement%! err(n3%! in5)it%! p.r! 0e%! m)t.ti(n%!
pr3%entent! 5e%! %imi0it)5e%! f(rte%! .#ec! ce)F! L)i! %(nt!
in5)it%! p.r! 5e%! f.)te%! r3e00e%! I3n3r.0ement! p0)%!
c(mp0eFe%! ZcJe%t6O65ire! 5(nt! 0.! c(rrecti(n! imp0iL)e!
p0)%ie)r%! in%tr)cti(n%! 5)! c(5e! %()rce! 3#ent)e00ement!
r3p.rtie%!%)r!p0)%ie)r%!S0(c%!5Jin%tr)cti(n%[!a!
h! 0e%! m)t.ti(n%! pe)#ent! btre! .)%%i! 5iffici0e%! O! r3#30er! p.r!
5e%!Re)F!5e!te%t!L)e!5e%!f.)te%!r3e00e%!a!
h! 0e%! c(mp(rtement%! err(n3%! I3n3r3%! p.r! 0e%! m)t.ti(n%!
%(nt! %)ffi%.mment! #.ri3%! p()r! btre! repr3%ent.tif%! 5J)n!
S(n! n(mSre! 5e! c(mp(rtement%! err(n3%! in5)it%! p.r! 5e%!
f.)te%!r3e00e%.!
!
En! c(nc0)%i(n,! ce%! r3%)0t.t%! (nt! permi%! 5e! r3h.Si0iter!
0J.n.0;%e! 5e! m)t.ti(n! en!t.nt!L)e!techniL)e!5e!#.0i5.ti(n!
5e%! te%t%! 5)! 0(Iicie0!a! i0%!()#rent!0.!#(ie!O!0J)ti0i%.ti(n!5e!
cette!techniL)e!en!c(mp03ment!5e%!.n.0;%e%!5e!c()#ert)re!
%tr)ct)re00e!men3e%!%)r!)ne!.pp0ic.ti(n!critiL)e.!!
!
3.2. Mise en œuvre!
I0! eFi%te! pe)! 5J()ti0%! p()r! 0J.n.0;%e! 5e! m)t.ti(n,! 0e%!p0)%!
c(nn)%! 3t.nt! M(thr.! et! PiSCES.! 8i%t(riL)ement,! M(thr.!
crd! e%t! 0e! premier! ()ti0! 5J.n.0;%e! 5e! m)t.ti(n! L)i! .it! 3t3!
5i%p(niS0e.!I0!ciS0e!0e%!pr(Ir.mme%!3crit%!en!F(rtr.n!et!e%t!
.ct)e00ement! 5i%triS)3! 5e! m.ni9re! p)S0iL)e! %)r! Internet.!
P0)%! r3cemment,! )n! %ec(n5! ()ti0! 5J.n.0;%e! 5e! m)t.ti(n!.!
3t3!pr(p(%3!p()r!0e!0.nI.Ie!C.!I0!%J.Iit!5e!0J()ti0!53n(mm3!
iPiSCES!M)t.ti(n!Te%tinI!T((0j!cld.!
!
I0!f.)t!n(ter!L)e!0J)ti0i%.ti(n!5e!0J.n.0;%e!5e!m)t.ti(n!5.n%!
0e! %ecte)r! in5)%trie0! e%t! frein3e! p.r! 5e)F! pr(S09me%! 5e!
mi%e! en! s)#re!e! 0e! temp%! 5JeF3c)ti(n! 5e%! m)t.nt%! et!
0Ji5entific.ti(n!5e%!m)t.nt%!3L)i#.0ent%.!
!
C(mpte! ten)! 5)! n(mSre! 5J(p3r.te)r%! 5e! m)t.ti(n!
pr(p(%3%,! 0e)r! .pp0ic.ti(n! eFh.)%ti#e! O! 0Jen%emS0e! 5)!
pr(Ir.mme!ciS0e!pe)t!c(n5)ire!O!)n!n(mSre!imp(rt.nt!5e!
m)t.nt%,! ceci! mbme! p()r! 5e%! pr(Ir.mme%! 5e! t.i00e!
m(5e%te.!Le!temp%!n3ce%%.ire!O!0JeF3c)ti(n!5e!ch.c)n!5e%!
m)t.nt%! .#ec! 0e%! Re)F! 5e! te%t! O! #.0i5er! pe)t! .0(r%! btre!
in.ccept.S0e! 5.n%! )n! c(nteFte! in5)%trie0.! Une! .ppr(che!
pr(mette)%e! p()r! 0.! r35)cti(n! 5)! temp%! n3ce%%.ire! O!
0J.n.0;%e! 5e! m)t.ti(n! e%t! 0J.ppr(che! 5ite! 5e! m)t.ti(n!
%30ecti#e.!Cette!.ppr(che!.!3t3!53#e0(pp3e!et!eFp3riment3e!
p.r!M.th)r!et!Off)tt!c1E,!11d!%)r!lq!pr(Ir.mme%!F(rtr.n!
en! )ti0i%.nt! 0J()ti0! M(thr..! Le)r%! 3t)5e%! (nt! c(n%i%t3! O!
53finir! )ne! %30ecti(n! 5e%! (p3r.te)r%! 5e! m)t.ti(n! L)i! %(it!
repr3%ent.ti#e! 5e! 0Jen%emS0e! 5e%! (p3r.te)r%! 5i%p(niS0e%!
5.n%! M(thr..! Le%! r3%)0t.t%! (Sten)%! en! )ti0i%.nt,! %(it!
0Jen%emS0e! 5e%! 22! (p3r.te)r%! 5i%p(niS0e%! 5.n%! M(thr.,!
%(it!)n!%()%6en%emS0e!5e!ce%!(p3r.te)r%,!(nt!3t3!c(mp.r3%.!
^.n%!c11d,!0e%!.)te)r%!c(nc0)ent!L)e,!p.rmi!22!(p3r.te)r%!
5e!m)t.ti(n,!%e)0%!X!%(nt!%)ffi%.nt%!p()r!mettre!en!s)#re!
effic.cement!0J.n.0;%e!5e!m)t.ti(n.!!
LJi5entific.ti(n! 5e%! m)t.nt%! 3L)i#.0ent%! .)! pr(Ir.mme!
ciS0e! e%t! n3ce%%.ire! O! 0.! 53termin.ti(n! 5)! %c(re! 5e!
m)t.ti(n!a!en!effet,!i0%!5(i#ent!btre!retir3%!5e!0.!p(p)0.ti(n!
5e%! m)t.nt%! Zcf.! t.! C.1[.! ^.n%! c12,! 1Cd,! tr(i%! c.t3I(rie%!
princip.0e%!5J3L)i#.0ence!%(nt!pr3%ent3e%!e!
h! 3L)i#.0ence! f(ncti(nne00e!e! 0.! m)t.ti(n! intr(5)ite! ne!
I3n9re! R.m.i%! 5Jerre)r! initi.0e! et! 0e! c(mp(rtement! 5)!
pr(Ir.mme!nJe%t!p.%!.ffect3.!
h! 3L)i#.0ence! 5)e! O! 0.! %tr)ct)re! 5)! pr(Ir.mme!e! 0.!
m)t.ti(n!intr(5)ite!5.n%!0e!pr(Ir.mme!pe)t!I3n3rer!5e%!
erre)r%!L)i!%(nt!%;%t3m.tiL)ement!.nn)03e%!()!m.%L)3e%!
en!c()r%!5JeF3c)ti(n!L)e0!L)e!%(it!0e!chemin!eF3c)t3,!et!
ne!pe)#ent!5(nc!R.m.i%!c(n5)ire!O!53f.i00.nce.!
h! 3L)i#.0ence! 5)e! O! 0Jen#ir(nnement! 5JeF3c)ti(n!e! 0.!
m)t.ti(n! ne! pe)t! p.%! btre! r3#303e! 5.n%! 0Jen#ir(nnement!
5JeF3c)ti(n! )ti0i%3! m.i%! e00e! p()rr.it! c(n5)ire! O! )ne!
53f.i00.nce! 5.n%! )n! .)tre! en#ir(nnement! Zp.r! eFemp0e,!
%)ppre%%i(n! 5J)ne! initi.0i%.ti(n! O! E! 5.n%! )n!
en#ir(nnement! L)i! remet! %;%t3m.tiL)ement! O! E!
0Jen%emS0e!5e!0.!m3m(ire!.#.nt!ch.L)e!eF3c)ti(n[.!
LJi5entific.ti(n! 5e%! m)t.nt%! 3L)i#.0ent%! e%t! )ne! 3t.pe!
e%%entie00ement!m.n)e00e!a!mbme!%i!5e%!.i5e%!pe)#ent!btre!
en#i%.I3e%,! e00e! ne! p()rr.! R.m.i%! btre! t(t.0ement!
.)t(m.ti%3e.! ^.n%! c1Gd,! 0e%! .)te)r%! pr(p(%ent! 5e%!
.0I(rithme%!p()r!0.!53termin.ti(n!.)t(m.tiL)e!5J)n!%()%6
en%emS0e! 5e! m)t.nt%! 3L)i#.0ent%!a! i0%! %(nt! S.%3%! %)r! 5e%!
.n.0;%e%!%t.tiL)e%!5)!f0(t!5e!5(nn3e%!et!%)r!%iF!techniL)e%!
5J(ptimi%.ti(n!5)!c(mpi0.te)r!.%%(ci3!.)!0.nI.Ie!ciS0e.!
!
4. Description de l’outil SESAME
!
^.n%!0e!c.5re!5e%!recherche%!men3e%!.)!LAAS6CNRS!%)r!
0e!te%t!5)!0(Iicie0,!n()%!.#(n%!53ci53!5J)ti0i%er!0J.n.0;%e!5e!
m)t.ti(n!p()r!#.0i5er!0e%!.ppr(che%!5e!te%t!pr(p(%3e%.!Le!
%e)0! ()ti0! 5J.n.0;%e! 5e! m)t.ti(n! 5i%p(niS0e! 3t.it! .0(r%!
M(thr.! Zcf.!t!C.2[! et! n(%! premi9re%! eFp3riment.ti(n%!
c(ncern.ient! 5e%! pr(Ir.mme%! 3crit%! en! 0.nI.Ie! C.! N()%!
.#(n%! 5(nc! c(nm)! et! 53#e0(pp3! n(tre! pr(pre! ()ti0!
5J.n.0;%e! 5e! m)t.ti(n!a! i0! %J.Iit! 5e! 0J()ti0! SESAME! Z5e!
0J.nI0.i%! S(ftf.re! En#ir(nment! f(r!S(ftf.re!An.0;%i%!S;!
M)t.ti(n!Effect%[.!!
!
^.n%! 0.! %)ite! 5e! cette! p.rtie,! n()%! pr3%ent(n%! 5J.S(r5!
%tr)ct)re!I3n3r.0e!5e!0J()ti0.!N()%!en!53t.i00(n%!en%)ite!0e%!
princip.)F!m(5)0e%.!
4.1. Présentation générale de l’outil
SESAME! %e! 5i%tinI)e! 5e%! .)tre%! ()ti0%! 5J.n.0;%e! 5e!
m)t.ti(n!p.r!0e!f.it!L)Ji0!e%t!m)0ti60.nI.Ie%.!C(ntr.irement!
.)F! .)tre%! ()ti0%! L)i! (nt! 3t3! 53#e0(pp3%! p()r! )n! 0.nI.Ie!
5(nn3,! i0! pe)t! btre! )ti0i%3! p()r! p0)%ie)r%! 0.nI.Ie%.! Ce0.!
tient! .)! f.it! L)e,! 59%! %(n! premier! pr(t(t;pe,! 0e! n(;.)! 5e!
SESAME! .! 3t3! 53#e0(pp3! 5e! m.ni9re! t(t.0ement!
in53pen5.nte!5)!0.nI.Ie!)ti0i%3!.)!ni#e.)!5e%!pr(Ir.mme%!
ciS0e%! 5e%! eFp3riment.ti(n%.! Ain%i,! %i! 0e%! premi9re%!
eFp3riment.ti(n%! c(ncern.ient! 5e%! pr(Ir.mme%! 3crit%! en!
0.nI.Ie! C! c12,! 1C,! 1X,! 1qd,! 0e%! eFp3riment.ti(n%! (nt! p)!
p(rter! p.r! 0.! %)ite! %)r! 5e%! .pp0ic.ti(n%! 53#e0(pp3e%! en!
PASCAL,! A%%emS0e)r! ()! .#ec! 0e! 0.nI.Ie! %;nchr(ne!
LUSTRE!c1B,!1r,!1ld.!
!
L.! fiI)re! 1! pr3%ente! 5e! m.ni9re! %;nth3tiL)e! 0.! %tr)ct)re!
I3n3r.0e!5e!SESAME.!
5J)n!%e)0!fichier!L)i!c(ntient!0Jen%emS0e!5e%!m)t.nt%!%()%!
f(rme! c(mp.cte! e! %e)0e! 0.! 0iIne! 5)! c(5e! %()rce! L)i!
5i%tinI)e!0e!m)t.nt!5)!pr(Ir.mme!ciS0e!e%t!%t(c<3e!5.n%!0e!
fichier! a! ceci! permet! 5e! minimi%er! 0Je%p.ce! 5i%L)e!
n3ce%%.ire!p()r!%t(c<er!)n!Ir.n5!n(mSre!5e!m)t.nt%.!
!
Tr(i%! t;pe%! 5J(p3r.te)r%! 5e! m)t.ti(n! %(nt! pr3#)%! 5.n%!
SESAME!e! .0t3r.ti(n! 5e%! #.0e)r%! n)m3riL)e%,!
remp0.cement! 5J)n! (p3r.te)r! 5)! 0.nI.Ie! p.r! )n! .)tre!
(p3r.te)r,! remp0.cement! 5J)n! %;mS(0e! Zn(m! 5e! #.ri.S0e,!
5e! f(ncti(n,! ...[! )ti0i%3! 5.n%! )n! pr(Ir.mme! p.r! )n! .)tre!
%;mS(0e.!!
!
^.n%! ch.L)e! c.%,! 0.! m)t.ti(n! c(rre%p(n5! O! )ne! %e)0e!
m(5ific.ti(n! 303ment.ire! 5)! c(5e! %()rce.! Le%! m)t.ti(n%!
%(nt! intr(5)ite%! p.r! 5e! %imp0e%! (p3r.ti(n%! 5e! recherche,!
5Jin%erti(n! ()! 5e! rep0.cement! 5e! teFte! effect)3e%! %)r! 0e!
c(5e! %()rce.! Ce%! (p3r.ti(n%! 3t.nt!effect)3e%!%.n%!.n.0;%e!
%;nt.FiL)e!pr3.0.S0e,!(n!ne!pe)t!p.%!I.r.ntir!L)e!t()te%!0e%!
m)t.ti(n%!%(ient!%;nt.FiL)ement!c(rrecte%.!P()r!#.0i5er!0.!
m)t.ti(n,!0e!m(5)0e!5e!I3n3r.ti(n!5e!m)t.nt%!f.it!.ppe0!.)!
c(mpi0.te)r!5)!0.nI.Ie!p()r!te%ter!%i!0.!m)t.ti(n!c(n5)it!O!
)n! m)t.nt! c(mpi0.S0e.! Si! 0e! m)t.nt! e%t! c(mpi03! .#ec!
%)cc9%! et! %i! 0e! c(5e! (SRet! 5iff9re! 5e! ce0)i! 5)! pr(Ir.mme!
ciS0e,!i0!#ient!enrichir!0.!S.%e!5e!m)t.nt%.!
!
Tables de mutation
Bases de mutants
Génération des
mutants
Programmes source
Exécution des
mutants
Résultats
Jeux de test
FiI)re!1!6!Str)ct)re!I3n3r.0e!5e!SESAME
!
!
Cette! fiI)re! f.it! .pp.r.Ptre! 5e)F! m(5)0e%! princip.)F!
ZI3n3r.ti(n! 5e! m)t.nt%! et! eF3c)ti(n! 5e! m)t.nt%[! L)i! %(nt!
5e%tin3%,!5J)ne!p.rt,!O!0.!ph.%e!5e!pr(5)cti(n!5e!S.%e%!5e!
m)t.nt%!.%%(ci3e%!O!)n!pr(Ir.mme!ciS0e,!et!5J.)tre!p.rt,!O!
0.! ph.%e! 5J3#.0).ti(n! 5e%! Re)F! 5e! te%t.! Ce%! m(5)0e%!
I3n3riL)e%! pe)#ent! btre! .5.pt3%! p()r! 5iff3rent%! t;pe%!
5JeFp3rience%! en! 0e)r! .%%(ci.nt! 5e%! )ti0it.ire%! te0%! L)e! 0e!
c(mpi0.te)r! 5)! 0.nI.Ie! ciS0e,! )n! ()ti0! 5J.)t(m.ti%.ti(n!
5e%! te%t%,! ()! enc(re! 5e%! )ti0it.ire%! 5e! p(%t6tr.itement! 5e%!
r3%)0t.t%!eFp3riment.)F!Sr)t%.!
Le%!5iff3rent%!m(5)0e%!()!)ti0it.ire%!L)i!c(mp(%ent!0J()ti0!
%(nt! mi%! en! s)#re! %)r! %t.ti(n! 5e! tr.#.i0! UniF.! Afin! 5e!
permettre! 0J.ppe0! 5e! ce%! m(5)0e%! 5.n%! )n! en#ir(nnement!
5e!53#e0(ppement!5e!0(Iicie0,!5.n%!0eL)e0!SESAME!%er.it!
inc0)%,! 0e%! m(5)0e%! %(nt! .cce%%iS0e%! %()%! f(rme! 5J)ne!
c(mm.n5e! UniF! %t.n5.r5! et! n(n! #i.! )ne! interf.ce!
Ir.phiL)e.!
4.2. Module de génération des mutants!
A!p.rtir!5J)n!pr(Ir.mme!%()rce!et!5e!t.S0e%!5e!m)t.ti(n,!
0e!m(5)0e!5e!I3n3r.ti(n!5e!m)t.nt%!permet!5e!I3n3rer!5e%!
en%emS0e%! 5e! m)t.nt%,! .ppe03%! S.%e%! 5e! m)t.nt%.! Une!
t.S0e! 5e! m)t.ti(n! e%t! )n! fichier! L)i! 53finit! 0.! 0i%te! 5e%!
(p3r.te)r%! 5e! m)t.ti(n! L)i! %(nt! reten)%! p()r! I3n3rer! 0e%!
m)t.nt%.! Une! S.%e! 5e! m)t.nt%! %e! pr3%ente! %()%! 0.! f(rme!
L.!f.m(n!5(nt!%(nt!intr(5)ite%!0e%!m)t.ti(n%!Z%.n%!.n.0;%e!
%;nt.FiL)e! pr3.0.S0e[! pr3%ente! 5e)F! .#.nt.Ie%.!
Premi9rement,! 0e! c(Yt! 5e! 53#e0(ppement! 5)! m(5)0e! 5e!
I3n3r.ti(n! 5e%! m)t.nt%! e%t! f.iS0e! c(mp.r3! O! ce0)i! 5J)n!
m(5)0e! L)i! fer.it! )ne! .n.0;%e! %;nt.FiL)e! 5)! c(5e.! ! Une!
.n.0;%e! %;nt.FiL)e! pen5.nt! 0J(p3r.ti(n! 5e! m)t.ti(n!
n3ce%%iter.it! 0e! 53#e0(ppement! 5J)n! m(5)0e! 5(nt! 0.!
c(mp0eFit3!%er.it!pr(che!5e!ce00e!5J)n!c(mpi0.te)r!a!cette!
c(mp0eFit3! e%t! O! c(mp.rer! .#ec! ce00e! 5e! 0.! t.i00e! 5)!
m(5)0e! 5e! I3n3r.ti(n! 5e! m)t.nt%! L)i! nJe%t! L)e! 5e! lEE!
0iIne%!5e!P.%c.0.!Le!%ec(n5!.#.nt.Ie!e%t!L)e!0e!m(5)0e!5e!
I3n3r.ti(n! pe)t! btre! )ti0i%3! L)e0! L)e! %(it! 0e! 0.nI.Ie! 5)!
pr(Ir.mme! ciS0e.! P()r! )ti0i%er! SESAME! .#ec! )n! .)tre!
0.nI.Ie,! %e)0e%! 0e%! t.S0e%! 5e! m)t.ti(n! 5(i#ent! btre!
m(5ifi3e%.! Le%! t.S0e%! 53fini%%.nt! 0e%! m)t.ti(n%! %)r! 0e%!
#.0e)r%! n)m3riL)e%! ()!%)r!0e%!(p3r.te)r%!5)!0.nI.Ie!%(nt!
pr(pre%!O!)n!0.nI.Ie!5(nn3.!Le%!t.S0e%!5e!m)t.ti(n!%)r!0e%!
%;mS(0e%!%(nt!e00e%!%p3cifiL)e%!5J)n!pr(Ir.mme!ciS0e.!!
!
Le! t.S0e.)! 5e! 0.! fiI)re! 2! i00)%tre,! Iruce! O! L)e0L)e%!
eFemp0e%,! 0.! f(rme! 5e%! (p3r.te)r%! 5e! m)t.ti(n! %)r! 0e%!
#.0e)r%! n)m3riL)e%! 5e%! c(n%t.nte%! Zf(rme! .5.pt3e! .)!
0.nI.Ie!C[.!
!
Op3r.te)r!
C(mment.ire!
!#.0e)r!m)0tip0i3e!p.r!2!
!#.0e)r!5i#i%3e!p.r!2!
!#.0e)r!.)Iment3e!5e!1!
!#.0e)r!5imin)3e!5e!1!
!Sit!E!5Jinf(rm.ti(n!in#er%3!
!Sit!1!5Jinf(rm.ti(n!in#er%3!
!#.0e)r!remp0.c3e!p.r!%(n!c(mp03ment!O!1!
!
FiI)re!2!6!M)t.ti(n%!%)r!0e%!#.0e)r%!n)m3riL)e%!
vv1!
pp1!
w1!
61!
x1!
x2!
y!
^.n%!ce!c.%,!0.!m)t.ti(n!e%t!intr(5)ite!en!.0t3r.nt!0e!teFte!
re0.tif! O! )ne! #.0e)r! n)m3riL)e.! P()r! t()te! ch.Pne! 5e!
c.r.ct9re%!repr3%ent.nt!)ne!#.0e)r!n)m3riL)e,!0.!m)t.ti(n!
c(n%i%te! O! .cc(0er! O! ce00e6ci! 0.! ch.Pne! 5e! c.r.ct9re%!
.%%(ci3e! O! 0J(p3r.te)r! 5e! m)t.ti(n.! Le%! (p3r.te)r%!
pr3%ent3%!%)r!0.!fiI)re!2!c(n%i%tent!O!.pp0iL)er!O!0.!#.0e)r!
n)m3riL)e! )n! (p3r.te)r! .rithm3tiL)e! Zm)0tip0ic.ti(n,!
5i#i%i(n,! .55iti(n,! %()%tr.cti(n[! ()! )n! (p3r.te)r! 5e!
0(IiL)e!Sin.ire!ZOU!eFc0)%if,!c(mp03ment!O!)n,!...[.!
!
Le! t.S0e.)! 5e! 0.! fiI)re! C! i00)%tre,! Iruce! O! L)e0L)e%!
eFemp0e%,! 0.! f(rme! 5e%! (p3r.te)r%! 5e! m)t.ti(n! %)r! 0e%!
(p3r.te)r%!5)!0.nI.Ie!()!%)r!0e%!%;mS(0e%.!
!
Op3r.te)r
C(mment.ire
z!!!"!!!g!,!w!,!6!
! perm)t.ti(n!(p3r.te)r%!
.rithm3tiL)e%!entre!e)F!
p!!!#!!!v!,!{!,!p{! ! perm)t.ti(n!(p3r.te)r%!5e!
c(mp.r.i%(n!entre!e)F!
! perm)t.ti(n!entre!(p3r.te)r%!5e!
{!{!!!#!!!{!
c(mp.r.i%(n!et!5J.ffect.ti(n!
#.r1!!!#!!!#.r2! ! perm)t.ti(n!5e%!%;mS(0e%!5e%!
#.ri.S0e%!i#.r1j!et!i#.r2j!
! perm)t.ti(n!entre!%;mS(0e%!
repr3%ent.nt!5e%!c(n%t.nte%!
!
FiI)re!C!6!M)t.ti(n%!%)r!0e%!(p3r.te)r%!()!0e%!%;mS(0e%!
tr)e!!!#!!!f.0%e!
Le%! m)t.ti(n%! %)r! 0e%! (p3r.te)r%! 5)! 0.nI.Ie!c(n%i%tent! O!
remp0.cer! )n! (p3r.te)r! )ti0i%3! 5.n%! )ne! eFpre%%i(n,! %(it!
p.r!)n!(p3r.te)r!5)!mbme!t;pe,!%(it!p.r!)n!(p3r.te)r!5J)n!
.)tre! t;pe! 5.n%! 0e! c.%! 5J)n! 0.nI.Ie! permi%%if! c(mme! 0e!
0.nI.Ie! C.! Le%! m)t.ti(n%! %)r! 0e%! %;mS(0e%! c(n%i%te! O!
remp0.cer! !0e! n(m! 5J)ne! c(n%t.nte,! 5J)ne! #.ri.S0e! ()!
5J)ne!f(ncti(n!p.r!)n!.)tre!%;mS(0e!pr3%ent!5.n%!0e!c(5e!
%()rce!5)!pr(Ir.mme.!!
!
LJintr(5)cti(n! 5e! ce%! t;pe%! 5e! m)t.ti(n%! %Jeffect)e! en!
recherch.nt! 5J.S(r5,! 5.n%! 0e! c(5e! %()rce! 5)! pr(Ir.mme,!
0.! ch.Pne! 5e! c.r.ct9re%! re0.ti#e! O! 0.! premi9re! p.rtie! 5e!
0J(p3r.te)r! 5e! m)t.ti(n! Zch.Pne! pr3c35.nt! 0e! %;mS(0e!
i"j! ()! i#j[.! Cette! ch.Pne! e%t! en%)ite! remp0.c3e! p.r! 0.!
ch.Pne! 5e! c.r.ct9re%!%p3cifi3e!5.n%!0.!5e)Fi9me!p.rtie!5e!
0J(p3r.te)r!5e!m)t.ti(n.!L.!5e)Fi9me!p.rtie!5e!0J(p3r.te)r!
pe)t! c(mp(rter! p0)%ie)r%! ch.Pne%! 5e! remp0.cement! O!
)ti0i%er! %)cce%%i#ement.! P.r! eFemp0e,! 5.n%! 0.! 0iIne! 1,! )n!
(p3r.te)r! 5e! m)0tip0ic.ti(n! Zz[! #.! btre! %)cce%%i#ement!
remp0.c3! p.r! )n! (p3r.te)r! 5e! 5i#i%i(n,! 5J.55iti(n! et! 5e!
%()%tr.cti(n.! Si! 0e! %;mS(0e! %3p.r.nt! 0e%! 5e)F! p.rtie%! 5e!
0J(p3r.te)r!e%t!i#j,!0.!premi9re!p.rtie!et!ch.L)e!303ment!
5e! 0.! 5e)Fi9me! p.rtie! 5e! 0J(p3r.te)r! %(nt! perm)t3e%! 5e!
f.m(n!O!r3.0i%er!t()te%!0e%!perm)t.ti(n%!p(%%iS0e%.!
!
LJen%emS0e! 5e%! (p3r.ti(n%! 5e! I3n3r.ti(n! 5e%! m)t.nt%! e%t!
r3%)m3,!5.n%!0e!c.%!5e%!m)t.ti(n%!%)r!0e%!(p3r.te)r%!()!0e%!
%;mS(0e%,!p.r!0e!p%e)5(6.0I(rithme!5e!0.!fiI)re!G.!
lecture configuration;
appel prog. de compilation du prog. cible;
pour toute ligne de la table de mutation
faire
recherche chaîne à remplacer;
pour toute occurrence de la chaîne;
faire
pour toute chaîne de remplacement
faire
introduction de la mutation
par permutation des deux chaînes;
appel prog. de validation du mutant;
fin faire
fin faire
fin faire
affichage résultats;
!
!
FiI)re!G!6!S3L)encement!5e%!(p3r.ti(n%!5e!I3n3r.ti(n!
L.!fiI)re!G!permet!5e!m(ntrer!c(mment!0e%!(p3r.ti(n%!5e!
m)t.ti(n! effect)3e%! p.r! 0e! cs)r! 5)! m(5)0e!5e!I3n3r.ti(n!
%(nt! c(mSin3e%! .#ec! ce00e%! 5e! pr(Ir.mme%! eFterne%.! Le%!
.ppe0%! O! 5e%! pr(Ir.mme%! eFterne%! %(nt! m.t3ri.0i%3%! en!
c.r.ct9re%!it.0iL)e%!e!
h! 0e! /rogramme (e com/ilation (u /rogramme cible!
permet! 5e! I3n3rer! 0e! c(5e! (SRet! 5e! r3f3rence! 5)!
pr(Ir.mme!ciS0e!a!
h! 0e! /rogramme (e ,ali(ation (u mutant! permet! 5e!
#.0i5er! 0.! m)t.ti(n! intr(5)ite!e! 0e! m)t.nt! nJe%t! %t(c<3!
5.n%! 0.! S.%e! 5e! m)t.nt%! L)e! %Ji0! e%t! c(mpi0.S0e! et!
5iff3rent!5)!c(5e!(SRet!5e!r3f3rence.!
!
Le! pr(Ir.mme! 5e! #.0i5.ti(n! f()rni! .#ec! SESAME! .! 3t3!
c(nm)! c(mme! )n! )ti0it.ire! eFterne! .fin! 5e! p()#(ir!
f.ci0ement! 0J.5.pter! en! f(ncti(n! 5)! 0.nI.Ie! )ti0i%3! ()!
0Jenrichir! .#ec,! p.r! eFemp0e,! 5e%! )ti0it.ire%! 5e!
53termin.ti(n!5e!m)t.nt%!3L)i#.0ent%.!L.!c(mp.r.i%(n!5)!
c(5e!(SRet!5)!m)t.nt!et!5)!c(5e!(SRet!5e!r3f3rence!e%t!)ne!
f(rme!minim.0e!5J30imin.ti(n!5e!m)t.nt%!3L)i#.0ent%.!E00e!
permet! 5J30iminer! .)t(m.tiL)ement! 0e%! m)t.nt%!
3L)i#.0ent%! L)i! %(nt,! p.r! eFemp0e,! 0i3%! .)! remp0.cement!
5)! %;mS(0e! 5J)ne! c(n%t.nte! p.r! )n! .)tre! %;mS(0e! L)i!
.)r.it! 0.! mbme! #.0e)r! n)m3riL)e! Zp.r! eFemp0e,!
remp0.cement! 5e! “armé”! p.r! “déclenché”! L)i! t()te%!
0e%!5e)F!%(nt!O!0.!#.0e)r!“vraie”!c(53e!p.r!)n!“1”.!
!
4.3. Module d’exécution des mutants!
Le! m(5)0e! 5JeF3c)ti(n! 5e! m)t.nt%! permet! 5e! c(n5)ire!
0J.n.0;%e! 5e! m)t.ti(n! %)r! )n! ()! p0)%ie)r%! Re)F! 5e! te%t.!
P()r! ch.L)e! m)t.nt,! 0e%! (p3r.ti(n%! %)i#.nte%! %(nt!
r3.0i%3e%!e!!
1[! Rec(n%tit)ti(n! 5)! c(5e! %()rce! 5)! m)t.nt! O! p.rtir! 5)!
pr(Ir.mme! ciS0e! et! 5e! 0.! 5e%cripti(n! c(mp.cte! 5)!
m)t.nt!eFtr.ite!5e!0.!S.%e!5e%!m)t.nt%,!
2[! C(mpi0.ti(n! 5)! m)t.nt! et! 3#ent)e00ement! 35iti(n! 5e!
0ien%! .#ec! 0e%! .)tre%! f(ncti(n%! )ti0i%3e%! p.r! 0e!
pr(Ir.mme!ciS0e,!
C[! EF3c)ti(n!5)!m)t.nt!.#ec!0e%!5iff3rent%!Re)F!5e!te%t,!
G[! C(mp.r.i%(n! 5e%! %(rtie%! pr(5)ite%! p.r! 0e! m)t.nt! .#ec!
0e%! %(rtie%! .tten5)e%! p()r! i5entifier! %i! 0e! Re)! 5e! te%t!
r3#90e!0.!m)t.ti(n!intr(5)ite.!
!
Un! fichier! tr.m.nt! 0e! 53r()0ement! 5e%! eFp3rience%! e%t!
f()rni! O! 0Ji%%)e! 5e! 0JeF3c)ti(n! 5e! 0.! t(t.0it3! 5e! m)t.nt%!
.#ec! 0Jen%emS0e! 5e%! Re)F! 5e! te%t! %()mi%! O! 0J.n.0;%e! 5e!
m)t.ti(n.! Ce! fichier! f()rnit,! 5J)ne! p.rt,! 5e%! r3%)0t.t%!
%t.ti%tiL)e%! %)r! 0e! n(mSre! 5e! m)t.nt%! 0.i%%3%! #i#.nt%! p.r!
ch.L)e! Re)! 5e! te%t! et,! 5J.)tre! p.rt,! 0.! 0i%te! 5e%! m)t.nt%!
#i#.nt%.!
!
^e! 0.! mbme! f.m(n! L)e! p()r! 0e! m(5)0e! 5e! I3n3r.ti(n! 5e!
m)t.nt%,! 0.! c(ncepti(n! 5)! m(5)0e! 5JeF3c)ti(n! .! 3t3! f.ite!
5.n%! )n! %()ci! 5e! f0eFiSi0it3,! ceci! .fin! 5J(Stenir! )n!
en#ir(nnement! f.ci0ement! .5.pt.S0e! O! 5iff3rent%! c.%!
5J3t)5e%.!P()r!.ttein5re!cet!(SRectif,!0e!m(5)0e!f.it!.ppe0!O!
5e%! pr(Ir.mme%! eFterne%! ZI3n3r.0ement! 5e%! pr(Ir.mme%!
5J)ne!5i*.ine!5e!0iIne%!3crit%!en!C6S8ELL!UniF[.!
!
Le! p%e)5(6.0I(rithme! repr3%ent.nt! 0e! f(ncti(nnement! 5)!
n(;.)! Zcs)r[! 5)! m(5)0e! 5JeF3c)ti(n! e%t! 53crit! p.r! 0.!
fiI)re!X.!I0!permet!5e!mie)F!pr3ci%er!O!L)e0%!m(ment%!ce%!
5iff3rent%!pr(Ir.mme%!inter#iennent!5.n%!0e!%3L)encement!
5e%! (p3r.ti(n%! effect)3e%! p()r! mener! O! Sien! 0e%!
eFp3riment.ti(n%!%)r!)n!en%emS0e!5e!Re)F!5e!te%t. Afin!5e!
mie)F! i5entifier! 0e%! .ppe0%! O! 5e%! pr(Ir.mme%! eFterne%,!
ce)F6ci!%(nt!m.t3ri.0i%3%!p.r!5e%!c.r.ct9re%!en!it.0iL)e!%)r!
0.!fiI)re!X.!
!
Le%! pr(Ir.mme%! .ppe03%! %(nt! 53pen5.nt%! 5e!
0Jen#ir(nnement!5e!53#e0(ppement!5e!0(Iicie0!)ti0i%3!et!5e!
0.! fin.0it3! 5e! 0J.n.0;%e! 5e! m)t.ti(n! Zc(mp.r.i%(n! entre!
p0)%ie)r%! Re)F! 5e! te%t,! 3#.0).ti(n!5J)n!Re)!5e!te%t,!...[.!I0%!
%(nt!.ppe03%!O!5e%!m(ment%!p.rtic)0ier%!5)!53r()0ement!5e!
0J.n.0;%e! 5e! m)t.ti(n! et! %(nt! 5e%tin3%! O! r3.0i%er!
0Jinterf.m.Ie! .#ec! 5e%! c(mm.n5e%! UniF! ()! 5e%! ()ti0%!
eFterne%.!
lecture configuration;
appel prog. d’ouverture de session;
pour tout jeu
appel prog. de pré-trait. du jeu de test;
S)r! 0.! fiI)re! X,! (n! pe)t! 5i%tinI)er! %iF! t;pe%! 5e!
pr(Ir.mme%!e!!
h! 0Jou,erture (e session!c(n%i%t.nt,!p.r!eFemp0e,!O!cr3er!!
5e%!r3pert(ire%!p()r!%t(c<er!5e%!fichier%!temp(r.ire%,!O!!
imp(rter!)ne!c(pie!5)!pr(Ir.mme!ciS0e,!|!a!
h! 0e!/r06traitement (u 7eu (e test!5e%tin3,!p.r!eFemp0e,!O!
mettre!en!p0.ce!)n!en#ir(nnement!5JeF3c)ti(n!O!p.rtir!
5)!fichier!53cri#.nt!0e%!5(nn3e%!5e!te%t!a!!
h! 0.!com/ilation (u mutant!permett.nt!5J(Stenir!0e!c(5e!
eF3c)t.S0e! 5)! m)t.nt! .pr9%! intr(5)cti(n! 5J)ne!
m)t.ti(n!a!!
h! 0Je80cution (u mutant! .#ec! )n! Re)! 5e! te%t! 5(nn3!
permett.nt! 5e! pr(5)ire! )n! fichier! 5e! %(rtie! p()r! 0e!
m)t.nt!a!!
h! 0e!/ost6traitement (u 7eu (e test!5e%tin3!O!53terminer!%i!
0e%!Re)F!5e!te%t!(nt!permi%!5e!r3#30er!0.!m)t.ti(n,!ceci!
en! c(mp.r.nt! p.r! eFemp0e! 0e%! %(rtie%! .tten5)e%! .#ec!
0e%!%(rtie%!pr(5)ite%!p.r!0e!m)t.nt!a!
h! 0.! cl9ture (e session! c(n%i%t.nt! O! effect)er! 5e%!
tr.itement%! %t.ti%tiL)e%! %)r! 0Jen%emS0e! 5e%!
eFp3riment.ti(n%! et! O! p)rIer! 0e%! e%p.ce%! 5e! tr.#.i0! en!
30imin.nt!0e%!fichier%!temp(r.ire%.!
!
^.n%! 0e! c.5re! 5J)ne! )ti0i%.ti(n! 5e! SESAME! en! mi0ie)!
in5)%trie0,! 0e%! pr36tr.itement%! et! p(%t6tr.itement%! 5e%! Re)F!
5e! te%t%,! .in%i! L)e! 0JeF3c)ti(n! 5J)n! Re)! 5e! te%t! .#ec! )n!
m)t.nt,!pe)#ent!f.ire!.ppe0!.)F!c(mm.n5e%!5e!tr.itement!
5e! Re)F! 5e! te%t! 5i%p(niS0e%! 5.n%! 0e%! ()ti0%! c(mmerci.)F!
5J.i5e!O!0.!I3n3r.ti(n!et!O!0JeF3c)ti(n!5e!Re)F!5e!te%t.!
^.n%! 0e! c.5re! 5e! n(%! tr.#.)F! 5e! recherche! %)r! 0e! te%t! 5)!
0(Iicie0,!.fin!5J.n.0;%er!0e!c(mp(rtement!5J)n!m)t.nt!.#ec!
)n! Re)! 5e! te%t,! n()%! .#(n%! 53#e0(pp3! )n! pr(Ir.mme! 5e!
p(%t6tr.itement! p.rtic)0ier! 5e%! Re)F! 5e! te%t.! Le! t;pe!
5J.n.0;%e!n()%!p.r.i%%.nt!tr(p!%p3cifiL)e!O!n(tre!c(nteFte!
5J)ti0i%.ti(n! 5e! 0J.n.0;%e!5e!m)t.ti(n,!n()%!.#(n%!pr3f3r3!
int3Irer!cette!.n.0;%e!%()%!f(rme!5J)n!pr(Ir.mme!eFterne,!
p0)t_t! L)e! 5e! 0Jint3Irer! 5.n%! 0e! m(5)0e! 5JeF3c)ti(n! 5e!
m)t.nt%.!Le!pr(Ir.mme!c(n%i%te!O!c(mp.rer!0e%!%(rtie%!5)!
m)t.nt!.#ec!0e%!%(rtie%!.tten5)e%!et!O!i5entifier!0e%!entr3e%!
5e! te%t! L)i! c(n5)i%ent! O! )ne! 53f.i00.nce! 5)! pr(Ir.mme!
ciS0e.! Le%! inf(rm.ti(n%! f()rnie%! %(nt! 53crite%! p.r! 0.!
fiI)re!q.!
!
Mutant tué par 15 données (2) 15.464 %
pour tout mutant
faire
extraction mutant de la base;
production source du mutant;
appel prog. de compilation du mutant;
pour tout jeu
faire
appel progr. d’exécution du mutant;
appel progr. de post-trait. du jeu de test;
fin faire
fin faire
affichage résultats bruts;
appel prog. de clôture de session;!
!
FiI)re!X!6!S3L)encement!5e%!(p3r.ti(n%!5JeF3c)ti(n!
.D...D.........D.........D.....D.......
.......D.DD....D.......D.........D..D..
..D......D.........
!
FiI)re!q!6!P(%t6tr.itement!5J)n!Re)!5e!te%t!
!
Le!pr(Ir.mme!f()rnit!5J.S(r5!5e%!%t.ti%tiL)e%!%)r!0e!Re)!e!
n(mSre!5Jentr3e%!5e!te%t!.;.nt!c(n5)it!O!0.!53f.i00.nce!5)!
m)t.nt,! n)m3r(! 5J(r5re! 5e! 0Jentr3e! 5e! te%t! .;.nt! entr.Pn3!
0.! premi9re! 53f.i00.nce,! p()rcent.Ie! 5Jentr3e%! .;.nt!
c(n5)it! O! 53f.i00.nce.! Une! inf(rm.ti(n! p0)%! pr3ci%e! e%t!
en%)ite! f()rnie! en! m.t3ri.0i%.nt! p.r! 0e! c.r.ct9re! i^j! 0e%!
entr3e%!p()r!0e%L)e00e%!)ne!53f.i00.nce!.!3t3!(S%er#3e,!ceci!
%)r! )ne! %3rie! 5e! c.r.ct9re%! L)i! repr3%ente! ch.c)ne! 5e%!
entr3e%!5)!Re)!5e!te%t.!Ce!t;pe!5Jinf(rm.ti(n!n()%!.!permi%!
5e! c(n%t.ter! .! p(%teri(ri! 0.! L).0it3! 5e%! m)t.nt%! )ti0i%3%!
5.n%! n(%! eFp3riment.ti(n%! en! c(n%t.t.nt! L)e!0e%!S.%e%!5e!
m)t.nt%! c(mp(rtent! )n! n(mSre! %iInific.tif! 5e! m)t.nt%!
%)Sti0%!L)i!ne!%(nt!t)3%!L)e!p.r!L)e0L)e%!entr3e%!5e!te%t.!
!
4.4. Exemples d’utilitaires de post-traitement!
^.n%!ce!L)i!%)it!n()%!pr3%ent(n%!5e)F!)ti0it.ire%!5e!p(%t6
tr.itement!e! 0J)ti0it.ire! sm-graph! 5J30.S(r.ti(n! 5e%!
c()rSe%! 5J3#(0)ti(n! 5e%! %c(re%! 5e! m)t.ti(n! et! 0J)ti0it.ire!
mcov 5e%tin3!O!0J.n.0;%e!5e!0.!c()#ert)re!5e%!m)t.ti(n%.!
!
4.4.1. Utilitaire sm-graph!!LJint3rbt!5e!cet!)ti0it.ire!e%t!
5J.n.0;%er! c(mment! 0e! %c(re! 5e! m)t.ti(n! 3#(0)e! en!
f(ncti(n!5)!n(mSre!5Jentr3e%!5e!te%t!eF3c)t3e%.!L.!fiI)re!
B!pr3%ente!0e!t;pe!5e!c()rSe!(Sten)e.!!
!
Score de mutation
1
Jeu de test 1
0,9
0,8
Jeu de test 2
0,7
Jeu de test 3
0,6
Nombre d'entrées de test exécutées (N)
N = 85
0,5
0
100
200
300
400
500
FiI)re!B!6!C()rSe!5J3#(0)ti(n!5)!%c(re!5e!m)t.ti(n!
!
S)r! )ne! te00e! c()rSe,! (n! (S%er#e! I3n3r.0ement! )ne!
cr(i%%.nce!r.pi5e!5)!%c(re!5e!m)t.ti(n!0(r%!5e!0JeF3c)ti(n!
5e%! premi9re%! entr3e%! 5e!te%t.!Une!te00e!cr(i%%.nce!r.pi5e!
%JeFp0iL)e! p.r! 0.! pr3%ence! 5e! m)t.nt%! tri#i.)F! f.ci0ement!
t)3%!c.r!.ffect.nt!5e%!in%tr)cti(n%!eF3c)t3e%!L)e00e!L)e!%(it!
0Jentr3e! 5e! te%t.!Le!%c(re!5e!m)t.ti(n!3#(0)e!en%)ite!p0)%!
0entement! et! p.rf(i%! p.r! p.0ier%.! Le%! p.0ier%! pe)#ent! btre!
5)%! O! 5e%!ch.nIement%!5e!%tr.t3Iie!5.n%!0.!53termin.ti(n!
5e%!entr3e%!5e!te%t!Zp.r!eFemp0e,!c.%!5e%!Re)F!5e!te%t!2!et!C!
O!N{rX[.!Si!0e!%c(re!5e!m)t.ti(n!nJe%t!p.%!enc(re!%t.Si0i%3!
O! 0.! fin! 5e! 0JeF3c)ti(n! 5J)n! Re)! 5e! te%t,! (n! p()rr.! en!
c(nc0)re! L)e! 0.! 0(nI)e)r! 5)! te%t! e%t! %.n%! 5()te!
in%)ffi%.nte!a!i0!en!e%t!5e!mbme!.)!ni#e.)!5J)n!ch.nIement!
5e!%tr.t3Iie.!Le%!.n.0;%e%!L)i!pe)#ent!btre!f.ite%!.)!ni#e.)!
5e! te00e%! c()rSe%! %(nt! int3re%%.nte%! en! t.nt! L)e! crit9re%!
5J.rrbt!5e%!te%t%.!
!
4.4.2. Utilitaire mcov!!Le!n(m!5e!cet!)ti0it.ire!e%t!in%pir3!
5e! 0J)ti0it.ire! tcov! 5i%p(niS0e! 5.n%! 0Jen#ir(nnement!
UNIX! Z)ti0it.ire! 5e! cr3.ti(n! 5J)n! r.pp(rt! 5J.n.0;%e! 5e!
c()#ert)re! %tr)ct)re00e! 5e%! te%t%[.! ^e! m.ni9re! %imi0.ire! O!
tcov! p()r! 0.! c()#ert)re! %tr)ct)re00e,! 0J)ti0it.ire! mcov!
permet! 5J3t.S0ir! )n! r.pp(rt! %)r! 0.! c()#ert)re! 5e%!
m)t.ti(n%!e! i0! )ti0i%e! 0e! c(5e! %()rce! 5)! pr(Ir.mme! ciS0e!
L)Ji0! ref(rm.te! en! 0)i! in%3r.nt! 5e%! inf(rm.ti(n%! %)r! 0.!
c()#ert)re!5e!0.!m)t.ti(n!ZfiI)re!r[.!
!
....
#Bloc 2 : couv. struct. jeux = 12 10 6
12
SUM = VAL1 + VAL2;
8
if SUM > MAX
#Bloc 3 : couv. struct. jeux = 4 5 2
8
SUM = MAX;
* ==> (74) 1 2 3
*
SUM = 65536;
* ==> (76) 3
*
SUM == MAX ;
....
!
FiI)re!r!6!F(rm.t.Ie!5)!%()rce!p.r!mcov!
!
L.! fiI)re! r! i00)%tre! 0e%! inf(rm.ti(n%! r.R()t3e%! .)! fichier!
%()rce! p.r! mcov! 5.n%! 0e! c.%! 5J)ne! .n.0;%e! 5e! m)t.ti(n!
c(mp(rt.nt!C!Re)F!5e!te%t!e!
h! 0e! n(mSre! 5e! f(i%! L)J)n! S0(c! 5Jin%tr)cti(n%! e%t! eF3c)t3!
p.r! )n! Re)! 5e! te%t! e%t! r.pp(rt3! %)r! 0.! premi9re! 0iIne! 5)!
S0(c!Zp.r!eFemp0e,!0e!S0(c!2!e%t!eF3c)t3!re%pecti#ement!
12,!1E!et!q!f(i%!p.r!0e%!Re)F!1,!2!et!C[,!
h! 0e! n(mSre! 5e! m)t.nt%! L)i! (nt! 3t3! enIen5r3%! p.r! 5e%!
m)t.ti(n%!%)r!)ne!0iIne!e%t!in5iL)3!en!reI.r5!5e!0.!0iIne!
Zp.r! eFemp0e,! 12! m)t.nt%! (nt! 3t3!pr(5)it%!p()r!0.!0iIne!
5e!c(5e!iSUM = VAL1 + VAL2 ;j[,!
!
h! 0e%! 0iIne%! 5)! c(5e! p()r! 0e%L)e00e%! i0! re%te! 5e%! m)t.nt%!
#i#.nt%!%(nt!%)i#ie%!5e!5e)F!0iIne%!p.r!m)t.nt!#i#.nt!a!0.!
premi9re! 0iIne! in5iL)e! 0e! n)m3r(! 5)! m)t.nt! et! 0.! 0i%te!
5e%! Re)F! L)i! 0.i%%ent! 0e! m)t.nt! #i#.nt,! 0.!5e%cripti(n!5e!
0.!m)t.ti(n!e%t!5(nn3e!%)r!0.!5e)Fi9me!0iIne.!
!
LJ(SRectif! 5e! 0J)ti0it.ire! mcov! e%t! 5()S0e.! I0! permet! 5.n%!
)n! premier! temp%! 5J.n.0;%er! c(mment! 0e%! m)t.ti(n%! %e!
r3p.rti%%ent!%)r!0e!pr(Ir.mme!ciS0e.!I0!e%t!.in%i!p(%%iS0e!5e!
#.0i5er! )ne! S.%e! 5e! m)t.nt%! .#.nt! 5e! pr(c35er! O! %(n!
eF3c)ti(n! en! #3rifi.nt! L)e! 0e%! m)t.ti(n%! %(nt!r3p.rtie%! 5e!
m.ni9re!h(m(I9ne!%)r!0Jen%emS0e!5)!c(5e!5)!pr(Ir.mme!
ciS0e.!!
!
^.n%!)n!5e)Fi9me!temp%,!0J)ti0it.ire!f.ci0ite!0J.n.0;%e!5e%!
m)t.nt%! #i#.nt%! en! m(ntr.nt! 0e)r! 0(c.0i%.ti(n.! Un!
reIr()pement!5e!m)t.nt%!#i#.nt%!%)r!)ne!mbme!p(rti(n!5e!
c(5e! .m9ner.! O! 0.! recherche! 5J)ne! c.)%e! c(mm)ne.! Le!
r.pp(rt!3t.S0i!p.r!mcov!f.ci0ite!3I.0ement!0.!c(mp.r.i%(n!
5e%!r3%)0t.t%!p(rt.nt!%)r!5e)F!#er%i(n%!#(i%ine%!5J)n!mbme!
pr(Ir.mme!p()r!0e%L)e00e%!)ne!mbme!m)t.ti(n!%;nt.FiL)e!
e%t!3#ent)e00ement!i5entifi3e!p.r!)n!n)m3r(!5iff3rent.!!
!
5. Bilan de l’utilisation de SESAME
!
En! I)i%e! 5e! c(nc0)%i(n! O! 0.! pr3%ent.ti(n! 5e! 0J()ti0!
SESAME,! n()%! 3t.S0i%%(n%! ci65e%%()%! )n! Si0.n! 5e!
0J)ti0i%.ti(n!5e!0J()ti0!.)!c()r%!5e!n(%!tr.#.)F!%)r!0e!te%t!5)!
0(Iicie0.!!
!
L.!m(ti#.ti(n!initi.0e!5e!SESAME!.!3t3!5e!5i%p(%er!5J)n!
%)pp(rt!eFp3riment.0!p()r!n(%!tr.#.)F!5e!recherche!%)r!0e!
te%t! 5)! 0(Iicie0,! ceci! en! permett.nt! n(t.mment! 5e! #.0i5er!
0.! m3th(5e! 5e! I3n3r.ti(n! pr(S.Si0i%te! 5e%! entr3e%! 5e! te%t!
53#e0(pp3e!.)!LAAS!e!0e!te%t!%t.ti%tiL)e.!Gruce!O!0J.n.0;%e!
5e!m)t.ti(n,!n()%!.#(n%!p)!.in%i!c(mp.rer!0Jeffic.cit3!5e!
n(tre!.ppr(che!O!ce00e!5e!m3th(5e%!5e!te%t!tr.5iti(nne00e%.!
Le%! eFp3riment.ti(n%! (nt! p(rt3! %)r! 5e%! 3t)5e%! 5e! c.%!
i%%)e%! 5)! %ecte)r! in5)%trie0,! L)Ji0! %J.Ii%%e! 5)! n)c03.ire!
ci#i0! ()! mi0it.ire,! ()! 5e! 0J.#i(niL)e.! L.! t.i00e! 5e%!
pr(Ir.mme%! tr.it3%! .00.it! 5J)ne! cinL).nt.ine! 5e! 0iIne%! O!
p0)%!5J)n!mi00ier!5e!0iIne%!5e!c(5e.!
!
Le!t.S0e.)!5e!0.!fiI)re!l!pr3%ente!)n!Si0.n!5e!0Jen%emS0e!
5e%! eFp3riment.ti(n%! L)i! (nt! 3t3! men3e%! .#ec! 0J()ti0!
SESAME.!S)i#.nt!0e!%ecte)r!5J.pp0ic.ti(n,!i0!5(nne!e!!
h! 0e! n(mSre! 5e! pr(Ir.mme%! ciS0e%! )ti0i%3%! 5.n%! 0e%!
eFp3riment.ti(n%,!
h! 0e! n(mSre! t(t.0! 5e! m)t.nt%! I3n3r3%! p()r! 0Jen%emS0e! 5e!
ce%!pr(Ir.mme%!ciS0e%,!
h! 0e!n(mSre!5e!Re)F!5e!te%t!%()mi%!O!0J.n.0;%e!5e!m)t.ti(n.!
!
Une!5e%!premi9re%!c(nc0)%i(n%!imp(rt.nte%!L)i!(nt!p)!btre!
tir3e%! 5e! ce%! tr.#.)F! e%t! 0.! f.iS0e%%e! 5e%! crit9re%! 5e! te%t!
%tr)ct)re0%! c1Gd.! En! effet,! i0! nJ.pp.r.Pt! .)c)ne! re0.ti(n!
entre!0e!crit9re!5e!te%t!reten)!p()r!%30ecti(nner!5e%!entr3e%!
5e! te%t! et! 0J.ptit)5e! 5J)n! Re)! O! r3#30er! 5e%! f.)te%! 5e! t;pe!
m)t.ti(n!e!0e%!5iff3rent%!Re)F!5e!te%t!(Sten)%!O!p.rtir!5J)n!
mbme!crit9re!f()rni%%ent!5e%!r3%)0t.t%,!en!terme%!5e!%c(re!
5e! m)t.ti(n,! L)i! pe)#ent! btre! tr9%! 5i#erIent%.! En! ()tre,!
0J.5(pti(n! 5J)n! crit9re! %3#9re! nJ(ffre! .)c)ne! I.r.ntie!
L).nt! .)! r3%)0t.t! 5)! te%t,! 0e%! crit9re%! p0)%! %3#9re%! ne!
f()rni%%.nt!p.%!n3ce%%.irement!0e%!mei00e)r%!r3%)0t.t%.!
!
^J)n!.)tre!c(t3,!0e%!tr.#.)F!eFp3riment.)F!(nt!permi%!5e!
m(ntrer! 0.! S(nne! effic.cit3! 5e! 0J.ppr(che! 5e! te%t! 5)!
0(Iicie0! 53#e0(pp3e! p.r! 0e! LAAS! c1qd.! Le%! Re)F! 5e! te%t!
I3n3r3%! %)i#.nt! cette! .ppr(che! (Stiennent! 5e%! %c(re%! 5e!
m)t.ti(n!#(i%in%!()!3I.)F!O!1!et!0e%!%c(re%!%(nt!r3p3titif%!
5J)n!Re)!5e!te%t!O!0J.)tre!0(r%L)e!p0)%ie)r%!Re)F!5e!te%t!%(nt!
53#e0(pp3%!%)i#.nt!)n!mbme!crit9re.!Le%!tr.#.)F!m(ntrent!
t()tef(i%!0.!n3ce%%it3!5e!c(mp03ter!p.r!)n!te%t!53termini%te!
5e%! #.0e)r%! 0imite%! 0e%! Re)F! 5e! te%t! (Sten)%! p.r! )ne!
I3n3r.ti(n!pr(S.Si0i%te.!
!
Cette! %tr.t3Iie! miFte! 5e! I3n3r.ti(n! 5e%! Re)F! 5e! te%t!
ZI3n3r.ti(n! pr(S.Si0i%te! w! te%t%! 53termini%te%[! .! 3t3!
.pp0iL)3e!.)!c.%!5)!te%t!5e!0(Iicie0%!S.%3%!%)r!0e%!0.nI.Ie%!
O! f0(t%! 5e! 5(nn3e%! %;nchr(ne%.! ^.n%! )n! %()ci!
5J(ptimi%.ti(n! 5e! 0Jeff(rt! 5e! te%t! et! 5e! minimi%.ti(n! 5)!
c(Yt! I0(S.0,! )n! pr(ce%%)%! 5e! te%t! pr(Ire%%if! Zte%t!)nit.ire,!
te%t!5Jint3Ir.ti(n[!.!3t3!53fini.!Le%!tr.#.)F!eFp3riment.)F!
S.%3%! %)r! 0J.n.0;%e! 5e! m)t.ti(n! (nt! permi%! 5e! #.0i5er!
0J.ppr(che!pr(p(%3e!c1B,!1r,!1ld.!
!
Enfin,! 0J.ppr(che! 5e! #.0i5.ti(n! 5)! te%t! 5e! 0(Iicie0! p.r!
.n.0;%e! 5e! m)t.ti(n! .! %)%cit3! )n! #if! int3rbt! .)pr9%!
5Jin5)%trie0%!ZTechnic.t(me!et!Aer(%p.ti.0e[!en!ch.rIe!5)!
53#e0(ppement! 5J.pp0ic.ti(n%! critiL)e%.! Le%! eFp3rience%!
5J.n.0;%e!5e!m)t.ti(n!L)i!(nt!3t3!men3e%!en!c(00.S(r.ti(n!
.#ec! ce%! in5)%trie0%! (nt! c(nfirm3! 0e)r! int3rbt! p()r!
0J.ppr(che! et! 0J()ti0! SESAME! e%t! .ct)e00ement! en! c()r%!
5e!tr.n%fert!5.n%!0e)r%!centre%.!!
!
Remerciements
!
LJ()ti0!SESAME!.!S3n3fici3!5J)n!%)pp(rt!fin.ncier!5e!0.!
p.rt! 5e! 0.! R3Ii(n! Mi5i6P;r3n3e%! 0(r%! 5e! %e%! premier%!
53#e0(ppement%.! LJ()ti0! f.it! .ct)e00ement! 0J(SRet! 5J)n!
%)pp(rt! fin.ncier!5)!C(n%ei0!G3n3r.0!Mi5i6P;r3n3e%!p()r!
.%%)rer! %(n! tr.n%fert! 5.n%! 0e! %ecte)r! in5)%trie0.! ^.n%! 0e!
c.5re! 5e%! tr.#.)F! 5)! L.S(r.t(ire! 5e! 0JInI3nierie! 5e! 0.!
SYret3! 5e! f(ncti(nnement! ZLIS[,! Technic.t(me! .!
p.rtie00ement!fin.nc3!0e%!tr.#.)F!re0.tif%!O!0.!#.0i5.ti(n!5e!
0J.ppr(che! 5e! 0J.n.0;%e! 5e! m)t.ti(n.! ^J.)tre! p.rt,! 0e%!
.)te)r%!tiennent!O!remercier!0e)r%!c(009I)e%!M)rie0!^.r.n!
et!Chri%tine!M.*)et!L)i,!p.r!0e)r%!tr.#.)F!5e!th9%e,!(nt!3t3!
O! 0J(riIine! 5J3#(0)ti(n%! 5e! 0J()ti0.! Le%! tr.#.)F! 5e! M)rie0!
^.r.n! (nt! c(ncern3! 0.! #.0i5.ti(n! 5e! 0J.ppr(che! 5e!
0J.n.0;%e! 5e! m)t.ti(n.! LJ(SRet! 5e%! tr.#.)F! 5e! Chri%tine!
M.*)et! 3t.it! 0.! 53finiti(n!5J)ne!%tr.t3Iie!5e!te%t! (ptim.0e!
p()r!0e!0.nI.Ie!%;nchr(ne!LUSTRE.!
Références!
!
c1d!R.A.!^eMi00(,!R.•.!Lipt(n!et!F.G.!S.;f.r5,!i8int%!(n!
Te%t!^.t.!Se0ecti(ne!8e0p!f(r!the!Pr.cticinI!Pr(Ir.mmerj,!
I;;; Com/uter,!#(0.!11,!n€!G,!pp.!CG6G1,!1lBr.!
!
c2d •.6C.! L.prie! et! .0,! =ui(e (e la S?ret0 (e
@onctionnement, C3p.5)9%6E5iti(n%,! T()0()%e,! Fr.nce,!
1llX,!C2G!p.!
!
cCd RTCA6EUROCAE,! Consi(0rations sur le Aogiciel en
,ue (e la Certification (es SystBmes et ;Cui/ements (e
Dor(E !^O61BrBgE^612B,!iR.5i(!Technic.0!C(mmi%%i(n!
Secte)r!5J.pp0ic.ti(n!
NS.!pr(Ir.mme%!
NS.!5e!m)t.nt%!
NS.!5e!Re)F!
N)c03.ire!ci#i0!
1G!
11lBG!
2EE!
N)c03.ire!mi0it.ire!
C!
1GCXE!
CC!
A#i(niL)e!
q!
2Err!
!
FiI)re!l!6!Bi0.n!5e!0J)ti0i%.ti(n!5e!SESAME!
Xq!
f(r!Aer(n.)tic%j!ZRTCA[,!iOrI.ni%.ti(n!E)r(p3enne!p()r!
0JEL)ipement!5e!0JA#i.ti(n!Ci#i0ej!ZEUROCAE[,!1ll2.!
!
cGd B.! Bei*er,! SoftFare Testing TechniCues, Nef6Y(r<,!
‚.n!N(%tr.n5!Reinh(05,!1llE,!XXE!p.!
!
cXd ƒ.N.!ƒinI!et!A.•.!Off)tt,!iA!F(rtr.n!0.nI).Ie!%;%tem!
f(r! m)t.ti(n6S.%e5! %(ftf.re! te%tinIj,! SoftFare6Iractice
an( ;8/erienceE #(0.!21,!n€!B,!pp.!qrX6B1r,!1ll1.!
!
cqd M.! ^.r.n! et! P.! Th3#en(56F(%%e,! iS(ftf.re! err(r!
.n.0;%i%!e! .! re.0! c.%e! %t)5;! in#(0#inI! re.0! f.)0t%! .n5!
m)t.ti(n%j,! Pr(c.!International Sym/osium on SoftFare
Testing an( Jnalysis KISSTJLMNO, pp.!1Xr61B1,!S.n!^ieI(,!
USA,!1llq.!!
!
cBd! M.! ^.r.n,! iM(530i%.ti(n! 5e%! c(mp(rtement%! err(n3%!
5)! 0(Iicie0! et! .pp0ic.ti(n! O! 0.! #.0i5.ti(n! 5e%! te%t%! p.r!
inRecti(n! 5e! f.)te%j,! Th9%e! 5e! ^(ct(r.t,! In%tit)t! N.ti(n.0!
P(0;techniL)e!5e!T()0()%e,!1llq.!
!
crd! R.A.! ^eMi00(,! ^.S.! G)in5i,! :.M.! McCr.c<en,! A.•.!
Off)tt! et! ƒ.N.!ƒinI,! iAn! EFten5e5! O#er#ief! (f! the!
M(thr.! S(ftf.re! Te%tinI! En#ir(nmentj,! Pr(c.! Pn(
WorRsho/ on SoftFare TestingE Serification an( Jnalysis,
pp.!1G261X1,!B.nff,!C.n.5.,!1lrr.!
cld! •.M.! ‚(.%,! L.! M(rre0! et! ƒ.:.! Mi00er,! iPre5ictinI!
fhere!f.)0t%!c.n!hi5e!fr(m!te%tinIj,!I;;; SoftFare,!#(0.!r,!
n€!2,!1ll1.!
!
c1Ed A.P.! M.th)r! et! :.E.! :(nI,! Te(ucing the Cost of
Uutation Testing V Jn ;m/irical Stu(yE Tech.!rep(rt,!^ept!
(f!C(mp)ter!Science%,!P)r5)e!Uni#er%it;,!:e%t!L.f.;ette,!
1llC.!
!
c11d! A.•.! Off)tt,! A.! Lee,! G.! R(therme0,! R.! Untch! et! C.!
„.pf,! iAn! EFperiment.0! ^etermin.ti(n! (f! S)fficient!
M)t.ti(n! Oper.t(r%j,! JCU Transactions on SoftFare
;ngineering an( Uetho(ology,! #(0.! X,! n€! 2,! pp.!ll611r,!
1llq.!
c12d 8.! :.e%e0;nc<,! S0rification (e Aogiciels CritiCues
/ar le Test StatistiCue,! Th9%e! 5e! ^(ct(r.t,! In%tit)t!
N.ti(n.0!P(0;techniL)e!5e!T()0()%e,!1llC.!
!
!
c1Cd P.! Th3#en(56F(%%e,! 8.! :.e%e0;nc<! et! Y.! Cr()*et,!
iAn! EFperiment.0! St)5;! (n! S(ftf.re! Str)ct)r.0! Te%tinIe!
^etermini%tic! #er%)%! R.n5(m! Inp)t! Gener.ti(nj,! Pr(c.!
PWst @ault6Tolerant Com/uting Sym/osium,! M(ntr3.0,!
pp.!G1E6G1B,!1ll1.!!
!
c1Gd! A.•.! Off)tt! et! :.M.! Cr.ft,! iU%inI! C(mpi0er!
Optimi*.ti(n! TechniL)e%! t(! ^etect! EL)i#.0ent! M)t.nt%j,!
Xournal of SoftFare TestingE Serification an( TeliabilityE!
#(0.!G,!n€!C,!pp.!1C161XG,!1llG.!
!
c1Xd!P.!Th3#en(56F(%%e!et!Y.!Cr()*et,!iOn!the!A5eL).c;!
(f!F)ncti(n.0!Te%t!Criteri.,!B.%e5!(n!S(ftf.re!Beh.#i()r!
M(5e0%j,! Pr(c.! Yth I@II WorRing ConfZ on [e/en(able
Com/uting for Critical J//lications \[CCJ6YOE! UrS.n.6
Ch.mp.iIn,!USA,!pp.!1Bq61rB,!1llq.!
!
c1qd P.! Th3#en(56F(%%e,! 8.! :.e%e0;nc<! et! Y.! Cr()*et,!
iS(ftf.re! St.ti%tic.0! Te%tinIj,! 5.n%! Ire(ictably
[e/en(able Com/uting Systems KI[CSPOE ZB.!R.n5e00,!•.6
C.! L.prie,! 8.! ƒ(pet*,! B.! Litt0ef((5, …5%.[,! Ber0in,!
A00em.Ine,!SprinIer6‚er0.I,!pp.!2XC62B2,!1llX.!
!
c1Bd! P.!Th3#en(56F(%%e,! C.!M.*)et! et! Y.!Cr()*et,! iOn!
St.ti%tic.0! Te%tinI! (f! S;nchr(n()%! ^.t.! F0(f! Pr(Ir.m%j,!
Pr(cee5inI%!(f!the!Fir%t!E)r(pe.n!^epen5.S0e!C(mp)tinI!
C(nference! ZE^^C61[,! Ber0in! ZA00em.Ine[,! G6q! Oct(Sre!
1llG,! pp.! 2XE62qB,! Lect)re! N(te%! in! C(mp)ter! Science!
rX2.! ^epen5.S0e! C(mp)tinI,! ISBN! C6XGE6XrG2q6l,!
SprinIer!‚er0.I,!pp.!2XE62qB,!1llG.!
!
c1rd! P.!Th3#en(56F(%%e,! C.!M.*)et! et! Y.!Cr()*et,!
i^efininI! the! Unit! Te%tinI! Le#e0! (f! S;nchr(n()%! ^.t.!
F0(f! Pr(Ir.m%j,! Pr(c.! WYth International Conference on
Com/uter
SafetyE
Teliability
an(
Security
KSJ@;C]UILMNOE!‚ienne!ZA)triche[,!pp.!11X612X,!1llq.!
!
c1ld C.!M.*)et,!Strat0gies (e Test /our (es Irogrammes
Synchrones 6 J//lication au Aangage A^STT;,!Th9%e!5e!
^(ct(r.t,! In%tit)t! N.ti(n.0! P(0;techniL)e! 5e! T()0()%e,!
1llG.!

Documents pareils