Test et cycle logiciel Fabrice Bouquet JDEV 2013 5 septembre 2013 INRIA / CNRS Université de Franche-Comté Fabrice Bouquet Test 1 / 59
Test et cycle logiciel
Fabrice Bouquet
JDEV 2013
5 septembre 2013INRIA / CNRS
Universit de Franche-Comt
Fabrice Bouquet Test 1 / 59
Plan
1 Test
2 Test Structurel
3 Test fonctionnel
4 Calcul de donnes de tests
5 Synthse
Fabrice Bouquet Test 2 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Introduction
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 3 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Introduction
Validation & Vrification
Qui/Pourquoi ?I Validation : Est-ce que le logiciel ralise les fonctions attendues ?I Vrification : Est-ce que le logiciel fonctionne correctement ?
Exemple de mthodes de V & VI Test statique : Revue de code, de spcifications, de documents de designI Test dynamique : Excuter le code pour sassurer dun fonctionnement
correctI Vrification symbolique : Run-time checking, Excution symboliqueI Vrification formelle : Preuve ou model-checking dun modle formel,
raffinement et gnration de code
Fabrice Bouquet Test 4 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Introduction
Pourquoi testerMotivationI Ariane 5, Carte puce en Allemagne, Rseau Orange...I Complexit des comportements
Erreur dans les spcifications, la conception, ou le programme
Dfaut (faute) dans le logiciel
Dfaillance (anomalie de fonctionnement) du programme
Quelques chiffresI Cot des bogues informatiques : 60 Milliards e/ anI 22 Milliards conomiss si processus tests
Fabrice Bouquet Test 5 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Introduction
Test ?
IEEE (Standard Glossary of Software Engineering Terminology)
"Le test est lexcution ou lvaluation dun systme ou dun composant par desmoyens automatiques ou manuels, pour vrifier quil rpond ses spcificationsou identifier les diffrences entre les rsultats attendus et les rsultats obtenus".
G. Myers (The Art of Software testing)
"Tester, cest excuter le programme dans lintention dy trouver des anomaliesou des dfauts".
Edsgar W. Dijkstra. Notes on structured programming. Academic Press, 1972
"Tester peut rvler la prsence dune anomalie mais jamais son absence".
Fabrice Bouquet Test 6 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans les faits
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 7 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans les faits
Ralit du testLe test est une activit de validation du logiciel
Est-ce que le logiciel a t dvelopp correctement en fonction des diffrentesexigences ?
Test est une activit pas trs populaire
Difficults dordre psychologique ou culturel :I Le dveloppement est constructif car on cherche tablir des rsultats
correctsI Le test est destructif car un bon test est un test qui trouve une anomalie
Cependant, le test est une activit centrale :I Cest un lment principal damlioration de la qualit logiciel
I Il peut reprsenter jusqu 60% du cot complet du logiciel :I 1/3 durant le dveloppement du logicielI 2/3 durant la maintenance du logiciel
Fabrice Bouquet Test 8 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans les faits
Test dans les technologies de linformation
Maturit fonction QA/Test : passer d ?une approche ad hoc vers une approcherflchie et cohrente 1 :Top 4 des points damlioration Europe de louest
I Choisir une mthodologie sintgrant dans un dveloppementagile/composant.
I Fournir une couverture automatise de test automatique pour permettrelagilit dans le test
I Plus se concentrer sur les aspects non-fonctionnels comme laperformance, la disponibilit, la scurit, etc
I Avoir une stratgie de test qui optimise lusage de services de tests(traditionnel ou cloud).
1. Source IDC European Services, Enterprise Application Testing Survey, March 2011Fabrice Bouquet Test 9 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 10 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
Dveloppement logiciel et Niveau de test
Code%
Concep)on%
Exigences%
Besoin%client%
Test%unitaire%
Test%dintgra)on%
Test%Systme%
Test%daccepta)on%
Fabrice Bouquet Test 11 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
Cycle de dveloppement en V
Fabrice Bouquet Test 12 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
Mthode Scrum
Fabrice Bouquet Test 13 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
CotCo
ncep
'on(
Dve
lopp
emen
t(
Test(
Mainten
ance(
Etape(du(projet(
Cot(
Mise(en(produc'on(
Etape(du(projet(Co
t(
Mise(en(Prod.(1(
Mise(en(Prod.(2(
Mise(en(Prod.(3(
Mise(en(Prod.(n(
Conc
ep'o
n(D
velopp
emen
t(
Test(
Fabrice Bouquet Test 14 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Dans le cycle de vie
Dveloppement Guid par les Tests (TDD)Dveloppement Dirig par les Tests
I Mthode de dveloppement dans les mthodes agilesI Prconise lcriture des tests avant le dveloppement du code
Ajout&(test)&
Excu/on&
Codage&Excu/on&
Refactoring&
Dbut&
Fabrice Bouquet Test 15 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 16 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Acteurs du test
Deux situations :
1. Je teste un programme que jai crit
2. Je teste un programme que quelquun dautre a crit
Trois questions :
1. Comment choisir la technique de test ? boite blanche ou boite noire ?
2. Comment obtenir le rsultat attendu ? problme de loracle du test
3. Comment savoir quand arrter la phase de test ? problme de larrt
Fabrice Bouquet Test 17 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Test dynamique
Concep'on(des(tests(
Prpara'on(des(donnes(
de(tests(
Excu'on(du(programme(avec(tests(
Comparaison(rsultats(
Cas(de(tests(
Donnes(de(tests(
Rsultats(de(tests(
Rapport(de(tests(
Fabrice Bouquet Test 18 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Type de tests [J. Tretmans]
unitaire
intgration systme
performance robustesse
fonctionnel Boite blanche
Boite noire
Niveau de dtail (situation dans le cycle de vie)
Caractristiques (ce que lon veut tester)
ergonomie sret
module
scurit
Niveau daccessibilit
Bout en bout
Fabrice Bouquet Test 19 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Principe
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 20 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Exemple
Algorithme 1: short prog3(i)Input : short i
1 short j, r ;j = 1;while ( i> 0 ) do
j = j * i;i = i - 1;
if ( j > 1 ) thenr = j;
else if ( i < 0 ) thenr = 0;
elser = 1;
return r;
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
Fabrice Bouquet Test 21 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Tous-les-nuds
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Donnes de tests :
Fabrice Bouquet Test 22 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Tous-les-nuds
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Donnes de tests :I DT1 : [i=1] A B C B D F H I
Fabrice Bouquet Test 22 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Tous-les-nuds
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Donnes de tests :I DT1 : [i=1] A B C B D F H II DT2 : [i=-1] A B D F G I
Fabrice Bouquet Test 22 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Tous-les-nuds
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Donnes de tests :I DT1 : [i=1] A B C B D F H II DT2 : [i=-1] A B D F G II DT3 : [i=2] A B C B C B D E I
Fabrice Bouquet Test 22 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Tous-les-arcs
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Donnes de tests :I DT1 : [i=1] A B C B D F H II DT2 : [i=-1] A B D F G II DT3 : [i=2] A B C B C B D E I
Fabrice Bouquet Test 23 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel - Ts-chemins-indpendants
i i > 0
j j > 1
i i < 0
Aj = 1
Ireturn r
Gr = 0
Hr = 1
ER = j
Cj = i*ji = i -1
F
D
B
I Nombre de McCabe (G) :nbre darcs - nbre de nuds + 2
I (G) = 11 - 9 + 2 = 4I DT1 : [i=1] A B C B D F H II DT2 : [i=-1] A B D F G II DT3 : [i=2] A B C B C B D E II DT4 : [i=0] A B D F H I
Fabrice Bouquet Test 24 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Couverture
Test structurel hirarchie
Tous les chemins
Tous les DU-chemins
Toutes les utilisations
Toutes les dfinitions Toutes les P-Utilisations
Tous les i-chemins
Tous les arcs (TER2)
Tous les nuds (TER1)
Tous les chemins indpendants
Fabrice Bouquet Test 25 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 26 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Bilan
Bonne Pratique
I Une classe de code / Une classe de testsI Test et classe dans le mme "package"I Les cas nominauxI Les cas tordus / catastrophes
Mauvaise Pratique
I Rpertoire(s) mlangeant les sources et les testsI Tests triviauxI Effets de bord (ordre des tests, tats dgrads)
Fabrice Bouquet Test 27 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Bilan
En rsum, crire des tests permet :
I Analyse fine ;I Rduction des bogues ;I Non-rgression du code (refactoring) ;I Documentation de votre code ;I Dveloppement plus serein ;I Efficacit.
= Si les tests sont crits au fur et mesure
Fabrice Bouquet Test 28 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Bilan
Jenkins / Cobertura
Fabrice Bouquet Test 29 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Exemple
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 30 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Exemple
Test fonctionnel - Exemple
Spcification : "Formulaire denregistrement pour un site web."
Fabrice Bouquet Test 31 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Exemple
Test fonctionnel - ExempleSpcification : "Formulaire denregistrement pour un site web."
!ouquet'Login:'
******'Password:'
******'Verica7on:'
Register' Cancel'
5 Cases : 10 testsI Login (non) vide (2)I Login (n) existe (pas) (2)I Password (non) vide (2)I Password et Verification (password rcrit) (ne) sont (pas) les mmes (2)I Protocole http(s) (2)
Fabrice Bouquet Test 31 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Exemple
Test fonctionnel - ExempleSpcification : "Formulaire denregistrement pour un site web."
!ouquet'Login:'
******'Password:'
******'Verica7on:'
Register' Cancel'
Quality(
6 Cases : 13 testsI Login (non) vide (2)I Login (n) existe (pas) (2)I Password (non) vide (2)I Password et Verification (password rcrit) (ne) sont (pas) les mmes (2)I Protocole http(s) (2)I Vrifier qualit / Rsistance du password (1 par niveau) : poor, average,
goodFabrice Bouquet Test 31 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Exemple
Test fonctionnel - ExempleSpcification : "Formulaire denregistrement pour un site web."
!ouquet'Login:'
******'Password:'
******'Verica7on:'
Register' Cancel'
Quality(
Type'the'word:'
7 Cases : 15 testsI Login (non) vide (2)I Login (n) existe (pas) (2)I Password (non) vide (2)I Password et Verification (password rcrit) (ne) sont (pas) les mmes (2)I Protocole http(s) (2)I Vrifier qualit / Rsistance du password (3)I Vrifier si enregistrement (non) humain (2)
Fabrice Bouquet Test 31 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Comment ?
Test fonctionnel
Dfinition
Le test fonctionnel vise examiner le comportement fonctionnel dun logiciel etsa conformit avec la spcification ou les exigences du logiciel.
Trois questions sous-jacentes
I Comment slectionner des donnes de test (DT) ?I Comment construire des cas de tests (CT) ?I Comment savoir si le test russit ou choue ? (problme de loracle)
Fabrice Bouquet Test 32 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Comment ?
Test fonctionnel
Dfinition
Le test fonctionnel vise examiner le comportement fonctionnel dun logiciel etsa conformit avec la spcification ou les exigences du logiciel.
Techniques de calcul des donnes de test
I Analyse partitionnelle des domaines des donnes dentre et test auxlimites
I Test combinatoireI Gnration alatoire
Fabrice Bouquet Test 32 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Comment ?
Test fonctionnel
Dfinition
Le test fonctionnel vise examiner le comportement fonctionnel dun logiciel etsa conformit avec la spcification ou les exigences du logiciel.
Techniques de gnration de cas de test
I Test partir de modles :I Formels : Automate, B, Z, UML/OCL, SysML..I Contrats : Acsl, Eiffel, JML, Praspel, Spec#...I Schma / scnario : Logique, Exp. rgulire, Diag. de Seq....
I Couverture (exigence)I Test combinatoireI Gnration alatoire
Fabrice Bouquet Test 32 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Principe
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 33 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Principe
Produire des donnes pour le test
Donnes de test = entres du programme
I La production de donnes de test est essentielle, car elle permet defournir les entres utilises pour tester le programme.
I La couverture exhaustive des entres dun programme ou dun systme tester est trop complexe pour permettre une couverture exhaustive.
Techniques possibles
Diverses techniques vont permettre de slectionner des donnes de test perti-nentes (susceptibles de dtecter des erreurs) :I donnes (semi-)relles (benerator, jailer)I analyse partitionnelleI approche combinatoireI slection alatoire
Fabrice Bouquet Test 34 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 35 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Analyse partitionnelle
Principe de lanalyse partitionnelle
Lanalyse partitionnelle est une technique mathmatique issue de lalgbrelinaire qui vise limiter le nombre de cas de tests.
Pour lanalyse partitionnelle, on ne considre plus lensemble des valeurs pos-sibles, mais lensemble des classes de valeurs possibles (classes dquivalence).
Postulats de lanalyse partitionnelle
I le domaine des donnes dentre dune fonction se distinguent en classesdquivalence : classes de valeurs valides, et classes de valeurs invalides
I les classes dquivalence sont mutuellement exclusivesCi ,Cj .Ci 6= Cj Ci Cj =
I lunion des classes de valeurs recouvre lensemble du domaine des valeurs(
Ci = E)
Fabrice Bouquet Test 36 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Les classes dquivalence
Illustration des classes dquivalence Test dun ascenceur
On souhaite tester un ascenceur. Les fonctionnalits sont les suivantes :I Il est born par un tage minimum : le rez-de-chausse, il ne descend
donc pas plus basI Il est born par un tage maximum : N, il ne monte donc pas plus haut
Fabrice Bouquet Test 37 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Les classes dquivalence
Illustration des classes dquivalence Test dun ascenceur
On souhaite tester un ascenceur. Les fonctionnalits sont les suivantes :I Il est born par un tage minimum : le rez-de-chausse, il ne descend
donc pas plus basI Il est born par un tage maximum : N, il ne monte donc pas plus haut
Partitionnement
On considrera les comportements :I o ltage est 0 (rez-de-chausse)I o ltage est N (le dernier tage)I o ltage est entre les 2 (intervalle de valeurs 1..(N 1))
Fabrice Bouquet Test 37 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Les classes dquivalence
Dfinition dune classe dquivalence
Une classe dquivalence correspond un ensemble de donnes de tests supposstester le mme comportement, cest--dire activer le mme dfaut.
Pour effectuer lanalyse partitionnelle, on utilise trois phases :
1 Pour chaque donne dentre, calcul de classes dquivalence sur lesdomaines de valeurs,
2 Choix dun reprsentant de chaque classe dquivalence,
3 Composition par produit cartsien sur lensemble des donnes dentrepour tablir les DT.
Fabrice Bouquet Test 38 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Le test aux limitesPrincipes
Le test aux limites est une technique permettant de choisir une valeur prciseparmi une classe dquivalence donne.
Principe
On sintresse aux bornes des intervalles partitionnant les domaines des variablesdentres :
I pour chaque intervalle, on garde les 2 valeurs correspondant aux 2 limites,et les 4 valeurs correspondant aux valeurs des limites le plus petit deltapossible
n 3..15 v1 = 3, v2 = 15, v3 = 2, v4 = 4, v5 = 14, v6 = 16
I si la variable appartient un ensemble ordonns de valeurs, on choisit lepremier, le second, lavant dernier et le dernier
n {7, 2, 3, 157, 200} v1 = 7, v2 = 2, v3 = 157, v4 = 200
Fabrice Bouquet Test 39 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Le test aux limitesPrincipes
Le test aux limites est une technique permettant de choisir une valeur prciseparmi une classe dquivalence donne.
Principe
On sintresse aux bornes des intervalles partitionnant les domaines des variablesdentres :
I si une condition dentre spcifie un nombre de valeurs, dfinir les cas detest partir du nombre minimum et maximum de valeurs, et des testspour des nombres de valeurs hors limites invalides.
Un fichier dentre contient 1-255 records,produire un cas de test pour 0, 1, 255 et 256
Fabrice Bouquet Test 39 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Types de donnes aux limites
Les donnes dentre ne sont pas seulement des valeurs numriques :caractres, boolens, images, son, . . . des objets.Ces catgories peuvent, en gnral, se prter une analyse partitionnelle et lexamen des conditions aux limites :I True / FalseI Fichier plein / Fichier videI Trame pleine / Trame videI Nuances de couleursI Plus grand / plus petitI null, this, type hritI . . .
En gnral, on essaie dans la mesure du possible de jouer sur une caractristiquenumrique des donnes (taille de fichiers, dimensions dune image, etc.) ou deviser des valeurs spcifiques (caractres non affichables, etc.).
Fabrice Bouquet Test 40 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Valeur limite sur lexemple
!ouquet'Login:'
******'Password:'
******'Verica7on:'
Register' Cancel'
Quality(
Type'the'word:'
Variables du formulaire
I Login : vide, trs longue chaine (+256c), login existant, invalide loginI Password : vide, trs longue chaine, mme login, poor, average, goodI Password verification : diffrent du Password, identiqueI Captcha : la bonne chaine, pas la bonne
Fabrice Bouquet Test 41 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Synthse sur lanalyse partitionnelle
I Lanalyse partitionnelle est une mthode qui vise diminuer le nombre decas de tests par calcul de classes dquivalence. Il est important dans laralisation du choix de classes dquivalence car sinon on risque de ne pasrvler un dfaut.
I Le choix de conditions dentre aux limites est une heuristique solide dechoix de donnes dentre au sein des classes dquivalence. Mais cetteheuristique nest utilisable quen prsence dune relation dordre sur ladonne dentre considre.
I Le test aux limites produit la fois des cas de test nominaux (danslintervalle) et de robustesse (hors intervalle).
Fabrice Bouquet Test 42 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Synthse sur lanalyse partitionnelle
Pour une variable xi , on considre les donnes de test DTxi = {di1, . . . , din}.
Quen est-il lorsquil y a plusieurs variables en entre aux systmes ?
Si on veut effectuer la mme approche pour n variables,I on va construire le produit cartsien des donnes de test :
DTx1 DTx2 DTxnI Risque est davoir un nombre de cas de test qui explose.
Pour viter cela, il faut travailler sur des classes dquivalence portant surlensemble des donnes dentre.
Fabrice Bouquet Test 43 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Synthse sur lanalyse partitionnelle
Pour une variable xi , on considre les donnes de test DTxi = {di1, . . . , din}.
Quen est-il lorsquil y a plusieurs variables en entre aux systmes ?
Si on veut effectuer la mme approche pour n variables,I on va construire le produit cartsien des donnes de test :
DTx1 DTx2 DTxnI Risque est davoir un nombre de cas de test qui explose.
Pour viter cela, il faut travailler sur des classes dquivalence portant surlensemble des donnes dentre.
Fabrice Bouquet Test 43 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
Synthse sur lanalyse partitionnelle
Pour une variable xi , on considre les donnes de test DTxi = {di1, . . . , din}.
Quen est-il lorsquil y a plusieurs variables en entre aux systmes ?
Si on veut effectuer la mme approche pour n variables,I on va construire le produit cartsien des donnes de test :
DTx1 DTx2 DTxnI Risque est davoir un nombre de cas de test qui explose.
Pour viter cela, il faut travailler sur des classes dquivalence portant surlensemble des donnes dentre.
Fabrice Bouquet Test 43 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Partition / Limite
valuation du test aux limites
Mthode de test trs productive en particulier dans les approches fonctionnelles.
I Le comportement du programme aux valeurs limites nest souvent pas ouinsuffisamment examin.
I Couvre lensemble des phases de test (unitaires, dintgration, deconformit et de rgression).
InconvnientI Caractre parfois intuitif ou subjectif de la notion de limite
rend difficile la caractrisation de la couverture de test.
Fabrice Bouquet Test 44 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 45 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Approche combinatoire
Comment faire lorsque lon a des combinaisons de valeurs de domaines dentrequi donne lieu une explosion combinatoire ?Options dune boite de dialogue MS Word
On a 12 cases cocher et un menu droulant pouvant prendre 3 valeurs.
Avec 3 valeurs pour la liste droulante, ceci fait 2123 = 12288 valeurs possibles.
Fabrice Bouquet Test 46 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Approche PairWise
Pour rduire la combinatoire entre lensemble des paramtres, on va chercher tester un fragment des combinaisons de valeurs. Le choix des valeurs va treguid pour garantir que chaque combinaison de 2 variables est test.
Lide sous-jacente est que dans la majorit des fautes, elles sont dtectes pardes combinaisons de 2 valeurs de variables.
Fabrice Bouquet Test 47 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Approche PairWise
Approche PairWise
Soient 4 variables reprsentant respectivement un systme dexploitation, untype de rseau, une imprimante et un type dapplication bureautique. Chacunepossde 3 valeurs possibles. Ceci, nous donne :I OS = {XP, Linux, MAC OSX}I Rseau = {ATM, Wifi, Bluetooth}I Imprimante = {HP35, Canon900, CanonEX}I Application = {Word, Excel, Pwpoint}
Fabrice Bouquet Test 48 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Approche PairWise
Approche PairWise
Lensemble des combinaisons donne 81 possibilits alors que seulement 9 cassuffisent pour couvrir toutes les paires. Ceci donne :
# Cas OS Rseau Imprimante ApplicationCas 1 XP ATM Canon-EX PwpointCas 2 XP Bluetooth Canon900 WordCas 3 XP Wifi HP35 ExcelCas 4 Linux ATM HP35 WordCas 5 Linux Bluetooth Canon-EX ExcelCas 6 Linux Wifi Canon900 PwpointCas 7 Mac OS X ATM Canon900 ExcelCas 8 Mac OS X Bluetooth HP35 PwpointCas 9 Mac OS X Wifi Canon-EX Word
Fabrice Bouquet Test 49 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Approche combinatoire
Approche PairWise Bilan
Avantage du PairWise :I Permet la rduction du nombre de cas possibles (matrise de lexplosion
combinatoire)
Problme du Pairwise :I Le choix de la combinaison de valeurs nest peut-tre pas celle qui dtecte
le bogue . . .
Rfrence
http://www.pairwise.org
Fabrice Bouquet Test 50 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Test alatoire/statistique
Plan
1 TestIntroductionDans les faitsDans le cycle de vieBilan
2 Test StructurelPrincipeCouvertureBilan
3 Test fonctionnelExempleComment ?
4 Calcul de donnes de testsPrincipeAnalyse partitionnelle ettest aux limitesApproche combinatoireTest alatoire/statistique
5 Synthse
Fabrice Bouquet Test 51 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Test alatoire/statistique
Le test alatoire
Principe
Il sagit dune approche base sur la gnration des tests dune manire probabi-liste. Ainsi, on va utiliser une fonction (alatoire) de calcul, qui va slectionnerune valeur alatoire dans le domaine de la donne dentre.
Uniformit ou pas ?
Il faut ainsi faire et vrifier des hypothses duniformit sur les valeurs desdomaines, sinon il faut pouvoir tablir des lois statistiques sur le domaine, basessur les frquences dapparitions de certaines valeurs, vis--vis de la smantiquede la donne.
Exemple : utilisation dune loi de Gauss pour une donne reprsentant lataille des individus.
Fabrice Bouquet Test 52 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Test alatoire/statistique
Synthse test alatoire
Avantages :
I Processus peu coteux qui permet de gnrer les tests.I Retire laspect subjectif du choix des DT par le valideur
Inconvnient :
I Leur qualit dpend du niveau des tests : plus le test est pouss, plus ona de chance davoir choisi au moins un reprsentant parmi toutes lesclasses dquivalence fonctionnelle ou structurelle du programme.
I Cette automatisation doit tre complt par un oracle, qui nest pastoujours facile a tablir et encore moins de faon automatique.
Fabrice Bouquet Test 53 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Test alatoire/statistique
Limites du test alatoire
Dans le cas dapplication de grande taille, avec un grand nombre de variables, ilest quasi impossible de produire au hasard des combinaisons dentre quisensibilisent des comportements trs spcifiques.
Algorithme 2: public int methodeImprobable(int x, int y)
if (x == 600 && y == 500) thenthrown new Exception("Bonne chance pour me trouver");
return (x+y);
Limitation du test alatoire
Il est quasiment impossible quun gnrateur alatoire soit capable de sortir lesdeux valeurs de x et y (type int 264 valeurs possibles, 1 chance sur 2128(=3.4e + 38)) permettant de dclencher lexception.
Fabrice Bouquet Test 54 / 59
Test Test Structurel Test fonctionnel Donnes Synthsex . . . Test alatoire/statistique
Bilan du test alatoire, en pratiqueIntrts de lapproche alatoire :
I Permettre facilement lautomatisation pour la slection des cas de test.I Rendre les DT plus objectives car non assujettis aux choix du testeur.
Test dterministe
Test alatoire
% couverture objectif
Effort
Tendance :
I Evolution dans la dtection / leffort (le nombre de test produit).I Les tudes montrent que le test statistique permet datteindre rapidement
50% de lobjectif de test mais quil a tendance plafonner ensuite.
Fabrice Bouquet Test 55 / 59
Test Test Structurel Test fonctionnel Donnes Synthse
Plan
1 Test
2 Test Structurel
3 Test fonctionnel
4 Calcul de donnes de tests
5 Synthse
Fabrice Bouquet Test 56 / 59
Test Test Structurel Test fonctionnel Donnes Synthse
Plan de test
Questions pour le testeur :
I Comment construire des cas de tests ?I Comment slectionner des donnes de test ?I Comment savoir si le test russit ou choue ?
Questions pour le dveloppeur :
I Quel est la testabilit de lapplication (points de contrle etdobservation) ?
I Comment maintenir la stabilit des interfaces ?I Livraison est-elle fonctionnelle ?
Fabrice Bouquet Test 57 / 59
Test Test Structurel Test fonctionnel Donnes Synthse
Outils
Exigences)Artfacts)de)Tests)
Rfren3el)de)Tests)
Anomalies)Scripts)de)Tests)
Tableur,)Doors,))HP)ALM,)IBM)Rat.)Requier.)Composer)
IBM)RFT,)Selenium,)HP)QuickTestPro,)Sahi,)XxUnit)
HP,)IBM,)salomeFTM))Squash)TM,)Testlink)
Conformiq,)SmartesGng,)Test)opGmal,)BenderRBT),)Praspel,)JML)
Bugzlla,)Jira,)ManGs,))Tableur,)Redmine)
Rapports)
Tableur,)Sonar,))Cobertura,)jenkins)))
Fabrice Bouquet Test 58 / 59
Test Test Structurel Test fonctionnel Donnes Synthse
Questions
Source - http://model-based-testing.info
Est-ce que vous prfrez utiliser un systme prouv ou test ?
... cf. les artfacts utiliss.
Fabrice Bouquet Test 59 / 59
TestIntroductionDans les faitsDans le cycle de vieBilan
Test StructurelPrincipeCouvertureBilan
Test fonctionnelExempleComment ?
Calcul de donnes de testsPrincipeAnalyse partitionnelle et test aux limites Approche combinatoireTest alatoire/statistique
Synthse