SlideShare una empresa de Scribd logo
1 de 23
Tests
Unitaires
LAJOUAD Rachid
Tests Boîte
Noire
LAJOUAD Rachid
Tests boîte noire ?
• Tests sans la connaissance du code sous jacent
• Tests basés sur la spécification
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)3
Unité
entrées
sorties
Tests boîte noire ?
Avantages
• pas besoin du code source
• s'applique aussi bien aux tests unitaires que systèmes
Désavantages
• ne test pas les fonctions cachées
Approches:
• Divination d'erreurs (Error guessing)
• Partitionnement en Classe d'équivalences
• Analyse de Valeurs aux Bornes
• Tables de Décision
• Graphes Causes Effets
• Tests dérivés des exigences (ex: cas d'utilisations)
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)4
Divination d'erreurs (1)
Approche ad-hoc basée sur l'expérience
Approche:
• Faire une liste d'erreurs possibles ou situations conduisant à
des erreurs
• modèle d'erreurs
• Développer des cas de tests pour couvrir le modèle
d'erreurs
Développez et maintenez vos modèles d'erreurs
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)5
Divination d'erreurs (2)
Exemple fonction de tri de tableau
Modèle d'erreur:
• tableau vide
• tableau trié
• tableau trié à l'envers
• grand tableau non trié
• ...
Générer des cas de tests pour ces situations
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)6
Partitionnement en Classes
d'équivalences
Partition du domaine de données en classes
d'équivalences selon la spécification
Idéalement les CEs devraient être
• telles que chaque donnée est dans une classe disjointes
• les éléments d'une même classe mis en
correspondance avec leur résultats de façon similaire
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)7
Heuristiques pour Identification de
Classes d'équivalences
Pour chaque donnée:
• si spécifie un intervalle de valeurs valides, définir
• 1 CE valide (dans l'intervalle)
• 2 CEs invalides (une à chaque bout de l'intervalle)
• si spécifie un nombre (N) de valeurs valides, définir
• 1 CE valide
• 2 CE invalides (aucune et plus de N)
• si spécifie un ensemble de valeurs valides, définir
• 1 CE valide (dans l'ensemble)
• 1 CE invalide (en dehors de l'ensemble)
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)8
Partitionnement en Classes
d'équivalences - Exemple (1)
• Spécification
• données trois entiers (côtés du triangle: a, b, c)
• chaque côté doit être un nombre positif inférieur ou égal à
20.
• résultat type du triangle:
• Équilatéral si a = b = c
• Isocèles si 2 paires de côté sont égaux
• Scalène si aucun côté n'est égal à l'autre ou
• PasUnTriangle si a >= b + c, b >= a + c, ou c >= a + b
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)9
Analyse des Valeurs aux Bornes
(AVB)
• Erreurs ont tendance à survenir vers les valeurs
extrêmes (bornes)
• AVB améliore le Partitionnement en Classes
d'équivalences en
• sélectionnant les éléments juste à et autour des bornes de
chacune des CES
• dérivant des cas de tests en considérant des CEs des
résultats également
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)10
Conditions de bornes
• Situation à la bordure des limites opérationnelles
envisagées
• Types de données ayant des conditions de bornes
• Numérique, Caractère, Position, Quantité, Vitesse,
Location, Taille
• Caractéristiques de conditions de bornes
• Premier/Dernier, Début/Fin, Minimum/Maximum,
Audessus/ Audessous, Vide/Plein, Pluslent/ Plusrapide,
Plusgrand/ Pluspetit, Plusprochede/ Plusloinde,
Pluscourt/ Pluslong, Plustôt/ Plustard, Plushaut/ Plusbas
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)11
Analyse des Valeurs aux Bornes -
Exemple
• Exemples de valeurs aux bornes pour nextdate
Lajouad Rachid
CQL - BTSDSI Ibn SINA (Kenitra)12
Donnée Valeur borne
Mois 0, 1,12,13
Jour 0,1,2,30,31,32
an 1811, 1812, 2013,
2014
Tests Boîte
Blanche
LAJOUAD Rachid
Tests boîte blanche
Approche de tests structurels
Focus sur la logique interne du système
nécessité du code source
spécification nécessaire pour résultats attendus
Avantage
• test ce qui est là
Dé-avantage
• fonctionnalité présente dans la spec mais non implémentée peut être manquée
Tests boîte blanche
● Approches orientées flotde contrôle
– Basées sur l'analysedu flot de contrôle à travers le programme
– Exemples de critères de couverture de tests
● couverture d'instructions (tous-les-noeuds)
● couverture debranches (tous-les-liens)
● couverture dechemins (tous-les-chemins)
● couverture deconditions
● ...
Processus de test boîte blanche
Établir l'objectif de couverture
Dériver un flowchart du code source
Déterminer des chemins pour objectif de couverture
Pour chaque chemin
• Sensibiliser les chemins pour les entrées
• Utiliser la spécification pour résultats escomptés
• Faire attention au chemins impossibles
Exécuter les cas de tests
Vérifier la couverture
Flowchart Simplifié
● Plus pratique pour grandes unités
● Obtenu en groupant des sous-chemins de
décision à décision
● Nœuds
– Nœuds Décisions: avec plus d'un lien partant
● fini avec une décision
– Nœuds Jonctions: avec plus d'un lien entrant
● concentre plusieurs chemins
Flowchart Simplifié - exemple
fir
st
firs
t
A
B C
D
E
F G
H I
J K
last
L
public static void main (String[] args)throws IOException
{
boolean isATriangle;
System.out.print("Enter the sides: ");
int a = IOEasy.readInt();
int b = IOEasy.readInt();
int c = IOEasy.readInt();
System.out.println("A is“+a+“,B is“+b+", C is”+c);
if ((a < b+c) && (b < a+c) && (c < a+b)) (A)
isATriangle = true; (B)
else isATriangle = false; (C)
if (isATriangle) { (D)
if (((a==b) || (a==c) || (b==c)) &&!((a==b) &&
(a==c))) (E)
System.out.println( "Triangle is Isosceles"); (F)
if ((a==b) && (b==c)) (G)
System.out.println( "Triangle is Equilateral");
(H)
if ((a!=b) && (a!=c) && (b!=c)) (I)
System.out.println("Triangle is Scalene"); (J)
}
else System.out.println("Not a Triangle"); (L)
}
}
Meilleur programme Triangle
first
last
B
C
D E
I G
F
A
H
public static void main (String[] args) throws
IOException{
System.out.print( "Enter the sides: ");
int a = IOEasy.readInt();
int b = IOEasy.readInt();
int c = IOEasy.readInt();
System.out.println("A is " + a + ", B is " + b + ", C
is " + c);
if ((a < b+c) && (b < a+c) && (c < a+b)) { (A)
if ((a!=b) && (a!=c) && (b!=c)) { (B)
System.out.println(“Triangle is Scalene”); (G)
} else {
if ((a==b) && (a==c)) (C)
System.out.println(“Triangle is Equilateral”); (E)
else
System.out.println(“Triangle is Isosceles”); (D)
} (F)
} else
System.out.println(“Not a Triangle”); (I)
} (H)
}
Instrumentation de Chemin
●Pour mesurer la couverture de code
Code
Source
Code
Source
Modifié
Trace
d'Exécution
exécution de suite de tests
analyse pour
couverture
objectif
de couverture
atteinte ?
Approches
● marqueurs de liens
● compteurs de liens
● débogueur symbolique
● outil de couverture de
code
Couverture de Boucles (1)
● Boucle simple - exécuter la boucle
– minimum-1
– minimum
– minimum+1
– typique
– maximum
– maximum+1
● fois si possible.
examp1(char[] val) {
for(int i=0;i<val.length;i++){
...
}
}
examp2(int x, int y) {
i = x;
while (i <= y) {
...
i++;
}
}
Couverture de Boucles (2)
● Boucles imbriquées
– Commencer avec la boucle la plus interne
● Mettre toutes les boucles à
l'extérieur à leur valeur minimum
● Mettre toutes les autres boucles à
une valeur typique
● Tester minimum, minimum+1,
typique, maximum-1, maximum
– Remonter à la boucle au dessus et
répéter
– Si la boucle plus extérieure est faite,
effectuer les 5 cas pour toutes les boucles
simultanément
for (i = 0; i < x; i++) {
for (j = 0; j < y; j++) {
for (k = 0; k < z; k++){
}
}
}
Tests Flots de Donnés
● Tests basés sur les flots de donnés
– où les données sont définies
– où les données sont modifiées
– séquence d'événements liés aux
données

