L'analysepermet de faire ressortirles ara téristiquesprin ipales d'un programme ou de sa
duprogramme,end'autrestermes sursaspé i ation,
les te hniquesà ritèrestru turel reposantsur l'analysedu odesour e duprogramme, de
sonimplantation.
5.4.1 Critère fon tionnel
Une te hnique de test fon tionnel est une te hniquede test dontla détermination des
diérentesdonnéesdetestreposesuruneétudedesspé i ationsdelafon tionsoustest.
Leste hniquesfon tionnellessontdepuisun ertaintempsprivilégiéespourlagénérationau-
tomatiquede asdetest ommepour[ABC
+
02℄, [OB88℄,[DF93℄,[MA00℄,....
En eet, le test fon tionnel permet, ontrairement au test stru turel qui reste très on ret,
de hoisirunniveaud'abstra tiondelafon tionàtraversleniveaud'abstra tiondelaspé i ation.
Dans e typede te hniquesde test, l'aspe t implantation n'estpas analysé pour déterminer
les données de test, seul l'aspe t spé i ation du programme l'est. Le programme est testé à
travers ses interfa es et la séle tion des jeux de test va s'ee tuer à partir des do uments de
spé i ationet de on eption.L'idéeest de vérierle omportementréel dulogi ielparrapport
àson omportementspé ié.Lesentrées,lessortiesetleurrelationsontétudiées.Leprin ipeest
des'appuyersurlaspé i ationpourdénirune partitionsurl'espa edesentréesdéniesparla
spé i ation. Il s'agit de her herla partition la plus ne possiblede et espa e 'est-à-dire le
pluspetit sous-domaine omportantl'ensembledesvaleursdesvariablesd'entrée provoquantun
omportement donné. Pour haque partition, une valeur d'entrée ainsi que la sortie orrespon-
dante( onnueou ara tériséed'aprèslesspé i ations)peuventêtreséle tionnéesparhasardou
séle tionnéesplusoumoinsprèsdesbordsdudomaineandevérierlerespe tdelaspé i ation.
Une te hnique usuelle est de s'intéresser aux valeurs limites de haque sous-domaine selon
l'hypothèseque esvaleurssontfortementpathogènes[LW90℄, [LPU02℄,[BDL06℄.
Lesméthodesfon tionnellesévitentlesproblèmesd'analyseprovoquésparleteststru turel.Les
testsfon tionnelssemblentêtrelestestslesplusprèsdeladémar henaturelledesprogrammeurs.
Illustration 37
Un exempleest eluid'undéveloppeurquivientd'é rireunefon tion al ulantlavaleurabsolue
d'unentier.Lepremiertestintuitifestd'exé uterladitefon tionave unevaleurenentréenégative
puisave unevaleurenentréepositiveetdevérierlavaliditédurésultat.Eneet,laspé i ation
duprogrammepermetdedéduirele omportementattenduduprogrammeenfon tionduvariables
d'entrée(i ilavaleurabsolued'unentier)etl'exé utionpermetd'en vérierla orrespondan e.
Ledéfaut des tests fon tionnels est le manque de justi ation de lareprésentativité des dif-
férents as de test 'est-à-dire l'absen e de l'hypothèse d'uniformité. Si toutes les données d'un
logi iel ne peuvent pas être testées, seules ertaines données dans les diérents domaines sont
testées.Dans untel as, l'hypothèse d'uniformitéest né essaire pour onsidérerlestests omme
susants.Deplus,letestfon tionnelnepermetpastoujoursdemettreenavanttoutesleserreurs
issuesdel'implantation, eàquoipeutrépondreleteststru turel.
5.4.2 Critère stru turel
Une te hnique de test stru turel est une te hnique de test dont la détermination des
diérents asde testreposesur uneétudedelastru tureinternedelafon tionsoustesti.e. sur
sonimplantation.
Leste hniquesde test stru turel,quantàelles,ontpour obje tif d'atteindre une ouverture
Pourle testorienté otde ontrle,il s'agitde ouvrir lesn÷uds,les ar set les heminsdu
graphede ontrlereprésentantrespe tivementlesinstru tions,lesbran hementsoules hemins
d'exé utiondu odesour e[GBR00℄, [GDGM01℄,[Meu01℄,[WMM04a℄.
Illustration 38
Enprenantl'exempledelafon tionsuivante:
1. void fon (int x) 2. { 3. if (x<0) 4. x=1-x ; 5. if (x !=1) 6. x=2*x; 7. }
Pourle ritèredesinstru tions,ils'agitdetesteraumoinsunefoistouteslesinstru tionssimples
(pasdesaut,de onditionnelle,...)soitde ouvrirleslignes4 x=1-x; et6 x=2*x; .Un
testestsusantave lavaleur-3parexempleenentrée.
Pourle ritèredesbran hements,il s'agitpourlesexpressionsdesinstru tions onditionnelles
(x<0) et (x!=1) de les exer er vériées et non vériées. Deux tests susent ave les
valeurs-3et1enentrée.
Pourle ritèredes hemins, ela orrespondaux asoùlesdeux onditionssontfausses,vraies,
la première seulement est vraie et enn seulement la se onde. Seuls trois de es hemins sont
exé utables. Le hemin orrespondant à la véri ation de (x<0) suivi après l'ae tation
x=1-x;delanonvéri ationde (x!=1) estun hemininfaisable:eneetsonprédi at de
hemin orrespondàunsystèmede ontraintesinsatisable.Troistestspermettentde ouvrir es
trois heminsave enentrée-3,1et 4parexemple.
Test orientéot de données
Pour le test orienté ot de données, les ritères ( f. [RW85℄) s'intéressent à la ouverture
des relationsentre lesdénitions et les utilisationsd'une variable. Legraphe de otde données
orrespond au graphe de ontrle de la fon tion dontles n÷uds sont annotés des dénitions et
utilisations des diérentes variables de la fon tion. La onstru tion d'un jeu de test respe tant
es ritères n'est pas toujours possible et est indé idable dans le as général. Les travaux de
[HFGO94℄ ontpour but de omparer l'e a ité des ritères otde données et otde ontrle.
Selon sesexpérimentations, l'e a ité des ritères est équivalent et l'utilisation omplémentaire
des deux typesde ritèrespermet d'améliorer l'e a itédes tests. Notons quele ritèreorienté
ot de ontrle tous-les- hemins reste le ritèrele plus rigoureux des ritères stru turels et que
sonappli ationpossèdeune e a itéaumoinségaleaux ritèresotsdedonnées.
Test mutationnel
Le test mutationnel est une te hnique indire te pour séle tionner ou évaluer une suite de
tests pertinente.Cette te hnique aété introduite parDeMillo[DLS78℄ et parOutt lors de es
travaux de thèse. Le s orede mutation (nombre de mutantstués sur nombre total de mutants
non-équivalents) est une mesure de qualité de lasuite de test et don de la qualité du logi iel.
L'étude empirique de [ABL05℄ montre l'e a itédes suites de test générées pardes te hniques
mutationnelles omme[BHJT00℄,[OAL06℄ouen ore[OVP℄.Laabilitéde etteappro hedépend
du hoixdesopérateursdemutationetdeleuradéquationave leserreursréellesdelafon tionsous
test.Lenombreetlarépartitiondesmutantsgénérésainsiquelaprésen edemutantséquivalents
(i.e. ayant le même omportement que la fon tion sans erreur inje tée) rend la méthode très
oûteuseen temps d'exé utionet deréalisationdes tests.Le test mutationnel adonné lieuà de
omparerdesméthodesdeséle tionde asdetest.
Obje tifs
Lebutestdes'assurerquelatotalitédesdiérentesexé utionspossibles(ouunnombremaxi-
mal)dulogi ielaétéexplorée.L'avantageapparentdesméthodesstru turellesestdenepasavoir
besoindesspé i ations.Cependantlesspé i ationsrestentné essairespourl'ora le.Eneet,le
omportementdu omposantàl'exé utionpeutêtredéduit aprèsletestmaisriennemontreque
e omportement d'exé ution est onformeau omportement exposé dans les spé i ations. La
on eptiond'unora len'estpastotalementé artéepour etypedetest,ilsutdeledéduirepar
l'analysedesspé i ations,siellessontdisponibles.Deplus,uneméthodestru turellenegarantit
pasladéte tiondes heminsmanquantspossibles[GG75℄delafon tion.
Dans toutes les stratégies de test stru turel étudiées, le but est de maximiser le rapport
entre le nombre d'objets testés et le nombre des objets on ernés par le ritère de test hoisi
( 'est-à-diredemaximiserla ouverturedetest). Pour ela,diérentesstratégiesde hoixdes as
detestontétémisesenpla e.
Commenousl'avonsdéjà dit, des ritèresstru turels, le ritèretous-les- hemins hemins de-
mandeleplusgrandnombredetestsetpossèdedon égalementlaplusgrande han e,statistique-
ment,dedéte terunbogue.Deplus,l'appli ationde e ritèrerigoureuxpermetdemieuxjustier
l'hypothèsed'uniformité.En pratique,leste hniquesdeteststru turel, enparti ulierave le ri-
tèredes hemins,nepermettentd'atteindrequetrèsrarementune ouverture omplètedesobjets
àtester.Celas'expliqueparla omplexitéet lenombrede al ulsné essairespourdéterminerles
valeursenentréepermettantd'exé uter haque hemin.