Ilexiste diérentes lassesdeméthodes detestde logi ielselonlefait queleprogrammesoit
Late hniquedetest statiqueintroduitn70 [Fag℄, [Mye78℄repose surl'analysed'un logi iel
sansexé utiondeson ode.Ils'agitd'ee tuerdesanalysesstatiquesdétailléesdu odesour eou
desspé i ationsdulogi ielàpartirdesdiérentss énarii(les asdetest).
Leteststatiquepeutserviràdéte terle odemort etpar onséquentles heminsdugraphe
infaisables(ounonexé utables) quiendé oulent.Cetteméthoden'entraîne au uneexé utiondu
logi iel, tout as detest ainsi que sonrésultat étantdéduit de l'analyse. Cette méthodepermet
d'optimiserl'é rituredu odesour eenpro édantàunefa torisationdeséventuelsblo d'instru -
tionsrépétésetdon delimitersonnombred'erreurs.
5.3.2 Test dynamique
Letermedetestestutiliséparfoispourdésignerl'a tiond'exé uterlelogi ielave desdonnées
d'entrée hoisiesandevérierle omportementparanalysedesdonnéesdesorties.Ce prin ipe
detest,leplusintuitifpourtoutprogrammeur,désigneenréalitéunesous- lassedetest: letest
dynamique.
Nouspouvonsremarquerdanslespré édentesdénitionsdutestdonnéesparl'AFCIQet par
G.Myersqueletermedetestdésignepluspré isémentletestdynamique ar esdeuxdénitions
suggèrentuneexé utiondu omposant.
Ils'agit delate hniquede testparex ellen e [FK96℄,[GBR00℄, [WMMR05℄. Cette méthode
s'appuie sur des exé utions du programme pour déterminer progressivement un as de test qui
atteintunpointdonnédulogi iel.Cetypedetestin lut:
laséle tiondesdonnéesdetest,
l'ajoutéventueld'instru tionsdetra epoursuivrele heminexa td'exé ution,
l'exé ution dulogi ielsoustest
et l'analysedesrésultats.
Il apparaît aussi évident que, puisque le test est dire tement lié à l'exé ution du programme,
la validitéde ettea tivité est stri tement dépendante des onditionsd'environnement dutest.
Ces onditionsdoivent reéter au plusprès les onditions normalesd'utilisation, autrement dit
l'environnementopérationnel. Les analyseurs dynamiques de ouverture stru turelle permettent
demesurerlepour entaged'objetstestésgrâ eàl'instrumentation.Ilssontasso iésàunanalyseur
statiquequipermetdegénérerlesgraphesd'appel(représentationgraphiquedesintera tionsentre
lesdiérents omposantsd'unlogi iel)pourlestestsdevalidationetlesgraphesdeotde ontrle
oudeotdedonnéespourlestestsunitaires.
5.3.3 Exé ution et évaluation symbolique
L'exé ution et l'évaluation se trouvent à la frontière des méthodes de test statiques et
dynamiques.L'exé ution symboliqueestunete hniquequi onstruitunprédi atde heminet
desexpressionssymboliquesdéterminantlesvaleurssymboliquesdesortieenfon tiondesvaleurs
symboliquesd'entréepour un hemin donné. Lesvaleursdes paramètresformels sontrempla és
pardesvaleurssymboliquesetlesinstru tionsren ontréeslelongdu heminsontexé utéesselon
leursémantique.
L'exé ution symboliquedynamiqueest unete hniquequiexé uteunprogrammeinstru-
menté.On obtient ainsipar desdonnéesd'entrée réelles, lesdonnéesréelles desortie, le hemin
empruntéetl'expressionsymboliquedu al ul de heminasso ié.
La méthode d'évaluation symbolique globale onstruit la des ription omplète de la
sortiedelafon tionenfon tiondesvaleurssymboliquesdesesdonnéesd'entréepourlatotalitéde
lafon tionensebasantsursongraphede ontrle.L'évaluationsymboliqueglobalen'estpas
1976 [Kin76℄. Ellea faitl'objet de nombreuses étudesaudébut des années 80mais peud'outils
performantsexistent réellement[Cow91℄, [CR85℄ ar ette te hniqueseprête di ilementàune
utilisation industrielle. Elle permet de soumettre des tests plus élaborés que le test dynamique
ommelasoumissiondetestsgénériquesave variables.Cetteméthoden'estpas lasséedefaçon
stri teetenglobediérentstypesd'exé utionssymboliques.
Illustration 36
Soitlafon tionsuivante al ulantledouble dumaximumdedeuxnombres:
int double_max (int a, int b)
{ int x; if (a>b) x=a; else x=b; x=2*x; return(x); }
L'évaluationsymboliqueglobaledelafon tion ara térisedeux omportements:
((a > b, x = 2 ∗ a), (a ≤ b, x = 2 ∗ b))
Remarque(s) 18
Pourl'évaluationsymboliqueglobale,la omplexitédemiseenpla e delate hniqueestd'autant
plusgrandequelatotalitéduprogrammeestévaluéeenuneseulefois ontrairementàl'exé ution
symboliquequivaévaluerlafon tionsoustest heminpar hemin.
L'évaluationsymboliqueest utiliséeselontroisoptiques:
ledebogageet la ompréhensiond'unprogrammeparétudedusystèmeré upéré,
l'optimisation, lasimpli ation ou laspé ialisationd'une fon tionpar fa torisationet for-
malisation dusystème,
et l'appli ationàlaspé i ationformelle.
Sonambiguïtéentreméthodestatiqueetdynamiques'expliquedeparsonfon tionnement.En
eet,leprogrammeest exé uté symboliquementparletesteurd'aprèslasémantiquedu ode
sour e. En d'autrestermes, l'analyse statique du ode sour e réalisée par le testeur (ou par le
logi ielde test)permet de simulerl'exé ution réelleduprogrammeen luiinje tantdesvariables
d'entréessymboliques.
A ausedel'importan edel'analysedelasémantique, ertainstesteurs lassent etteméthode
dans les méthodes statiques alors que d'autres préfèrentdistinguer l'évaluation symbolique des
autresméthodesstatiquesdufaitdelasimulationd'exé ution.
Lesméthodes detest sontaussidistinguées selonle ritère hoisi pour orienter les hoix des
données de test. Le hoix de e ritèredépend tout d'abord de la représentation disponible du
logi ielmaisaussidutypededéfautsquel'on her heàmettreenéviden e.Parexemple,lestests
reposantsurle odesour eduprogrammeontunetrès bonnedéte tiondesdéfauts al ulatoires
dulogi iel(divisionparzéroparexemple).