Más contenido relacionado

La actualidad más candente

Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...TelecomValley
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test Imen Turki
 
les metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitéles metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitésoregh
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de testsSabrine MASTOURA
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 
Exposée: Processus de test logiciel
Exposée:  Processus de test logiciel Exposée:  Processus de test logiciel
Exposée: Processus de test logiciel Esaie88
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4TestIA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4TestMimoun Kissi 🤖
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 

La actualidad más candente (14)

Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
 
Cours algorithmique02
Cours algorithmique02Cours algorithmique02
Cours algorithmique02
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test
 
les metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitéles metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualité
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Exposée: Processus de test logiciel
Exposée:  Processus de test logiciel Exposée:  Processus de test logiciel
Exposée: Processus de test logiciel
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
Metrique
MetriqueMetrique
Metrique
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4TestIA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test
IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 

Destacado

Plantes tinctoriales medicinal - verville
Plantes tinctoriales   medicinal - vervillePlantes tinctoriales   medicinal - verville
Plantes tinctoriales medicinal - vervilleMunoz Isabelle
 
Accès aux bases de données via jdbc
Accès aux bases de données via jdbcAccès aux bases de données via jdbc
Accès aux bases de données via jdbcRachid Lajouad
 
Programme 2001 Top Croissance
Programme 2001 Top CroissanceProgramme 2001 Top Croissance
Programme 2001 Top Croissanceregionalpartner56
 
