Top Banner
Test et cycle logiciel Fabrice Bouquet JDEV 2013 5 septembre 2013 INRIA / CNRS Université de Franche-Comté Fabrice Bouquet Test 1 / 59
71

jdev2013-fbo

Nov 06, 2015

Download

Documents

zagada1

123
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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