Vous êtes sur la page 1sur 54

Gnie logiciel Test 2005-2007 Renaud Marlet

1
Cours de gnie logiciel
Cours de gnie logiciel
Test
Test
Renaud Marlet
LaBRI I!RI"
#tt$%&&&'la(ri')r*+arlet
,d-a$r.s "'-M' /ugues0 '''1
+23 24052007
Gnie logiciel Test 2005-2007 Renaud Marlet
2
Le Test
Le Test

6ri)ie 7ue le $roduit est con)or+e au8 intentions

as$ects surtout )onctionnels

9n des +o:ens de l-assurance 7ualit

le $lus utilis0 aussi ;=ieu8> 7ue le d=elo$$e+ent

Mt#ode d:na+i7ue ,en e8cutant le logiciel1

=ient a$r.s les +t#odes stati7ues ,anal:ses auto'1

dernier re+$art contre les erreurs rsiduelles

encore tro$ sou=ent e+$iri7ue


Gnie logiciel Test 2005-2007 Renaud Marlet
4
"s$ects $s:c#ologi7ues ,11
"s$ects $s:c#ologi7ues ,11

I+$ortance de l-intention

les tests sont la(ors en )onction de l-intention

=ouloir d+ontrer 7ue le $rogra++e +arc#e ?


+au=aise a$$roc#e car les tests sont c#oisis en
cons7uence ,ne trou=ent rien de neu)1

"cti=it de test

$rocessus ;destructi)>

o(3ecti) % +ettre en =idence des erreurs

si on n-: a(outit $as0 c-est un c#ec


(!)
(!)
Gnie logiciel Test 2005-2007 Renaud Marlet
5
"s$ects $s:c#ologi7ues ,21
"s$ects $s:c#ologi7ues ,21

@lus )acile de trou=er les erreurs des autres 7ue


les siennes

on ne dtruit $as (ien ce 7u-on a construit soi-+A+e

2 )orce de regarder0 on ne =oit $lus rien

regard neu) % nou=elle inter$rtation des s$ci)ications


B$aration des tCc#es

7ui$es de d=elo$$e+ent 7ui$es d-intgration et


de 7uali)ication

(udget de 7uali)ication et de d=elo$$e+ent s$ars


