Tests et Validation du logiciel

Slides:



Advertisements
Présentations similaires
Tests et Validation du logiciel
Advertisements

Tests et Validation du logiciel 02/2007 – 06/2007.
Tests et Validation du logiciel
Customer Services Yves Morganti
Algorithmes et structures de données 9ème cours Patrick Reuter maître de conférences
Algorithmes et structures de données 7ème cours
Interactivé: L'Action Script.
Sensibilisation à l’Algorithmique
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
26/05/071 Présentation de JUnit Partie 2 NICOLAS BOUSSEKEYT CNAM
Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.
Automatisation Plan: Avantages et Inconvénients
Tests et Validation du logiciel
Tests et Validation du logiciel
Tests et Validation du logiciel
Algorithmique -les fichiers-
CPI/BTS 2 Programmation Web Introduction au PHP
Méthodes symboliques pour la génération de tests de systèmes réactifs comportant des données Eléna Zinovieva Leroux novembre 2004 Membres du jury:
Cours #8 Flot de conception d’un circuit numérique
TP : Fichiers et Tableaux Séance N°2 Avril Application de Gestion de stock Partie 1 : les fichiers 1 Création dun fichier de 20 articles.
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
TP Enregistrements Avril Un enregistrement permet de regrouper des éléments ayant des types différents au sein dune même structure de données (chose.
LES SOUS-PROGRAMMES USTL Licence S.T.A. S3 A.P.I.2.
E. André, E. Encrenaz, L. Fribourg
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Notion de défaut Événement qui modifie fonctionnement procédé de sorte que performances dégradées ou objectif pas atteint Exemples Dérive de capteur Fuite.
Mesures de performance organisationnelle Cours ICO 810 Professeur: Michel Pérusse Hiver 2005 Session 9.
CSI2520, Hiver 2007 Le langage Pascal Un langage de programmation Impérative.
CSI2520 Représentation: g([Noeud,...],[arc(Noeud1,Noeud2,Valeur),...]). arc(g(Ns,Arcs),N1,N2,Valeur):- member(arc(N1,N2,Valeur),Arcs). % pour un graphe.
Environnements d'exécution
Ift 2251 Introduction au Génie Logiciel
CSI 1502 Principes fondamentaux de conception de logiciels
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Modélisation VHDL du chemin des données d’un processeur à usage général Sujets de ce thème
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Vers une meilleure transparence des compétences linguistiques professionnelles en Europe Towards a better transparency of vocational language skills in.
Test de logiciels Chapitre 14 LFI2. Test de Logiciels Trois familles de techniques pour gerer les fautes  Eviter  Enlever  Tolerer Test de logiciels:
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
CSI2520  Cette fonction permet d’attribuer une valeur à une variable (set! nombre (+ 3 4)) (set! nombre (+ 1 nombre)) En SCHEME, les fonctions dont le.
Algorithmes de tri et de recherche
Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications Chapitre 7.
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Le Test des logiciels Ifsic 1  Yves Le Traon 2002 Le Diagnostic Yves Le Traon.
Exemple à faire: N°2 Ecrire l’Algorithme et le Programme PASCAL qui affiche la somme de deux nombres entiers donnés.
1 JEUX DE TESTS la méthode générale modèle de données critères fonctionnels d’extractions jeux de données jeux de données avant tests sélection exécution.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Architecture et technologie des ordinateurs II
Cours LCS N°4 Présenté par Mr: LALLALI
COMPRENDRE : Lois et modèles Chapitre 7 : Travail et énergie.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Les bases de l’algorithmique
Test.
Scan-Chain Attack.
27/03/2001InfoBase: Techniques de Test1 Informatique de Base (4) Techniques de Tests.
Algorithmique Algorithmique  Pascal
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
INFSO-RI Enabling Grids for E-sciencE NA4 test Eric Fede on behalf of the team.
Test.
Test.
SYSTEM PROGRAM.
test
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
TEST.
Vidéoconférence Rouen - Cluj 2011
6.5 Forces Q 6.5 Forces Q.
Type Tableau Partie 1 : Vecteurs
Test test.
Transcription de la présentation:

Tests et Validation du logiciel 02/2007 – 06/2007

Couverture de flot de contrôle Inconvénients tous-les-chemins-indépendants La modification du flot d’un décision ne génère pas forcément un chemin indépendant Démarche vectorielle. Un « bug » sur un chemin complexe ne sera pas forcément décelé. Un chemin est une combinaison de chemins de base. Couvrir tous les chemins de base, ne signifie pas couvrir tous les chemins.

Couverture de flot de contrôle Exemple : P recherche d’une valeur dans un tableau à 2 valeurs program p (input, output) ; var a : array[1..2] of integer; E, i : integer; begin read(i, E, a[1], a[2]); found:= false; while i <= 2 do if (a[i] = E) then found:= true; else found:= false; i := i + 1; end; writeln(found); Appliquez la démarche

Couverture de flot de contrôle A DT au hasard DT1={i=3} C1=[u1,u2] Modification du sens de 2 DT2={i=1,E=10,a[1]=20, a[2]=10} C2=[u1,u3,u4,u6,u8,u3,u5,u7,u8,u2] Modification du sens de 3 DT3={i=1,E=10,a[1]=1à,a[2]=20} C3=[u1,u3,u5,u7,u8,u3,u4,u6,u8,u2] C2 et C3 ne sont pas indépendant car ils acceptent le même vecteur V=[1,1,2,1,1,1,1,2] C2 et C3 différents mais passent par les mêmes arcs le même nombre de fois.  exclusion de DT3

Couverture de flot de contrôle L’ajout de DT aurait permis de trouver d’autres chemins indépendants : DT4={i=1,E=10,a[1]=10,a[2]=10} DT5={i=1,E=10,a[1]=20,a[2]=30} Constat sur les résultats Seul C3 pouvait mettre en évidence le bug, cependant on l’a exclus car elle n’apportait pas de nouveau chemin indépendant

Couverture de flot de contrôle Couverture des PLCS (Portion Linéaire de Code Suivie d’un Saut) Objectif : augmenter le nombre de chemins pour accroître les possibilités de détection d’erreurs

Couverture de flot de contrôle On considère, dans le graphe de flot de contrôle, 2 type de noeuds l’entrée et la sortie et les noeuds qui constituent l’arrivée d’un branchement : type (a) les autres noeuds : type (b). On considère, dans le graphe de flot de contrôle, 2 type d’arcs Ceux qui constituent un saut Les autres noeud On appelle PLCS un chemin partant d’un noeud de type (a) et aboutissant à nouveau à un noeud de type (a); l’avant dernier et le dernier noeud doivent constituer le seul saut du chemin.

Couverture de flot de contrôle Exemple 005 INPUT A, C 010 B = 2 * A 020 A = A + 1 030 IF A < 0 THEN GOTO 60 040 B = -A 050 PRINT A + B 060 IF B = 2 * C THEN GOTO 80 070 A = 1 : GOTO 90 080 A = -2 : GOTO 20 090 PRINT A 100 END

Couverture de flot de contrôle Rappel : On appelle PLCS un chemin partant d’un noeud de type (a) et aboutissant à nouveau à un noeud de type (a); l’avant dernier et le dernier noeud doivent constituer le seul saut du chemin. Exemple : [K20,K30,K40,K60,K80] est un PLCS [K60,K80,K20] n’est pas PLCS (2 sauts)

Couverture de flot de contrôle PLCS : [K5, K20, K30, K60] [K5, K20, K30, K40, K60, K80] [K5, K20, K30, K40, K60, K70, K90] [K20, K30, K60] [K20, K30, K40, K60, K80] [K20, K30, K40, K60, K70, K90] [K60, K80] [K60, K70, K90] [K80, K20] [K90, K100]

Couverture de flot de contrôle Critère de couverture : TER3 = PLCS couvertes / Total des PLCS TER3=1TER2=1TER1=1 Autres critères de type PLCS TER4=Chemins composés de 2 PLCS / Total des chemins composés de 2 PLCS TER5 =Chemins composés de 3 PLCS / Total des chemins composés de 3 PLCS

Couverture de flot de contrôle Couverture des chemins limites et intérieurs Les chemins limites traversent la boucle mais ne l’itèrent pas Les chemins intérieurs itèrent la boucle une seule fois

Couverture de flot de contrôle Couverture des chemins limites et intérieurs Les chemins limites traversent la boucle mais ne l’itèrent pas Les chemins intérieurs itèrent la boucle une seule fois

Couverture de flot de contrôle Chemin limite G1 [1,2,3] Chemin intérieur G1 [1,2,1,2,3] G2 [1,2,4,2,3] Pour satisfaire ce critère de couverture, il faut couvrir tous les chemins intérieurs et limites de chaque boucle

Couverture de flot de contrôle Chemins limites : [1,2,3,5,6] [1,2,4,5,6] Chemins intérieurs : [1,2,3,5,2,3,5,6] [1,2,3,5,2,4,5,6] [1,2,4,5,2,3,5,6] [1,2,4,5,2,4,5,6]

Couverture de flot de contrôle Puissance de cette couverture si on ajoute des chemins qui exécutent 2 fois (ou n fois) la boucle

Couverture de flot de contrôle Le critère MCDC (Modified Condition Decision Coverage) Norme DO178B Pour remplir ce critère il faut satisfaire les contraintes suivantes : Chaque condition doit avoir été au moins une fois Vrai et une fois Fausse La décision doit avoir été au moins une fois Vraie et une fois Fausse Chaque condition seule influe sur le résultat de la décision

Couverture de flot de contrôle Exemple : If ((c1 and c2) or (c3 and c4)) and c5 then Vrai/Faux 2 DTs suffisent au test VRAI : DT1={c1=vrai, c2=vrai, c5=vrai} FAUX : DT2={c5=false} Test exhaustif : 32 combinaisons

Couverture de flot de contrôle Conditions Décision DT c1 c2 c3 c4 C5 ((c1 and c2…. 1 F T 2 3 4 5 6 7