32
Introduction au test logiciel Fabrice AMBERT, Fabrice BOUQUET [email protected] Besançon 13-15 septembre 2016

Introduction au test logiciel - French National Centre for

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Introduction au test logiciel

Fabrice AMBERT, Fabrice BOUQUET [email protected]

Besançon 13-15 septembre 2016

Agenda

•  Mardi13/09/16: Teststructurel

•  Mercredi14/09/16:Testfonc;onnel

•  ??? : Testnonfonc;onnel

2

3

TestFonc;onnel

4

Spécifica;on:"Formulaired’enregistrementpourunsiteweb."

Testfonc;onnel–Exemple(1)

5 Cas : 10 tests logiques •  Login (non) vide (2) •  Login (n’) existe (pas) (2) •  Password (non) vide (2) •  Password et Verification (ne) sont (pas) les mêmes (2) •  Protocole http(s) (2)

5

Testfonc;onnel–Exemple(2)

6 Cas : 13 tests logiques •  Login (non) vide (2) •  Login (n’) existe (pas) (2) •  Password (non) vide (2) •  Password et Verification (ne) sont (pas) les mêmes (2) •  Protocole http(s) (2) •  Vérifier qualité du password (1 par niveau) : poor, average, good

Spécifica;on:"Formulaired’enregistrementpourunsiteweb."

6

Testfonc;onnel–Exemple(3)

7Cas:15testslogiques• Login(non)vide(2)• Login(n’)existe(pas)(2)• Password(non)vide(2)• PasswordetVerifica;on(ne)sont(pas)lesmêmes(2)• ProtocolehXp(s)(2)• Vérifierqualitédupassword(1parniveau):poor,average,good• Vérifiersienregistrement(non)humain(2)

Spécifica;on:"Formulaired’enregistrementpourunsiteweb."

7

•  Letestfonc;onnelviseàexaminerlecomportementfonc;onneldulogicieletsaconformitéaveclaspécifica;ondulogiciel

ð Sélec;ondesDonnéesdeTests(DT)

•  Méthodesdesélec;on:–  Analysepar;;onnelledesdomainesdesdonnéesd’entrée–  Testauxlimites–  Testcombinatoire–AlgorithmesPairwise–  Testaléatoire–  Généra;ondetestsàpar;rd’unespécifica;on

Testfonc;onnel

8

TestFonc;onnelCalculdesdonnéesdetest

System

Outputs

Invalid inputs Valid inputs Uneclassed’équivalencecorrespondàunensemblededonnéesdetestssupposétesterlemêmecomportement,c’est-à-direac;verlemêmedéfaut.

Analysepar;;onnelle

9

10

•  Troisphases:– Pourchaquedonnéed'entrée,calculdeclassesd'équivalencesurlesdomainesdevaleurs,

– Choixd’unreprésentantdechaqueclassed'équivalence,

– Composi;onparproduitcartésiensurl'ensembledesdonnéesd'entréepourétablirlesdonnéesdetest.

Analysepar;;onnelle-Méthode

11

•  Silavaleurappar;entàunintervalle,construire:–  uneclassepourlesvaleursinférieures,–  uneclassepourlesvaleurssupérieures,–  nclassesvalides.

•  Siladonnéeestunensembledevaleurs,construire:–  uneclasseavecl'ensemblevide,–  uneclasseavectropdevaleurs,–  nclassesvalides.

•  Siladonnéeestuneobliga;onouunecontrainte(forme,sens,syntaxe),construire:

–  uneclasseaveclacontrainterespectée,–  uneclasseaveclacontraintenon-respectée

Règlesdepar;;onnement

12

Onsouhaitetrouverlesclassesd’équivalenced’unascenseur.Lesfonc;onnalitéssontlessuivantes:•  ︎Ilestbornéparunétageminimum:lerez-de-chaussée,ilnedescend

doncpasplusbas•  ︎Ilestbornéparunétagemaximum:N,ilnemontedoncpasplushaut•  Ilauneposi;ondemaintenance

Exemple–Classed’équivalence

4 classes d’équivalence : •  où l’étage est 0 (rez-de-chaussée) •  où l’ étage est N (le dernier étage) •  où l’ étage est entre les 2 (intervalle de valeurs 1..(N − 1)) •  où l’ascenseur est en position maintenance

13