Gnie logiciel Test 2005-2007 Renaud Marlet
5
Testa(ilit
Testa(ilit

Dacilit a=ec la7uelle des tests $eu=ent Atre


d=elo$$s 2 $artir des docu+ents de conce$tion

)aisa(ilit

coEt

crit.res de dcision de succ.s ou d-c#ec d-un test

cou=erture

Be $r$are tout au long du c:cle de =ie

s$ci)ications0 conce$tion glo(ale et dtaille


,co+$r#ensi(les0 $rcises0 $ertinentes0 7uanti)ies'''1
Gnie logiciel Test 2005-2007 Renaud Marlet
F
Dacteurs de testa(ilit
Dacteurs de testa(ilit

Dacteurs de (onne testa(ilit

$rcision0 co+$ltude0 traGa(ilit des docu+ents

arc#itecture si+$le et +odulaire

a(stractions 2 tra=ers des inter)aces

$oliti7ue claire des traite+ents d-erreur

Dacteurs de +au=aise testa(ilit

)orte contraintes d-es$ace ++oire et d-e))icacit

intgration )orte des traite+ents

longues c#aHnes de traite+ents


Gnie logiciel Test 2005-2007 Renaud Marlet
7
Li+ites t#ori7ues ,11
Li+ites t#ori7ues ,11

!otion d-indcida(ilit

$ro$rit indcida(le ? 7u-on ne $ourra jamais $rou=er


dans le cas gnral ,$as de $rocd s:st+ati7ue1

I8e+$les de $ro$rits indcida(les

l-e8cution d-un $rogra++e ter+ine

deu8 $rogra++es calculent la +A+e c#ose

un $rogra++e n-a $as d-erreur

un $ara+.tre du $rogra++e )ait $asser l-e8cution

sur une instruction0 une (ranc#e0 un c#e+in donn

sur toutes les instruction0 (ranc#es ou c#e+ins


Gnie logiciel Test 2005-2007 Renaud Marlet
J
Li+ites t#ori7ues ,21
Li+ites t#ori7ues ,21
9ne (ataille $erdue d-a=ance %

un $rogra++e a un no+(re in)ini ,ou gigantes7ue1


d-e8cutions $ossi(les

un 3eu de tests n-e8a+ine 7u-un no+(re )ini ,$etit1


d-e8cutions $ossi(les
Trou=er des #euristi7ues %

a$$roc#er l-in)ini ,ou le gigantes7ue1 a=ec le )ini ,$etit1


tester les e8cutions les $lus ;re$rsentati=es>
Gnie logiciel Test 2005-2007 Renaud Marlet
K
Ter+inologie % al$#a- et (Ata-test
Ter+inologie % al$#a- et (Ata-test

"l$#a-test ,al$#a testing1

test e))ectu en $#ase de d=elo$$e+ent0 a=ant la


distri(ution du $roduit , al$#a-=ersions du $roduit1

BAta-test ,(eta testing1

test e))ectu a$r.s l-al$#a-test0 en distri(uant le


$roduit , des (Ata-=ersions1 2 un grou$e li+it
d-utilisateurs a=ertis
dans la suite de ce cours % uni7ue+ent -test
Gnie logiciel Test 2005-2007 Renaud Marlet
10
Lrganisation de l-acti=it de test
Lrganisation de l-acti=it de test

"cti=it coEteuse o$ti+iser l-in=estisse+ent

e))ort +ini+u+ $ro(a(ilit +a8' de dtection d-erreur

incr+entalit

Construction des tests

aussi organise 7ue celle d-un $roduit (!)


, il : a des socits 7ui =endent des suites de test1

Gestion $ro3et

$lani)ication su))isa++ent tMt ,di))icile d-accroHtre les


ressources en )in de d=elo$$e+ent1
Gnie logiciel Test 2005-2007 Renaud Marlet
11
TCc#es
TCc#es

N)inition des tests

I+$l+entation des 3eu8 de tests

Bou+ission des 3eu8 de tests

N$ouille+ent des rsultats

O=aluation de la 7ualit des tests

Ncision d-arrAter l-criture de tests

Re3eu ,+aintenance0 non rgression1


Gnie logiciel Test 2005-2007 Renaud Marlet
12
In=ironne+ents ,outils1 de test
In=ironne+ents ,outils1 de test

Mise en Pu=re des 3eu8 de test

construction de donnes et de conte8tes d-e8cution

Niagnostic

d)inition de crit.res de russite c#ec

auto+atisa(le ou non ,e8' test d-inter)ace1

B:nt#.se des rsultats

car les sorties des tests sont sou=ent tr.s grosses


ne $as rater une erreur dans une +asse de succ.s

Ni))usion des rsultats


Gnie logiciel Test 2005-2007 Renaud Marlet
14
T:$es de test
T:$es de test
,l+ents tests et $#ases1
,l+ents tests et $#ases1

Tests unitaires

test d-une )onction0 une classe0 un +odule


,$endant le d=elo$$e+ent1

Tests d-intgration

test de l-asse+(lage des +odules


,$endant le d=elo$$e+ent1

Tests de =alidation

c#eQ le )ournisseur0 $ar l-7ui$e de 7uali)ication0


$uis c#eQ le client

Tests de sui=i d-e8$loitation


Gnie logiciel Test 2005-2007 Renaud Marlet
15
T:$es de test
T:$es de test
,nature des $ro$rits testes1
,nature des $ro$rits testes1

Tests )onctionnels

raction 2 certaines entres ,sorties $roduites1

Tests de $er)or+ance

=itesse0 c#arge0 '''