inter.art.actuel
inter.art.actuelinter.art.actuel
inter.art.actuelspacebase
 
10 conseils avant de se lancer par Olivier Witmeur
10 conseils avant de se lancer par Olivier Witmeur10 conseils avant de se lancer par Olivier Witmeur
10 conseils avant de se lancer par Olivier WitmeurSolvay Entrepreneurs
 
Amp st louis pag version finale jan11
Amp st louis pag version finale jan11Amp st louis pag version finale jan11
Amp st louis pag version finale jan11kanedimat1980
 
Weekend madrid frances
Weekend madrid francesWeekend madrid frances
Weekend madrid francesRTAdmcSPAIN
 
Plan de la leçon ( phrase déclarative et phrase interrogative)
Plan de la leçon ( phrase déclarative et phrase interrogative)Plan de la leçon ( phrase déclarative et phrase interrogative)
Plan de la leçon ( phrase déclarative et phrase interrogative)ritaestephan
 
Veille livres interactif
Veille livres interactifVeille livres interactif
Veille livres interactifPrunelll
 
Présentation du projet Douzi'Action
Présentation du projet Douzi'ActionPrésentation du projet Douzi'Action
Présentation du projet Douzi'ActionPaul Mariuzzo-Raynaud
 

Destacado (20)

La mesure logicielle
La mesure logicielleLa mesure logicielle
La mesure logicielle
 
Qualite1
Qualite1Qualite1
Qualite1
 
Tableau de bord
Tableau de bordTableau de bord
Tableau de bord
 
Chap1 clientsrvr
Chap1 clientsrvrChap1 clientsrvr
Chap1 clientsrvr
 
Plantes tinctoriales medicinal - verville
Plantes tinctoriales   medicinal - vervillePlantes tinctoriales   medicinal - verville
Plantes tinctoriales medicinal - verville
 
Accès aux bases de données via jdbc
Accès aux bases de données via jdbcAccès aux bases de données via jdbc
Accès aux bases de données via jdbc
 
Chap2 clientsrvr
Chap2 clientsrvrChap2 clientsrvr
Chap2 clientsrvr
 
Programme 2001 Top Croissance
Programme 2001 Top CroissanceProgramme 2001 Top Croissance
Programme 2001 Top Croissance
 
inter.art.actuel
inter.art.actuelinter.art.actuel
inter.art.actuel
 
Accès aux soins et précarité - Concours MNH/IFSI 2007 - 2ème prix
Accès aux soins et précarité - Concours MNH/IFSI 2007 - 2ème prixAccès aux soins et précarité - Concours MNH/IFSI 2007 - 2ème prix
Accès aux soins et précarité - Concours MNH/IFSI 2007 - 2ème prix
 