•  Principe:ons’intéresseauxbornesdesintervallespar;;onnantlesdomainesdesvariablesd'entrées:–  pourchaqueintervalle,ongardeles2valeurscorrespondantaux2

limites,etlesnvaleurscorrespondantauxvaleursdeslimites±lepluspe;tdeltapossible:n∈3..15⇒v1=3,v2=15,v3=2,v4=4,v5=14,v6=16

–  silavariableappar;entàunensembleordonnédevaleurs,onchoisitlepremier,lesecond,l'avantdernieretlederniern∈{-7,2,3,157,200}⇒v1=-7,v2=2,v3=157,v4=200

–  siunecondi0ond’entréespécifieunnombredevaleurs,définirlescasdetestàpar;rdunombreminimumetmaximumdevaleurs,etdestestspourdesnombresdevaleurshorslimitesinvalides.Unfichierd’entréecon;ent1-255records,produireuncasdetestpour0,1,255et256.

Testauxlimites

14

•  Lesdonnéesd’entréenesontpasseulementdesvaleursnumériques:booléen,image,son,…

•  Cescatégoriespeuvent,engénéral,seprêteràuneanalysepar;;onnelleetàl’examendescondi;onsauxlimites:–  True/False–  Fichierplein/Fichiervide–  Tramepleine/Tramevide–  Nuancesdecouleur–  Plusgrand/pluspe;t–  ….

Testauxlimites–Typesdedonnées

15

Exemple–ValeurauxlimitesSpécifica;on:"Formulaired’enregistrementpourunsiteweb."

7Cas:15testslogiques• Login(non)vide(2)• Login(n’)existe(pas)(2)• Password(non)vide(2)• PasswordetVerifica;on(ne)sont(pas)lesmêmes(2)• ProtocolehXp(s)(2)• Vérifierqualitédupassword(1parniveau):poor,average,good• Vérifiersienregistrement(non)humain(2)

4 variables : •  Login :︎ •  Password :︎ •  Password verification : •  Captcha :

vide, court, normal, très longue chaine (+256c), login existant, ’invalide’ login vide, très longue chaine, même login, poor, average, good

différent du Password, identique la bonne chaine, pas la bonne

16

•  L’analysepar;;onnelleestuneméthodequiviseàdiminuerlenombredecasdetestparcalculdeclassesd’équivalence–  importanceduchoixdeclassesd’équivalence:risquedenepas

révélerundéfaut•  Lechoixdecondi;onsd’entréeauxlimitesestuneheuris;que

solidedechoixdedonnéesd’entréeauseindesclassesd’équivalence–  ceXeheuris;quen’estu;lisablequ’enprésencederela;on

d’ordresurladonnéed’entréeconsidérée.•  Letestauxlimitesproduitàlafoisdescasdetestnominaux

(dansl’intervalle)etderobustesse(horsintervalle)

Analysepar;;onnelleettestauxlimites–synthèse

17

•  Méthodedetestfonc;onneltrèsproduc;ve:–  lecomportementduprogrammeauxvaleurslimitesestsouvent

pasouinsuffisammentexaminé

•  Couvrel'ensembledestypesdetest•  Inconvénient:caractèreparfoisintui;fousubjec;fdela

no;ondelimite⇒Difficultépourcaractériserlacouverturedetest.

Testauxlimites-Evalua;on

18

•  Lescombinaisonsdevaleursdedomainesd’entréedonnelieuàexplosioncombinatoire

•  Exemple:Op;onsd’uneboitededialogueMSWord: Ona12casesàcocheretunmenudéroulantpouvantprendre3valeurs.

è 212 * 3 = 12 288

Méthodepourletestcombinatoire

19

•  Testerunfragmentdescombinaisonsdevaleursquigaran;ssentquechaquecombinaisonde2variablesesttesté

•  Exemple:4variablesavec3valeurspossibleschacune

OS Réseau Imprimante Format

Windows Cable Laser Texte

Linux Wifi Encre Liquide

Image

Mac Os Bluetooth Encre Solide

Mixe

Toutes les combinaisons : 81

Testcombinatoire:Pair-wise

Toutes les paires : 9

20

•  9casdetest:chaquecombinaisonde2valeursesttestée OS Réseau Imprimante Application

Cas 1 Windows Bluetootth Laser Texte Cas 2 Windows Cable Solide Image Cas 3 Windows Wifi Liquide Mixe Cas 4 Mac OS Bluetootth Solide Mixe Cas 5 Mac OS Cable Liquide Texte Cas 6 Mac OS Wifi Laser Image Cas 7 Linux Bluetootth Liquide Image Cas 8 Linux Cable Laser Mixe Cas 9 Linux Wifi Solide Texte