Tests de )ia(ilit

rsistance au8 $annes

Tests de scurit0 '''


Tous t:$es et ta$es de test $as ncessaire+ent
$rsents % d$end de la criticit du logiciel
Gnie logiciel Test 2005-2007 Renaud Marlet
15
T:$es de test
T:$es de test
,selon les in)or+ations accdes1
,selon les in)or+ations accdes1

Test (oHte noire R(lacS (o8 testingT

=aluation de l-e8trieur ,sans regarder le code10


uni7ue+ent en )onction des entres et des sorties

sur le logiciel ou un de ses co+$osants

Test (oHte (lanc#e R&#iteglass (o8 testingT

e8$loite le code , (esoin du sourcede l-arc#itecture1

tests de $ortions de code % (loc0 (ranc#e0 etc'


Gnie logiciel Test 2005-2007 Renaud Marlet
1F
Contenu d-un $lan de test ,11
Contenu d-un $lan de test ,11

N)inition des cas de test

con)iguration +atrielle et logicielle

$r-conditions

ta$es du test

crit.res de russite c#ec

C#ronologie et dure des ta$es de test

$our c#a7ue ta$e0 c#ronologie et +o:ens de +ise


en Pu=re des di))rents 3eu8 de test

+odes d-intgration
Gnie logiciel Test 2005-2007 Renaud Marlet
17
Contenu d-un $lan de test ,21
Contenu d-un $lan de test ,21

O7ui$es concernes et res$onsa(ilits

@rocdures de sui=i

=aluation du degr de ralisation des tests

$rocdures de collecte de donnes statisti7ues

"ctions 2 $rendre en cas de dcou=erte d-erreur

signale+ent au8 d=elo$$eurs

contrMle a$r.s corrections ,sui=i1


Gnie logiciel Test 2005-2007 Renaud Marlet
1J
Contenu d-un $lan de test ,41
Contenu d-un $lan de test ,41

Nlais et te+$s de calcul

@oliti7ue de $assage des tests


,: co+$ris les tests de non rgression1

!or+es

Lutils et +t#odes reco++ands

Bi(liot#.7ues de tests
Gnie logiciel Test 2005-2007 Renaud Marlet
1K
Crit.res d-arrAt des
Crit.res d-arrAt des
d=elo$$e+ents de tests
d=elo$$e+ents de tests

Tau8 de cou=erture atteint , crit.re a $riori1

su))isa++ent d-as$ects tests

!o+(re ou tau8 d-erreurs dcou=ertes


, crit.re a $osteriori1

cour(e du n( d-erreurs en )onction de la dure

arrAt sous un certain seuil ,1

s$aration des erreurs $ar catgorie

O$uise+ent des ressources ddies au test ,1

e))ort #u+ain etou dure


Gnie logiciel Test 2005-2007 Renaud Marlet
20
Tau8 de dcou=erte de (ogues
Tau8 de dcou=erte de (ogues
et arrAt des tests
et arrAt des tests
n( d-erreurs dcou=ertes
$ar unit de te+$s
su$$l+entaire
te+$s
arrAt des tests
seuil de
renta(ilit
Bur)ace sous la cour(e ?
n( d-erreurs dcou=ertes
ou encore 2 dcou=rir
Gnie logiciel Test 2005-2007 Renaud Marlet
21
Ra$$ort 7ualit $ri8
Ra$$ort 7ualit $ri8
!o+(re de cas de test ar(itraire+ent grand
!cessit d-un co+$ro+is

$rcision0 (on degr de cou=erture0 (onnes


in)or+ations $our les d=elo$$eurs-testeurs
,re$roducti(ilit0 de(ug1

coEt ,d)inition0 ralisation0 $assage0 d$ouille+ent1

te+$s d-e8cution de tests

n( de ressources de calcul ,+ac#ines1 +o(ilises


Gnie logiciel Test 2005-2007 Renaud Marlet
22
Test )onctionnel %
Test )onctionnel %
@artition en classes d-7ui=alence ,11
@artition en classes d-7ui=alence ,11

@artition du do+aine d-entres ,sou=ent in)ini1 en


un no+(re )ini de classes d-7ui=alence
li+ite le no+(re de tests

N)inition d-une entre re$rsentati=e $our


c#a7ue classe

ide % c#a7ue re$rsentant d-une classe a une +A+e


;$ro(a(ilit> 7ue les autres de +ettre en =idence
une erreur

@rendre en co+$te les donnes in=alides co++e


les donnes =alides % toutes sont des entres'''
Gnie logiciel Test 2005-2007 Renaud Marlet
24
Test )onctionnel %
Test )onctionnel %
@artition en classes d-7ui=alence ,21
@artition en classes d-7ui=alence ,21
I8' )onction 7ui attend un nu+ro de d$arte+ent
,de +tro$ole1 entre 1 et K5 %
I8' )onction 7ui attend une r$onse ouinon %
Validit des entres Classes d'quivalence Reprsentant
entres =alides R10 K5T 44
entres in=alides U 1 -12
entres in=alides V K5 501
Validit des entres Classes d'quivalence Reprsentant
entres =alides WouiX YouiZ
entres =alides WnonX YnonZ
entres in=alides autre ,ni oui ni non1 Ycasi+irZ
Gnie logiciel Test 2005-2007 Renaud Marlet
25
Test )onctionnel %
Test )onctionnel %
@artition en classes d-7ui=alence ,41
@artition en classes d-7ui=alence ,41

