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
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
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
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)