Logements prfabriqués fr
Logements prfabriqués frLogements prfabriqués fr
Logements prfabriqués fr
 
Atelier débuter sur twitter (2012)
Atelier débuter sur  twitter (2012)Atelier débuter sur  twitter (2012)
Atelier débuter sur twitter (2012)
 
Business plan jau done 03
Business plan jau   done 03Business plan jau   done 03
Business plan jau done 03
 
10 conseils avant de se lancer par Olivier Witmeur
10 conseils avant de se lancer par Olivier Witmeur10 conseils avant de se lancer par Olivier Witmeur
10 conseils avant de se lancer par Olivier Witmeur
 
obsolescence programée
obsolescence programéeobsolescence programée
obsolescence programée
 
Amp st louis pag version finale jan11
Amp st louis pag version finale jan11Amp st louis pag version finale jan11
Amp st louis pag version finale jan11
 
Weekend madrid frances
Weekend madrid francesWeekend madrid frances
Weekend madrid frances
 
Plan de la leçon ( phrase déclarative et phrase interrogative)
Plan de la leçon ( phrase déclarative et phrase interrogative)Plan de la leçon ( phrase déclarative et phrase interrogative)
Plan de la leçon ( phrase déclarative et phrase interrogative)
 
Veille livres interactif
Veille livres interactifVeille livres interactif
Veille livres interactif
 
Présentation du projet Douzi'Action
Présentation du projet Douzi'ActionPrésentation du projet Douzi'Action
Présentation du projet Douzi'Action
 

Similar a Tests unitaires

Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Loic Yon
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfnesrinetaamallah
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésDjamel Zouaoui
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)Pascal Roques
 
Stubs And Moles Dot Net Hub
Stubs And Moles Dot Net HubStubs And Moles Dot Net Hub
Stubs And Moles Dot Net HubDotNetHub
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfadeljaouadi
 
Comment utiliser le plan execution le plan execution
Comment utiliser le plan execution le plan executionComment utiliser le plan execution le plan execution
Comment utiliser le plan execution le plan executionPollus Brodeur
 
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Ossama Benbouidda
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineGeeks Anonymes
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineInterface ULg, LIEGE science park
 

Similar a Tests unitaires (20)

Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdf
 
Part1
Part1Part1
Part1
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
Pres yest
Pres yestPres yest
Pres yest
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
 
Final
FinalFinal
Final
 
Stubs And Moles Dot Net Hub
Stubs And Moles Dot Net HubStubs And Moles Dot Net Hub
Stubs And Moles Dot Net Hub
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
 
algo-imsi-2.pdf
algo-imsi-2.pdfalgo-imsi-2.pdf
algo-imsi-2.pdf
 
JAVA, JDBC et liaison base de données
JAVA, JDBC et liaison base de donnéesJAVA, JDBC et liaison base de données
JAVA, JDBC et liaison base de données
 
Comment utiliser le plan execution le plan execution
Comment utiliser le plan execution le plan executionComment utiliser le plan execution le plan execution
Comment utiliser le plan execution le plan execution
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Cours1.pptx
Cours1.pptxCours1.pptx
Cours1.pptx
 
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 

Más de Rachid Lajouad

Más de Rachid Lajouad (15)

4 representationprocessindustrielslastversion
4 representationprocessindustrielslastversion4 representationprocessindustrielslastversion
4 representationprocessindustrielslastversion
 
3 identification des systèmes
3 identification des systèmes3 identification des systèmes
3 identification des systèmes
 
2 correction des systèmes asservis
2 correction des systèmes asservis2 correction des systèmes asservis
2 correction des systèmes asservis
 
1 asservissements linéaires continus
1 asservissements linéaires continus1 asservissements linéaires continus
1 asservissements linéaires continus
 
Chap4 cliserrmi
Chap4 cliserrmiChap4 cliserrmi
Chap4 cliserrmi
 
Chap3 clientsrvr
Chap3 clientsrvrChap3 clientsrvr
Chap3 clientsrvr
 
Planifier projet
Planifier projetPlanifier projet
Planifier projet
 
Gestion de projet
Gestion de projetGestion de projet
Gestion de projet
 