Ncou$age en classes

dduit de la s$ci)ication , tra=ail d-inter$rtation1

en )onction d-un degr de )inesse donn

[uantit de classes

co+$ro+is $rcision coEt te+$s d-e8cution

$rcision0 (on degr de cou=erture0 (onnes in)or+ations


$our les d=elo$$eurs ,de(ug1

coEt ,d)inition0 ralisation0 $assage0 d$ouille+ent1


Gnie logiciel Test 2005-2007 Renaud Marlet
25
Test )onctionnel %
Test )onctionnel %
"nal:se au8 (ornes ,11
"nal:se au8 (ornes ,11
L-e8$rience $rou=e 7ue
Les erreurs se situent trs souvent frontires
de comportements diffrents
@ar e8' %

indice de ta(leau tout 3uste tro$ grand ou tro$ $etit

(oucles a=ec une itration en tro$ ou en +oins

co+$araisons stricte au lieu de a=ec galit0 ou l-in=erse

etc'
Gnie logiciel Test 2005-2007 Renaud Marlet
2F
Test )onctionnel %
Test )onctionnel %
"nal:se au8 (ornes ,21
"nal:se au8 (ornes ,21

Bensi(ilit 2 la )ronti.res de co+$orte+ents


anal:se $rcise au8 (ornes des classes

@lusieurs re$rsentants $ar classe d-7ui=alence


une =aleur ;+diane> ordinaire
\ une ou $lusieurs =aleurs au8 (ornes
"ussi a$$el ;test au8 li+ites>
Gnie logiciel Test 2005-2007 Renaud Marlet
27
Test )onctionnel %
Test )onctionnel %
"nal:se au8 (ornes ,41
"nal:se au8 (ornes ,41
I8' )onction 7ui attend un nu+ro de d$arte+ent
,de +tro$ole1 entre 1 et K5 %
I8' )onction 7ui attend une r$onse ouinon %
Validit Classes d'quiv. Reprsentants lar!e couverture
entres =alides R10 K5T 10 5J0 K5 10 20 5J0 K50 K5
entres in=alides U 1 -12 00 -120 -10 0
entres in=alides V K5 KF0 501 KF0 K70 501
Validit Classes d'quivalence Reprsentants
entres =alides WouiX YouiZ
entres =alides WnonX YnonZ
entres in=alides autre ,ni oui ni non1 YouiiZ0 Y+onZ0 Youi Z0 Ycasi+irZ
Gnie logiciel Test 2005-2007 Renaud Marlet
2J
Test )onctionnel %
Test )onctionnel %
Co+(inaison de =aleurs d-entre
Co+(inaison de =aleurs d-entre

Co+(inaison des classes d-7ui=alences

co+(inatoire e8$onentielle

$rcis +ais coEteu8 et long ,$ar)ois tro$1

I8e+$le

#:$ot#.ses $our une )onction ),80:0Q1 %

2 classes d-7ui=alence $our c#acun des 80 : et Q

re$rsentants res$ecti)s % 8
1
08
2
0 :
1
0:
2
0 Q
1
0Q
2

co+(inaisons de cas 2 tester % ,2


4
? J1

,8
1
0:
1
0Q
1
10 ,8
1
0:
1
0Q
2
10 ,8
1
0:
2
0Q
1
10 ,8
1
0:
2
0Q
2
10
,8
2
0:
1
0Q
1
10 ,8
2
0:
1
0Q
2
10 ,8
2
0:
2
0Q
1
10 ,8
2
0:
2
0Q
2
1
Gnie logiciel Test 2005-2007 Renaud Marlet
2K
Test )onctionnel %
Test )onctionnel %
Co+(inaisons de =aleurs d-entre
Co+(inaisons de =aleurs d-entre

I8$loiter ce 7ue doit )aire la )onction

regrou$er les co+(inaisons ind$endantes

I8' si ),80:0Q1 ? ,g,80:10#,:0Q11


$our g,80:1 % ,8
1
0:
1
10 ,8
1
0:
2
10 ,8
2
0:
1
10 ,8
2
0:
2
1
$our #,:0Q1 % ,:
1
0Q
1
10 ,:
1
0Q
2
10 ,:
2
0Q
1
10 ,:
2
0Q
2
1
$our ),80:0Q1 % ,8
1
0:
1
0Q
1
10 ,8
1
0:
2
0Q
1
10 ,8
2
0:
1
0Q
2
10 ,8
2
0:
2
0Q
2
1
5 co+(inaisons au lieu de J
Gnie logiciel Test 2005-2007 Renaud Marlet
40
Test )onctionnel %
Test )onctionnel %
Co+(inaison de =aleurs d-entre
Co+(inaison de =aleurs d-entre

I8' con3onction % ;si ,8 V 0 et : V 0 et Q V 01>

2 classes d-7ui=alence $our 80 :0 Q % T-00T 0 T00\R

re$rsentants au8 li+ites ,=aria(les enti.res1 % 00 1

no+(re de co+(inaisons ? 2
4
? J

,0000010 ,0000110 ,0010010 ,0010110 ,1000010 ,1000110 ,1010010 ,101011

Test au8 li+ites sur l-e8$ression ;9 et 6 et ]> ^


e8a+iner les di))rents cas de tri$lets de (oolens
Gnie logiciel Test 2005-2007 Renaud Marlet
41
Treillis des tri$lets de (oolens
Treillis des tri$lets de (oolens
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
Gnie logiciel Test 2005-2007 Renaud Marlet
42
Treillis des tri$lets de (oolens et
Treillis des tri$lets de (oolens et
con3onction
con3onction
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
U et V et W = vrai
U et V et W = faux
Gnie logiciel Test 2005-2007 Renaud Marlet
44
Treillis des tri$lets de (oolens0
Treillis des tri$lets de (oolens0
con3onction et =aleurs au8 li+ites
con3onction et =aleurs au8 li+ites
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
U et V et W = vrai
U et V et W = faux
valeurs limites
Gnie logiciel Test 2005-2007 Renaud Marlet
45
Test )onctionnel %
Test )onctionnel %
Co+(inaison de =aleurs d-entre
Co+(inaison de =aleurs d-entre

I8' con3onction % ;si ,8 V 0 et : V 0 et Q V 01>

classes $our 80 :0 Q % T-00T 0 T00\R

re$rsentants au8 li+ites % 00 1 ,soit 2


4
co+(inaisons1

Test au8 li+ites sur la condition C ? 9 et 6 et ]

=aleurs li+ites t7 C ? =rai

,=rai0 =rai0 =rai1

=aleurs li+ites t7 C ? )au8

,)au80 =rai0 =rai10 ,=rai0 )au80 =rai10 ,=rai0 =rai0 )au81

au )inal % 5 co+(inaisons $our ,80:0Q1 au lieu de J

,1010110 ,0010110 ,1000110 ,101001


Gnie logiciel Test 2005-2007 Renaud Marlet
45
Test )onctionnel %
Test )onctionnel %
Co+(inaison de =aleurs d-entre
Co+(inaison de =aleurs d-entre

I8' dis3onction % ;si ,8 V 0 ou : V 0 ou Q V 01>

2 classes d-7ui=alence $our 80 :0 Q % T-00T 0 T00\R

re$rsentants au8 li+ites ,=aria(les enti.res1 % 00 1

no+(re de co+(inaisons ? 2
4
? J

,0000010 ,0000110 ,0010010 ,0010110 ,1000010 ,1000110 ,1010010 ,101011

Test au8 li+ites sur l-e8$ression ;9 ou 6 ou ]> ^


e8a+iner les di))rents cas de tri$lets de (oolens
Gnie logiciel Test 2005-2007 Renaud Marlet
4F
Treillis des tri$lets de (oolens
Treillis des tri$lets de (oolens
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
Gnie logiciel Test 2005-2007 Renaud Marlet
47
Treillis des tri$lets de (oolens et
Treillis des tri$lets de (oolens et
dis3onction
dis3onction
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
U ou V ou W = vrai
U ou V ou W = faux
Gnie logiciel Test 2005-2007 Renaud Marlet
4J
Treillis des tri$lets de (oolens et
Treillis des tri$lets de (oolens et
dis3onction et =aleurs au li+ites
dis3onction et =aleurs au li+ites
valeurs limites
,=rai0 =rai0 =rai1
,)au80 =rai0 =rai1 ,=rai0 )au80 =rai1 ,=rai0 =rai0 )au81
,)au80 )au80 =rai1 ,)au80 =rai0 )au81 ,=rai0 )au80 )au81
,)au80 )au80 )au81
U ou V ou W = vrai
U ou V ou W = faux
Gnie logiciel Test 2005-2007 Renaud Marlet
4K
Test )onctionnel %
Test )onctionnel %
Co+(inaison de =aleurs d-entre
Co+(inaison de =aleurs d-entre

I8' dis3onction % ;si ,8 V 0 ou : V 0 ou Q V 01>

classes $our 80 :0 Q % T-00T 0 T00\R

re$rsentants au8 li+ites % 00 1 ,soit 2


4
co+(inaisons1

Test au8 li+ites sur la condition C ? 9 ou 6 ou ]

=aleurs li+ites t7 C ? =rai

,=rai0 )au80 )au810 ,)au80 =rai0 )au810 ,)au80 )au80 =rai1

