[PDF] [PDF] Test et Validation du Logiciel Test Structurel - Cedric/CNAM





Previous PDF Next PDF



[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

Test et Validation du Logiciel

Test Structurel

Sami Taktak

sami.taktak@cnam.fr Centre d"Étude et De Recherche en Informatique et Communications

Conservatoire 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 couverture

Couverture 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/114

Mé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 du

programme : définition, utilisation, destructionCherche à couvrir toutes les affectations, toutes les

utilisations S. TaktakTest et Validation du Logiciel Test Structurel3/114

Test à 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/114

Graphe 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/114

Exemple 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 ifreturn

Objectifs 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 i

fois 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 à satisfaire

C0 et C1

S. TaktakTest et Validation du Logiciel Test Structurel7/114

Exemples 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/114

Couverture 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 24
6

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 5

Sortiex?=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 les

valeurs 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 24
6

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 24
6

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 = vrai

A = 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/114

CouvertureToutes-les-Conditions - Décisions

Modifié (MC/DC)Objectif : améliorer les critères de couverture basés sur les

décisions tout en contrôlant la combinatoireCertification des logiciels pour l"avionique au niveau A :

Situation catastrophiques encoures en cas d"erreurs du

logicielCritè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/114

CouvertureToutes-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ées

Exemple 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/114

CouvertureToutes-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=0

A=1, B=1,C=1 - Dec=1

pourB:A=1, B=1,C=0 - Dec=1

A=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/114

Limites 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 48

Limites 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 48
Couverture 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 des

boucles 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/114

Exemple 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 24
6 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] Tableaux et pointeurs (corrigé) 1 Tableaux

[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