Structures donneenew
Structures donneenewStructures donneenew
Structures donneenew
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
Algorithmique v
Algorithmique vAlgorithmique v
Algorithmique v
 
Algorithmique iv
Algorithmique ivAlgorithmique iv
Algorithmique iv
 
Algorithmique iii
Algorithmique iiiAlgorithmique iii
Algorithmique iii
 
Algorithmique ii
Algorithmique iiAlgorithmique ii
Algorithmique ii
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 

Último

L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 

Último (16)

L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 

Tests unitaires

  • 3. Tests boîte noire ? • Tests sans la connaissance du code sous jacent • Tests basés sur la spécification Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)3 Unité entrées sorties
  • 4. Tests boîte noire ? Avantages • pas besoin du code source • s'applique aussi bien aux tests unitaires que systèmes Désavantages • ne test pas les fonctions cachées Approches: • Divination d'erreurs (Error guessing) • Partitionnement en Classe d'équivalences • Analyse de Valeurs aux Bornes • Tables de Décision • Graphes Causes Effets • Tests dérivés des exigences (ex: cas d'utilisations) Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)4
  • 5. Divination d'erreurs (1) Approche ad-hoc basée sur l'expérience Approche: • Faire une liste d'erreurs possibles ou situations conduisant à des erreurs • modèle d'erreurs • Développer des cas de tests pour couvrir le modèle d'erreurs Développez et maintenez vos modèles d'erreurs Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)5
  • 6. Divination d'erreurs (2) Exemple fonction de tri de tableau Modèle d'erreur: • tableau vide • tableau trié • tableau trié à l'envers • grand tableau non trié • ... Générer des cas de tests pour ces situations Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)6
  • 7. Partitionnement en Classes d'équivalences Partition du domaine de données en classes d'équivalences selon la spécification Idéalement les CEs devraient être • telles que chaque donnée est dans une classe disjointes • les éléments d'une même classe mis en correspondance avec leur résultats de façon similaire Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)7
  • 8. Heuristiques pour Identification de Classes d'équivalences Pour chaque donnée: • si spécifie un intervalle de valeurs valides, définir • 1 CE valide (dans l'intervalle) • 2 CEs invalides (une à chaque bout de l'intervalle) • si spécifie un nombre (N) de valeurs valides, définir • 1 CE valide • 2 CE invalides (aucune et plus de N) • si spécifie un ensemble de valeurs valides, définir • 1 CE valide (dans l'ensemble) • 1 CE invalide (en dehors de l'ensemble) Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)8
  • 9. Partitionnement en Classes d'équivalences - Exemple (1) • Spécification • données trois entiers (côtés du triangle: a, b, c) • chaque côté doit être un nombre positif inférieur ou égal à 20. • résultat type du triangle: • Équilatéral si a = b = c • Isocèles si 2 paires de côté sont égaux • Scalène si aucun côté n'est égal à l'autre ou • PasUnTriangle si a >= b + c, b >= a + c, ou c >= a + b Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)9
  • 10. Analyse des Valeurs aux Bornes (AVB) • Erreurs ont tendance à survenir vers les valeurs extrêmes (bornes) • AVB améliore le Partitionnement en Classes d'équivalences en • sélectionnant les éléments juste à et autour des bornes de chacune des CES • dérivant des cas de tests en considérant des CEs des résultats également Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)10
  • 11. Conditions de bornes • Situation à la bordure des limites opérationnelles envisagées • Types de données ayant des conditions de bornes • Numérique, Caractère, Position, Quantité, Vitesse, Location, Taille • Caractéristiques de conditions de bornes • Premier/Dernier, Début/Fin, Minimum/Maximum, Audessus/ Audessous, Vide/Plein, Pluslent/ Plusrapide, Plusgrand/ Pluspetit, Plusprochede/ Plusloinde, Pluscourt/ Pluslong, Plustôt/ Plustard, Plushaut/ Plusbas Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)11
  • 12. Analyse des Valeurs aux Bornes - Exemple • Exemples de valeurs aux bornes pour nextdate Lajouad Rachid CQL - BTSDSI Ibn SINA (Kenitra)12 Donnée Valeur borne Mois 0, 1,12,13 Jour 0,1,2,30,31,32 an 1811, 1812, 2013, 2014
  • 14. Tests boîte blanche Approche de tests structurels Focus sur la logique interne du système nécessité du code source spécification nécessaire pour résultats attendus Avantage • test ce qui est là Dé-avantage • fonctionnalité présente dans la spec mais non implémentée peut être manquée
  • 15. Tests boîte blanche ● Approches orientées flotde contrôle – Basées sur l'analysedu flot de contrôle à travers le programme – Exemples de critères de couverture de tests ● couverture d'instructions (tous-les-noeuds) ● couverture debranches (tous-les-liens) ● couverture dechemins (tous-les-chemins) ● couverture deconditions ● ...
  • 16. Processus de test boîte blanche Établir l'objectif de couverture Dériver un flowchart du code source Déterminer des chemins pour objectif de couverture Pour chaque chemin • Sensibiliser les chemins pour les entrées • Utiliser la spécification pour résultats escomptés • Faire attention au chemins impossibles Exécuter les cas de tests Vérifier la couverture
  • 17. Flowchart Simplifié ● Plus pratique pour grandes unités ● Obtenu en groupant des sous-chemins de décision à décision ● Nœuds – Nœuds Décisions: avec plus d'un lien partant ● fini avec une décision – Nœuds Jonctions: avec plus d'un lien entrant ● concentre plusieurs chemins
  • 18. Flowchart Simplifié - exemple fir st firs t A B C D E F G H I J K last L public static void main (String[] args)throws IOException { boolean isATriangle; System.out.print("Enter the sides: "); int a = IOEasy.readInt(); int b = IOEasy.readInt(); int c = IOEasy.readInt(); System.out.println("A is“+a+“,B is“+b+", C is”+c); if ((a < b+c) && (b < a+c) && (c < a+b)) (A) isATriangle = true; (B) else isATriangle = false; (C) if (isATriangle) { (D) if (((a==b) || (a==c) || (b==c)) &&!((a==b) && (a==c))) (E) System.out.println( "Triangle is Isosceles"); (F) if ((a==b) && (b==c)) (G) System.out.println( "Triangle is Equilateral"); (H) if ((a!=b) && (a!=c) && (b!=c)) (I) System.out.println("Triangle is Scalene"); (J) } else System.out.println("Not a Triangle"); (L) } }
  • 19. Meilleur programme Triangle first last B C D E I G F A H public static void main (String[] args) throws IOException{ System.out.print( "Enter the sides: "); int a = IOEasy.readInt(); int b = IOEasy.readInt(); int c = IOEasy.readInt(); System.out.println("A is " + a + ", B is " + b + ", C is " + c); if ((a < b+c) && (b < a+c) && (c < a+b)) { (A) if ((a!=b) && (a!=c) && (b!=c)) { (B) System.out.println(“Triangle is Scalene”); (G) } else { if ((a==b) && (a==c)) (C) System.out.println(“Triangle is Equilateral”); (E) else System.out.println(“Triangle is Isosceles”); (D) } (F) } else System.out.println(“Not a Triangle”); (I) } (H) }
  • 20. Instrumentation de Chemin ●Pour mesurer la couverture de code Code Source Code Source Modifié Trace d'Exécution exécution de suite de tests analyse pour couverture objectif de couverture atteinte ? Approches ● marqueurs de liens ● compteurs de liens ● débogueur symbolique ● outil de couverture de code
  • 21. Couverture de Boucles (1) ● Boucle simple - exécuter la boucle – minimum-1 – minimum – minimum+1 – typique – maximum – maximum+1 ● fois si possible. examp1(char[] val) { for(int i=0;i<val.length;i++){ ... } } examp2(int x, int y) { i = x; while (i <= y) { ... i++; } }
  • 22. Couverture de Boucles (2) ● Boucles imbriquées – Commencer avec la boucle la plus interne ● Mettre toutes les boucles à l'extérieur à leur valeur minimum ● Mettre toutes les autres boucles à une valeur typique ● Tester minimum, minimum+1, typique, maximum-1, maximum – Remonter à la boucle au dessus et répéter – Si la boucle plus extérieure est faite, effectuer les 5 cas pour toutes les boucles simultanément for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { for (k = 0; k < z; k++){ } } }
  • 23. Tests Flots de Donnés ● Tests basés sur les flots de donnés – où les données sont définies – où les données sont modifiées – séquence d'événements liés aux données