=aleurs li+ites t7 C ? )au8

,)au80 )au80 )au81

au )inal % 5 co+(inaisons $our ,80:0Q1 au lieu de J

,1000010 ,0010010 ,0000110 ,000001


Gnie logiciel Test 2005-2007 Renaud Marlet
50
Test (oHte (lanc#e
Test (oHte (lanc#e

e8$loite le code
ncessite le source
\ gra$#e de )lot de contrMle0 gra$#e de )lot de donnes0 '''

tests de $ortions de code ,(loc0 (ranc#e0 etc'1

=entuelle+ent0 +ar7uage des $ortions de code

testes

e))ecti=e+ent $arcourues
tau8 de cou=erture
Gnie logiciel Test 2005-2007 Renaud Marlet
51
Test )onctionnel %
Test )onctionnel %
"nal:se de c#e+ins
"nal:se de c#e+ins

Bas sur le c#e+in d-e8cution

(oHte noire % d-a$r.s l-algorit#+e de la s$ci)ication

(oHte (lanc#e % d-a$r.s le gra$#e de )lot de contrMle

Cou=erture

des (ranc#es ,ou des instructions1

de s7uences de (ranc#es

des c#e+ins

'''
Gnie logiciel Test 2005-2007 Renaud Marlet
52
Cou=erture des (ranc#es
Cou=erture des (ranc#es
R(ranc# co=erage ou decision co=erageT
R(ranc# co=erage ou decision co=erageT

Toute (ranc#e est e8cute


au +oins une )ois

I8' =aleurs t7 ,C10C21 ?


T
1
?,=rai0 =rai10 T
2
?,)au80 )au81
T
1
?,=rai0 )au810 T
2
?,)au80 =rai1
2 grou$es de tests au c#oi8
C1
_1 `1
C2
`2
_2
a
=rai )au8
=rai )au8
ou
Gnie logiciel Test 2005-2007 Renaud Marlet
54
Cou=erture des instructions
Cou=erture des instructions
Rinstruction co=erageT
Rinstruction co=erageT

Toute instruction est


e8cute au +oins une )ois

Ide+ cou=erture de (ranc#e

$arcourir tous les noeuds


* $arcourir tous les arcs

I8' =aleurs t7 ,C10C21 ?


T
1
?,=rai0 =rai10 T
2
?,)au80 )au81
T
1
?,=rai0 )au810 T
2
?,)au80 =rai1
2 grou$es de tests au c#oi8
C1
_1 `1
C2
`2
_2
a
=rai )au8
=rai )au8
ou
Gnie logiciel Test 2005-2007 Renaud Marlet
55
Cou=erture des c#e+ins ,11
Cou=erture des c#e+ins ,11
R$at# co=erageT
R$at# co=erageT
C1
_1 `1
C2
`2
_2
a
=rai )au8
=rai )au8

Toute c#e+in est e8cut


au +oins une )ois

I8' =aleurs t7 ,C10C21 ?


T
1
?,=rai0 =rai10 T
2
?,=rai0 )au810
T
4
?,)au80=rai10 T
5
?,)au80 )au81
1 seul grou$e de tests
,co+$ortant 5 cas de tests1
Gnie logiciel Test 2005-2007 Renaud Marlet
55
Cou=erture des c#e+ins ,21
Cou=erture des c#e+ins ,21
R$at# co=erageT
R$at# co=erageT
_
`
C
a
=rai
=rai
)au8

Cou=erture des c#e+ins


i+$ossi(le % n( c#e+ins in)ini
c#e+ins les $lus re$rsentati)s
li+iter le no+(re de (oucles

I8' ,li+ite ? 11 % =aleurs t7


T
1
% C
itration1
? =rai
T
2
% C
itration1
? )au80 C
itration2
? =rai
2 cas de tests
,$our la cou=erture de (ranc#es0 1 test su))it % T
2
1
Gnie logiciel Test 2005-2007 Renaud Marlet
5F
"nal:se de c#e+ins
"nal:se de c#e+ins
It aussi %

cou=erture des i-c#e+ins

$ortions linaires de code sui=ies d-un saut

cou=erture des (ranc#es essentielles

inutile d-a3outer des tests $our les $assages o(ligs

structured $at# testing

runion de c#e+ins ne di))rant 7ue $ar le n( d-itrations

(oundar: interior $at# testing

$our les c#e+ins a:ant au +oins une itration % e8cuter au


+oins une )ois les c#e+ins di))rents $our une 1.re itration

'''
Gnie logiciel Test 2005-2007 Renaud Marlet
57
"nal:se de )lot de donnes ,11
"nal:se de )lot de donnes ,11

Toute =aria(le a des

$oints de d)inition0 c'-2-d' a))ectations ,x = 0;1

$oints d-utilisation dans des conditions logi7ues ,x > 01

$oints d-utilisation dans des instructions de calcul ,x+31

Cou=erture

de toutes les d)initions

de toutes les utilisations dans des conditions logi7ues

de toutes les utilisations dans des calculs

d)initions e8cutes au +oins une )ois $our toutes les


utilisations 7u-elle atteint0 '''
Gnie logiciel Test 2005-2007 Renaud Marlet
5J
"nal:se de )lot de donnes ,21
"nal:se de )lot de donnes ,21
I8' d)initions e8cutes au +oins une )ois $our
toutes les utilisations 7u-elle atteint 5 cas
if (cond1)
x = exp1; d)inition 1 de x
else
x = exp2; d)inition 2 de x
if (cond2)
y = ''' x '''; utilisation 1 de x
else
y = ''' x '''; utilisation 2 de x
Gnie logiciel Test 2005-2007 Renaud Marlet
5K
Test intrusi)
Test intrusi)

Instru+entation du code

identi)ication des (ranc#es e))ecti=e+ent $arcourues


,$our le test (oHte (lanc#e1

interrogation $ossi(le0 en cours de test ,c'-2-d'


d-e8cution10 de la =aleur de certaines =aria(les
)ourniture de rsultats de calcul inter+diaires

In gnral0 $as le code )inal

#ifdef0 '''

+ais ris7ue de di))rences de co+$orte+ent


Gnie logiciel Test 2005-2007 Renaud Marlet
50
"uto-test ,11
"uto-test ,11

"ssertion

=ri)ication d:na+i7ue d-un in=ariant ,$ro$rit 7ui


