[PDF] TD 5 : Chaînes de caractères - Cedric/CNAM
"espace" présents dans la chaîne s Utilisez la fonction char ?strchr(const char ?s int c) qui renvoie l'adresse de la première occurrence du caractère
[PDF] TD 5 : Chaînes de caractères - Cedric/CNAM
Utilisez la fonction char ?strchr(const char ?s int c) qui renvoie l'adresse de la première occurrence du caractère c dans la chaîne s en partant du début de
[PDF] TP 1 : tableaux et pointeurs - Cedric/CNAM
terminal les chaînes de caractères du tableau tab séparées par des espaces Exercice 2 Écrire une fonction void echange_mot(int i int j char** tab) qui
[PDF] TP7 : Fichiers - Cedric/CNAM
par la chaine "w" et le mode «lecture» dénommé par la chaine "r" Ainsi les lignes : FILE ? f1 ; Exercice 5 Faites un programme qui prend en argument
[PDF] TD 4 : Pointeurs et structures - Cedric/CNAM
Si ce caractère n'apparaît pas dans la chaîne la fonction devra renvoyer NULL Exercice 2 À l'aide de la fonction précédente écrire une fonction int compte (
[PDF] TD 4 : Pointeurs et structures - Cedric/CNAM
TD 4 : Pointeurs et structures Semaine du 18 février 2008 1 Chaînes de caractères ? Exercice 1 char ? recherche (char ?s char c) { i f (s !=
[PDF] Fichiers Base de données et php - Cedric/CNAM
23 mar 2009 · 5 Cnam S5 2009 NFA017 autres outils de base fgetc ($descripteur) est utilisé pour lire les caractères dans un
[PDF] PHP Les bases - Cedric/CNAM
sont remplacés par la chaîne de caractères xx où xx représente le code ASCII du caractère 5 Cnam 2011 v1 5 PHP CGI : Que doit faire le script? (1)
[PDF] Habilitation à Diriger des Recherches - Cedric/CNAM
5 Construire une relaxation semidéfinie en utilisant une approche lagrangienne 41 Son large spectre d'application son caractère générique
[PDF] Test et Validation du Logiciel Test Structurel - Cedric/CNAM
S Taktak Test et Validation du Logiciel Test Structurel 5/114 Soit un alphabet {ABC} et S une chaîne de 2 caractères sur cet alphabet
![[PDF] Test et Validation du Logiciel Test Structurel - Cedric/CNAM [PDF] Test et Validation du Logiciel Test Structurel - Cedric/CNAM](https://pdfprof.com/Listes/16/36831-16teststructurel.pdf.pdf.jpg)
Test et Validation du Logiciel
Test Structurel
Sami Taktak
sami.taktak@cnam.fr Centre d"Étude et De Recherche en Informatique et CommunicationsConservatoire National des Arts et Métiers
Test Structurel ou Test boîte blanche
Utilise la structure pour dériver des cas de tests Au niveau unitaire : utilise le code (instructions, conditions, branchement)Au niveau intégration : utilise le graphe d"appel entre modulesAu niveau système : utilise les menus, les processus Complète les tests boîte noire en étudiant la réalisation (et non la spécification)Est associée à des critères de couvertureCouverture de toutes les instructions
Couverture de toutes les conditions
Couverture de toutes les utilisations d"une variable S. TaktakTest et Validation du Logiciel Test Structurel2/114Méthodes de Test Structurel
2 méthodes utilisées :
Dérivation de jeux de tests à partir du graphe de contrôle :Suit l"enchaînement des opérations qui sont représentées par un grapheCherche à couvrir toutes les instructions, tous les cheminsDérivation de jeux de tests à partir du flot de données Suit la vie des variables au cours de l"exécution duprogramme : définition, utilisation, destructionCherche à couvrir toutes les affectations, toutes les
utilisations S. TaktakTest et Validation du Logiciel Test Structurel3/114Test à Partir du Graphe de Contrôle
Technique de test structurel la plus ancienne
Technique de base pour beaucoup d"autres tests
Détaillée et complexe
Utilisée principalement pour les tests unitaires et les tests de composantsBasée sur les chemins d"exécutions Différents types de couverture peuvent être visés S. TaktakTest et Validation du Logiciel Test Structurel4/114Graphe de Contrôle
Un graphe de contrôle est constitué d"arcs et de sommets Chaque arc représenteune ou plusieursinstructionsChaque sommet représente : Soit un départ conditionnel (sur 2 branches ou plus)Soit la jonction de branches incidentes
Un graphe de contrôle permet de construire les chemins Un chemin est une suite d"arcs reliant un point d"entrée du programme à un point de sortieIl y peut y avoirbeaucoupde chemins possibles et certains chemins impossibles S. TaktakTest et Validation du Logiciel Test Structurel5/114Exemple de Graphe de Contrôle
Calcul du PGCD de 2 entiers
Pré-condition:petqentiers naturels positifs
PGCD(p,q):
1:read(p,q)
2:whilep?=qdo
3:ifp>qthen
4:p=p-q
5:else
6:q=q-p
7:end if
8:end while
9:returnpEntrée
read while if thenelse end ifreturnObjectifs de Couverture
On définit plusieurs niveaux (objectifs) de couverture C0 : tester toutes les instructions (noeuds"fonction») au moins une foisC1 : tester toutes les décisions possibles au moins une fois (ou toutes les branches)C-i : tester toutes les branches (C1) mais en passant ifois dans chaque boucle : (i- chemins)C∞: tester tous les chemins possiblesC∞est virtuellement impossibleC1 et C0 sont différents
En pratique, le test d"un programme consiste à satisfaireC0 et C1
S. TaktakTest et Validation du Logiciel Test Structurel7/114Exemples de séquences
S. TaktakTest et Validation du Logiciel Test Structurel8/114Entrée read while if thenelse end ifreturn (Entrée, read, while, if, then , return, Sortie) (Entrée, read, while, if, else , return, Sortie)Toutes les décisions (C1) : idem + (Entrée, read, while, return, Sortie)Exemples de séquences
S. TaktakTest et Validation du Logiciel Test Structurel9/114Entrée read while if thenelse end ifreturn (Entrée, read, while, if, then , return, Sortie) (Entrée, read, while, if, else , return, Sortie) (Entrée, read, while, return, Sortie) (Entrée, read, while, if, then , while, if, then return, Sortie) (Entrée, read, while, if, then , while, if, else return, Sortie) (Entrée, read, while, if, else , while, if, the n return, Sortie) (Entrée, read, while, if, else , while, if, e lse return, Sortie)Graphe de Contrôle
Graphe orienté et connexe(N,A,E,S)oùN: ens. de sommets = bloc d"instructions exécutés en séquenceA: relation de N x N =branchement possible du flot de contrôleE: sommet"d"entrée»du programmeS: sommet"de sortie»du programmeS. TaktakTest et Validation du Logiciel Test Structurel10/114
Couverture deTous-Les-Noeuds
(ouToutes-Les-Instructions)Critère atteint lorsque tous les noeuds du graphe de contrôle sont parcourusTaux de couverture : nb de noeuds couvertsnb total de noeuds Exigence minimale pour la certification en aéronautique (norme RTCA/DO-178B ou EUROCAE ED-12B)Qualification niveau C : Un défaut peut provoquer un problème sérieux entraînant un dysfonctionnement des équipements vitaux de l"appareil S. TaktakTest et Validation du Logiciel Test Structurel11/114Couverture deTous-Les-Noeuds
(ouToutes-Les-Instructions)sum (x,y: entier):1:ifx = 0then
2:sum := x;
3:else
4:sum := x + y;
5:end if
6:returnsum;
?L"erreur détectée par exécution du chemin(E,1,2,6,S)S. TaktakTest et Validation du Logiciel Test Structurel12/114Entrée
1 246
Sortiex=0x?=0
Limites du CritèreTous-Les-Noeuds1:read(x);
2:ifx?=0then
3:x:= 1;
4:end if
5:y:= 1/x;Critèretous-les-noeudssatisfait par le
chemin(E,1,2,3,5,S)Mais la division par zéro n"est pas détectée! S. TaktakTest et Validation du Logiciel Test Structurel13/114Entrée 1 2 3 5Sortiex?=0x=0
Couverture deToutes-Les-Décisions
ouToutes-Les-ArcsPour chaque décision, un test rend la décision vrai, un test rend la décision fausseTaux de couverture : nb des arcs couvertsnb total des arcs Couverture de tous les arcs?Couverture de toutes lesvaleurs de vérité pour chaque noeud de décisionNorme DO 178B, qualification des systèmes embarqués
au niveau B : un défaut peut provoquer un problème majeur entraînant des dégâts sérieux critèretous-les-arcsest totalement réalisé ?critèretous-les-noeudsest satisfaitS. TaktakTest et Validation du Logiciel Test Structurel14/114 Limites des CritèresToutes-les-DécisionsF (a,b: entier):1:ifa?=0?a=bthen
2:x := 1 / a;
3:else
4:x := 0;
5:end if
6:returnx;CritèreToutes-les-Décisionssatisfait avec{a=0,b=1}
et{a=2,b=1}Division par zéro non détectée lorsque{a=0,b=0}S. TaktakTest et Validation du Logiciel Test Structurel15/114Entrée
1 246
Sortiea?=0?a=ba=0?a?=b
Limites des CritèresToutes-les-DécisionsDécomposer les conditionnelles dans le graphe de contrôleCritèreToutes-les-Décisionsn"est plus satisfait avec{a=0,b=1}et satisfait avec{a=0,b=1}, {a=2,b=1},{a=2,b=2} et{a=0,b=0}S. TaktakTest et Validation du Logiciel Test Structurel16/114Entrée 1 1a1b 246
Sortiea?=0a=0a=ba?=ba=ba?=b
CouvertureToutes-les-ConditionsMultiplesCritère decondition multiplesatisfait si :Critèretous-les-arcssatisfaitDans chaque expression, les conditions prennent toutes
les combinaisons de valeurs possiblesSiA?BAlors... nécessite :A = B = vraiA = B = faux
A = vrai, B = faux
A = faux, B = faux
?Problème de combinatoire : nombre de cas de test exponentielle en fonction du nombre de conditions S. TaktakTest et Validation du Logiciel Test Structurel17/114CouvertureToutes-les-Conditions - Décisions
Modifié (MC/DC)Objectif : améliorer les critères de couverture basés sur lesdécisions tout en contrôlant la combinatoireCertification des logiciels pour l"avionique au niveau A :
Situation catastrophiques encoures en cas d"erreurs dulogicielCritère MC/DC :Modified Condition/Decision CoveragePour réduire la combinatoire : on ne s"intéresse à un jeu
de tests faisant varier une condition que s"il influe sur la décision S. TaktakTest et Validation du Logiciel Test Structurel18/114CouvertureToutes-les-Conditions - Décisions
Modifié (MC/DC)Démontrer l"action de chaque condition sur la valeur de vérité de la décision : if ( A && (B || C )) Principe : pour chaque condition, trouvez 2 cas de test qui changent Dec lorsque toutes les autres conditions sont fixéesExemple pourA:A=0, B=1,C=1 - Dec=0
A=1, B=1,C=1 - Dec=1
S. TaktakTest et Validation du Logiciel Test Structurel19/114CouvertureToutes-les-Conditions - Décisions
Modifié (MC/DC)Démontrer l"action de chaque condition sur la valeur de vérité de la décision : if ( A && (B || C ))pourA:A=0, B=1,C=1 - Dec=0A=1, B=1,C=1 - Dec=1
pourB:A=1, B=1,C=0 - Dec=1A=1, B=0,C=0 - Dec=0
pourC:A=1, B=0,C=1 - Dec=1 A=1,B=0,C=0-Dec=0?déjà couvertS. TaktakTest et Validation du Logiciel Test Structurel20/114Limites des CritèresToutes-les-Conditions -
DécisionsProgramme calculant l"inverse de la somme des entiers d"un tableau :1:Input :inf, sup, a[];
2:i := inf;
3:sum := 0;
5:sum := sum + a[i];
6:i := i+1;
7:end while
8:return1/sum;S. TaktakTest et Validation du Logiciel Test Structurel21/114Entrée
2-3 48Limites des CritèresToutes-les-Conditions -
Décisions
S. TaktakTest et Validation du Logiciel Test Structurel22/1141:Input :inf, sup, a[]; 2: i := inf ; 3: sum := 0 ; 5: sum := sum + a[i] ; 6: i := i+1 ;7:end while
8:return1/sum;{a= [23,45,65],inf=1,sup=3}
couvre le critèretoutes-les-conditionsProblème non détecté : siinf>superreur sur 1/sumEntrée 2-3 48Couverture deTous-Les-CheminsCritèretous-les-chemins: parcourir tous les arcs dans chaque configuration possible (et non pas au moins une
fois comme dans le critère tous-les-décisions)Si critèretous-les-cheminssatisfait :Critèretous-les-décisionssatisfaitCritèretous-les-noeudssatisfaitMais impraticable car la présence d"une boucle produit un
nombre infini de cheminsOn se limite aux chemins qui passent de 0 fois àifois dans la boucle : lesi-cheminsS. TaktakTest et Validation du Logiciel Test Structurel23/114 CouvertureTous-Les-i-CheminsF (T: tableau d"entiers, X: entier) 1: i := 1 ; 3: i := i+1 ;4:end while
5:returnT[i];Ttrié par ordre croissantFretourne la plus petite valeur deT
strictement supérieur àXRésultat faux si toutes les valeurs sont plus petites ou plus grandes queXS. TaktakTest et Validation du Logiciel Test Structurel24/114Entrée 1 2 3 5 CouvertureTous-Les-i-CheminsLe critèretous-les-i-cheminsimpose de passer de zéro ài fois dans la bouclePermet de détecter les erreurs liées aux problèmes desboucles dans lesquelles ont ne rentre pasEn pratique, on utilise des valeurs 1 et 2 pouriS. TaktakTest et Validation du Logiciel Test Structurel25/114
Chemin Infaisable
Chemin : Choix d"un ensemble de décision sur le graphe de contrôleExécution : Chemin dont les conditions des décisions peuvent être satisfaitesS"il n"existe pas de valeur d"entrée pour satisfaire les conditions?chemin infaisablePas de test possible pour couvrir un chemin infaisable Existence de chemins infaisables : problème indécidable Mais il est possible de calculer les conditions sur un chemin donné pour qu"il soit faisable S. TaktakTest et Validation du Logiciel Test Structurel26/114Exemple de Chemin Infaisable
S. TaktakTest et Validation du Logiciel Test Structurel27/114Tous les chemins : (Entrée, 1, 2, 6, 7, 11, Sortie) (Entrée, 1, 4, 6, 9, 11, Sortie) (Entrée, 1, 2, 6, 9, 11, Sortie) (Entrée, 1, 4, 6, 7, 11, Sortie)Sont-ils tous faisables?Entrée
1 246 79
11
Sortiex:=0y:=10/xx=0x?=0
Exemple de Chemin Infaisable
S. TaktakTest et Validation du Logiciel Test Structurel28/114Tous les chemins : (Entrée, 1, 2, 6, 7, 11, Sortie)quotesdbs_dbs29.pdfusesText_35[PDF] fiche exo chap1 corrige
[PDF] Exercices d 'électromagnétisme
[PDF] limites et continuité - Philippe DEPRESLE
[PDF] trigonometrie - exercices corriges - Free
[PDF] Polycopié de cours et d exercices dirigés 1ère partie
[PDF] 1 Logique des propositions - Ensiie
[PDF] Corrigés - La Chaire EPPP
[PDF] MANAGEMENT De la QUALITE TOTAL - Jamiati
[PDF] MANAGEMENT De la QUALITE TOTAL - Jamiati
[PDF] Martingales et calcul stochastique - Cel - Hal
[PDF] fiche d 'exercices n°2 : correction - Math93
[PDF] Corrigés des exercices - Académie en ligne
[PDF] MECANIQUE DES FLUIDES Cours et exercices corrigés - UVT e-doc
[PDF] exercices de mesures et instrumentaion avec quelques corriges 1