L’idée sous-jacente : la majorité des fautes sont détectées par des combinaisons de 2 valeurs de variables

Pairwise–Exemple

21

•  L’approchePair-wisesedéclineavecdestriplets,desquadruplets,….maislenombredetestsaugmentetrèsvite

•  Différentsou;lspermeXentdecalculerlescombinaisonsenPairwise(oun-valeurs):–  hXp://www.pairwise.org/default.html–  Priseenchargedesexclusionsentrevaleursdesdomainesetdes

combinaisondéjàtestée

•  ProblèmeduPair-wise:–  lechoixdelacombinaisondevaleursn’estpeut-êtrepascellequi

détectelebug…–  LerésultataXendudechaquetestdoitêtrefournimanuellement

Testcombinatoire

22

•  Principe:u;lisa;ond'unefonc;ondecalculpoursélec;onnerlesdonnéesdetest:–  fonc;onaléatoire:choixaléatoiredansledomainedeladonnée

d'entrée,–  u;lisa;ond'uneloista;s;quesurledomaine.

•  Exemples:–  Echan;llonnagede5en5pourunedonnéed'entrée

représentantunedistance,–  U;lisa;ond'uneloideGausspourunedonnéereprésentantla

tailledesindividus,–  ...

Testaléatoireousta;s;que

23

•  Intérêtsdel'approchesta;s;que:–  facilementautoma;sablepourlasélec;ondescasdetest,

(plusdifficilepourlerésultataXendu)–  objec;vitédesdonnéesdetest.

•  Inconvénients:–  fonc;onnementenaveugle,–  difficultésdeproduiredescomportementstrèsspécifique

Evalua;ondutestaléatoire

Algorithme 2: public int methodeImprobable(int x, int y) if (x == 600 && y == 500) then thrown new Exception("Bonne chance pour me trouver"); return (x+y);

Lesétudesmontrentqueleteststa;s;quepermetd'aXeindrerapidement50%del'objec;fdetestmaisqu'ilatendanceàplafonnerensuite.

Produc;vitédutestaléatoireousta;s;que

24

Test déterministe

Test aléatoire

% couverture objectif

Effort

Spécifications Techniques de Besoins

Modèle formel StateCharts,UML,B…

Cas de test générés

Implémentation

Modélisation

ValidationScripts de testsexécutables

Production des scripts

Production des testsDéveloppement

Testàpar;rdemodèles

25

26

•  Denombreuxparadigmes–  Systèmesdetransi;ons(Etats/Transi;ons/Evénements)

•  FlowCharts•  DataFlowDiagrams•  Diagrammed’état

–  Diagrammesobjet&associa;on(En;té-Rela;on,héritage,…)•  Diagrammedeclasse(UML)•  En;té-Rela;on

–  Représenta;onPré-Postcondi;ons•  OCL(UML)•  MachineAbstraiteB

•  Représenta;on:•  Graphique(plus«intui;ve»)•  Textuelle(plusprécise)

Langagesdemodélisa;on

27

•  Direc;vesdegénéra;on(défini;ondescénariidetest):–  Critèresdecouverturedumodèle–  Critèresdesélec;onsurlemodèle

Ensemble de Cas de tests

•  séquence de stimuli •  résultats attendus

Modèle formel

Directives de génération

Générateur de tests

ModelBasedTestGenera;on

28

Synthèse

29

Synthèse•  Laproduc;ondetests’appuie(généralement)suruneanalyseduprogramme(teststructurel)oudesaspécifica;on(testfonc;onnel)• DifférentesstratégiespermeXentdesélec;onnerdesdonnéesdetestper;nentes.

• Cesstratégiesnesontquedesheuris;ques!Ellesnefournissentaucunegaran;edesélec;onnerlavaleurquirévéleraleserreursduprogramme.

30

Universou;llé

Exigences)Artéfacts)de)Tests)

Référen3el)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)…))

31

Programme

•  Mardi1/12/15:testfonc;onnel•  Ma;née

-  Présentation fil rouge : Robot -  Conception de graphes de contrôles et

couvertures•  Après-midi

-  EcrituredestestsenJava(Junit,Mockito,Jacoco)

32

MercipourvotreaXen;on…