doit tou3ours Atre =raie en un $oint d-e8cution1

I8' ,dans une i+$l+entation de Btring1 %


assert(len >= 1);
lastChar = chars[len-1;
si len n-est $as $lus grand 7ue 1 au +o+ent de
l-e8cution0 une erreur se $roduit
Gnie logiciel Test 2005-2007 Renaud Marlet
51
"uto-test ,21
"uto-test ,21

Bu$$ression des assert dans le $roduit )inal

sinon ralentit l-e8cution

Certains langages dis$osent d-assertions

Ii))el0 ba=a ,=1'51 )lag du co+$ilateur

Binon0 i+$l+enta(le a=ec des +acros


#ifdef !"#$%
#define assert(cond) & if ('cond) error(); (
#else
#define assert(cond) )* assert i+nor, *)
#endif
Gnie logiciel Test 2005-2007 Renaud Marlet
52
[uestions
[uestions
Mais

7ui teste les tests ^

7ui teste les tests de tests ^

'''

et 7ui d(ogue les test ^


Gnie logiciel Test 2005-2007 Renaud Marlet
54
Lracle de test
Lracle de test

@rdire les =aleurs de sorties correctes ,attendues1

diagnosti7uer la russite ou l-c#ec

I+$l+entation

cas si+$les % =aleurs codes en dur

cas co+$le8es % =aleurs calcules $ar si+ulateur$roto

+aintenance $lus )acile en cas d-=olution de la s$ci)ication


"e pas tester les tests avec l'implmentation

=ote 2 la +a3orit de 4 %

=aleur si+$le0 =aleur si+ule0 =aleur $roduite $ar le $rogra++e


Gnie logiciel Test 2005-2007 Renaud Marlet
55
c
c
retenir
retenir

Test ? $rocessus ;destructi)>

$as d-erreur trou=e ,c#eQ un autre1 ? c#ec

!otion de $lan de test

$oser le $ro(l.+e du co+$ro+is cou=erturee))ort

Tests (oHte noire (oHte (lanc#e ,code =isi(le1

Tests )onctionnels %

$artition des entres0 test au8 li+ites0 co+(inatoire

cou=erture des (ranc#es et c#e+ins

Instru+entation0 auto-test ,assertion1 et oracle