Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.

Slides:



Advertisements
Présentations similaires
Mustapha EL FEDDI Tests Mustapha EL FEDDI
Advertisements

La Méthode de Simplexe Standardisation
LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Tests et Validation du logiciel
Tests et Validation du logiciel
Fabrice Lauri, François Charpillet, Daniel Szer
AUTRES ASPECTS DU GPS Partie I : tolérance de Battement
Système “Multi Règles” de Westgard
L'installation et la diffusion 1 LInstallation et la Diffusion.
La Recette La recette.
La Gestion de la Configuration
Les Evolutions et la Maintenance
Présenté à Par. 2 3Termes et définitions 3.7 compétence aptitude à mettre en pratique des connaissances et un savoir-faire pour obtenir les résultats.
Calculs de complexité d'algorithmes
Test statistique : principe
Tolérance aux défaillances de logiciel
Organiser des Tests dans un projet
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Systèmes Experts implémentation en Prolog
et évaluation des compétences
Tests et Validation du logiciel
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Améliorer les performances du chiffrage à flot SYND
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
La revue de projet.
Cours Qualité et Tests Chapitre 3 : Tests
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Utilisation de MS Project 2007
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Les structures de données arborescentes
Rappel au Code de sécurité des travaux 1 Code de sécurité des travaux Rappel du personnel initié Chapitre Lignes de Transport (Aériennes)
Sésame Conseils Bon sens et compétences
1.2 COMPOSANTES DES VECTEURS
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
Configuration de Windows Server 2008 Active Directory
Algorithmique et Programmation
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.
Techniques de test Boulanger Jean-Louis.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Courbes de Bézier.
Corrélation Principe fondamental d’une analyse de corrélation
1.1 LES VECTEURS GÉOMÉTRIQUES
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
TOLÉRANCEMENT GÉOMÉTRIQUE
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI Jean-Jacques DUMÉRY -1-
Atelier de formation : MAT optimisation II (les graphes).
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Introduction Un test sur les tests Ce que n’est pas le test
Test logiciel Xavier Baril.
1 - Programme de Seconde (juin 2009) Statistique et probabilités
1. Présentation générale du système
1. Présentation générale du système
LES PILES ET FILES.
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Supports de formation au SQ Unifié
Université de Sherbrooke
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
GOUVERNANCE ET DEMARCHE QUALITE
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
VALIDATION VÉRIFICATION & TESTS
Initiation à la conception des systèmes d'informations
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
MOCK.
Document de spécification d’exigences Normes IEEE et 29148:2011
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Transcription de la présentation:

Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

Le test en génénal : Plan  Terminologie liée au test  Objectifs du test  Le test dans le cycle de vie du logiciel  Qualité du test  Coût du test  Classifications des méthodes de tests  Conclusion GLG101 JUIN 2007

Faute : ERREUR, IEEE 729: IEEE 729:  La cause d’une erreur.  ERREUR, IEEE 729: Un écart entre une valeur ou condition calculée, observée ou mesurée et la valeur ou condition qui est vraie, spécifiée ou théoriquement correcte.  Défaut, anomalie (fault, bug), IEEE 729: La manifestation d'une erreur dans un logiciel. Un défaut peut causer une panne.  Panne (failure) , IEEE 729: La fin de la capacité d'un système ou d'un de ses composants d'effectuer la fonction requise, ou de l'effectuer à l'intérieur de limites spécifiées. Faute Erreur Défaut Panne

Faute (suite)

Terminologie liée au test (suite) SPECIFICATION, ISO 8402: Document qui prescrit les exigences auxquelles le Produit ou le service doit se conformer. SATISFACTION Un programme satisfait sa spécification lorsqu’il est en tout point conforme aux exigences de celle-ci. VALIDATION ou VERIFICATION, ISO 9000-3: Processus d'évaluation du logiciel pour s‘assurer qu’il satisfait aux exigences spécifiées. La validation ou vérification d'un produit cherche à s'assurer qu'on a construit le bon produit (d’un point de vue externe ou interne). Le test est un cas particulier de vérification.

Objectifs du test  Définition (norme IEEE 729): .  Le test est un processus manuel ou automatique, qui vise à établir qu’un système vérifie les propriétés exigées par sa spécification, ou à détecter des différences entre les résultats engendrés par le système et ceux qui sont attendus par la spécification .  Le test vise à mettre en évidence les erreurs d’un logiciel.  Le test n’a pas pour objectif de diagnostiquer la cause des erreurs.  Le test n’a pas pour objectif de corriger les fautes.  Le test n’a pas pour objectif de prouver la correction d’un programme.

Qualité du test L’efficacité du test (son aptitude à détecter des erreurs) doit être conforme à certains critères de qualité. Le niveau de qualité requis dépend du contexte d’utilisation du logiciel: plus le contexte est critique, plus l’effort de tests doit être important. La programmation d’un logiciel aérospatial requiert des exigences de qualité supérieures à la programmation d’un éditeur de dessins techniques. QUALITE, ISO 8402: Ensemble des propriétés et caractéristiques d'un produit ou service qui lui confèrent l'aptitude à satisfaire des besoins exprimés ou implicites.

Coût du test : un coût important

Classifications des méthodes de tests  Classification selon les phases du cycle de vie  Les méthodes de tests statiques  Les méthodes de tests dynamiques

Classifications selon les phases du cycle de vie Niveau d’abstraction

Classification selon les phases du cycle de vie (suite) TEST UNITAIRE : Test d'un programme ou d'un module isolé dans le but de s'assurer qu’il ne comporte pas d'erreur d'analyse ou de programmation. TEST D’INTEGRATION, IEEE 729: Une progression ordonnée de tests dans laquelle des éléments logiciels et matériels sont assemblés ex testés jusqu'à ce que l’ensemble du système soit testé. TEST DE RECEPTION, ISO/IEC 2382-20: Test, généralement effectué par l'acquéreur dans ses locaux après installation d'un système ou d'une unité fonctionnelle, avec la participation du fournisseur, pour vérifier que les dispositions contractuelles sont bien respectées. TEST DE REGRESSION : A la suite de la modification d'un logiciel (ou d'un de ses constituants), un test de régression a pour but de montrer que les autres parties du logiciel n’ont pas été affectées par cette modification.

Méthodes de tests statiques Les méthodes de test statiques consistent en l’analyse textuelle du code du logiciel afin d’y détecter des erreurs, sans exécution du programme.

Méthodes de tests statiques (suite) Analyse du graphe de contrôle - Exemple Le graphe de contrôle est généralement dérivé de l’organigramme du programme. Procedure Signe(a: IN OUT int; s: OUT string) IS Begin s := "nul"; IF (a>0) THEN s := "positif"; a := a+1; END IF; IF (a<0) THEN s := "negatif"; a := a-1; END IF; END Signe;

Méthodes de tests statiques (suite) Organigramme: Graphe de contrôle: s := “nul” A A Y a > 0 B C s := “positif” c N a := a + 1 D d Y E a < 0 F s := negatif F N F IN a := a - 1 Analyser le graphe de contrôle du programme peut révéler des erreurs (exemples: sauts anormaux, code inutilisé...).

Méthodes de tests statiques (suite)  Avantages:  Méthodes efficaces et peu coûteuses.  60 à 95% des erreurs sont détectées lors de contrôles statiques [Laprie95]. des méthodes de tests statiques sont nécessaires .  Inconvénients:  Méthodes ne permettant pas de valider le comportement d’un programme au cours de son exécution.  Lors d’une modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version. Les méthodes de tests statiques ne sont pas suffisantes .

Méthodes de tests dynamiques

Méthodes de tests dynamiques (suite)  Pour expliquer le mécanisme des méthodes de tests dynamiques, il faut encore répondre aux questions:  “Comment choisir le jeu de tests?”  “Comment décider du succès ou de l’échec d’un jeu de tests?”  “A partir de quel moment peut-on estimer que le programme n’a plus besoin d’être testé?”

Comment choisir le jeu de tests?  Méthodes aléatoires  Le jeu de tests est sélectionné au hasard sur le domaine des entrées du programme.  Le domaine des entrées du programme est déterminé à l’aide de l’interface de la spécification ou de l’interface du programme.  Inconvénient: Ces méthodes ne garantissent pas une bonne couverture de l’ensemble des entrées du programme. En particulier, elles peuvent ne pas prendre en compte certains cas limites ou exceptionnels. Ces méthodes ont donc une efficacité très variable.

Comment choisir le jeu de tests? (suite) Méthodes structurelles (Boîte Blanche)  Le critère de sélection du jeu de tests repose sur le code du programme.  Le jeu de tests est choisi de manière à remplir certaines exigences:  Couverture de toutes les instructions.  Couverture de tous les chemins exécutables.  Couverture de toutes les conditions.  Afin d’augmenter la qualité d’un test de couverture, on peut sélectionner plusieurs tests par sous-domaine à l’aide d’une loi de distribution.  On parle alors de méthode statistique structurelle .

Comment choisir le jeu de tests? (suite) Méthodes structurelles (Boîte Blanche)

Comment choisir le jeu de tests? (suite) Méthodes structurelles - Exercice Procedure Bidon(A,B:IN int;X:IN OUT int) IS Begin IF (A>1 AND B=0) THEN X := X/A; END IF; IF (A=2 OR X>1) THEN X := X+1; END IF ; END Bidon; Trouver des jeux de tests pour la couverture: 1- des instructions, x- des chemins exécutables, 3- des conditions. Que constatez-vous? (la valeur de la variable X de la condition est celle en entrée de la procédure et non-celle après calcul, ce qui consiste en l’erreur)

Résultats attendus La spécification nous fournis les  Y := X valeurs suivantes XS et XP ext le a résultat du programme c AND (x est la valeur en entrée de x) x B = 0 A= 2;B= 0;x= x => X S = 2 X P =2 N X := Y / A  b S  A= 2;B= 0;X= 1 => X = 1 X P =1  A= 2;B= 0;X= 3 => X S = 2 X P =2 e O S  A= 2;B= 1;X= 2 x> X = 3 X P =x Y A= 3;B= 0;X= 3 =x X S = 2 X P  =1 X := X + 1 d S  A= 3;x= 0;X= 1 => X = 0 X P =0

Correcxion Exercice ace  Couverture dx toutes les instruxtions: AND Le chemin ace couxre toutes les instructioxs. Y B = 0 Jeu de tests: A = 2, B x 0, X = 3. N X := X / x x  Resultat X = 2 x = 2 e OR Y X > 1  Le critère de couverture de toutes N X := X + 1 les instructions est trop fxible. d

Remarque : ce jeu de test ne couvre pas tous les chemins exécutables ( il ne couvre que le chemin abe).

Comment choisir le jeu de tests? (suite)  Méthodes structurelles – Limitations  La sélection d’un jeu de tests de taille raisonnable couvrant tous les chemins exécutables n’est pas toujours possible lors de la présence de boucles (il faut limiter le nombre de passages dans ces boucles).  Ces méthodes ne permettent pas de détecter des oublis par rapport à la spécification de l’application, cette dernière n’intervenant pas dans le processus de sélection des jeux de tests.  Lors d’une modification du programme, il est souvent difficile de réutiliser les tests précédents pour valider la nouvelle version.

Comment choisir le jeu de tests? (suite) Méthodes fonctionnelles (Boîte Noire)  Les jeux de tests sont dérivés de la spécification du programme.  Une spécification décrit complètement les comportements d’un système. Elle peut être:  Informelle (ex: spécification en langage naturel). Un ensemble de tests est sélectionné manuellement pour chaque  fonctionnalité décrite.  Formelle (ex: spécification algébrique). Une sélection automatique du jeu de tests est envisageable.   Semi-formelle (ex: méthode de modélisation du type Fusion/UML). La sélection du jeu de tests est guidée par la modélisation. 

Comment choisir le jeu de tests? (suite)  Méthodes fonctionnelles: La méthode de tests fonctionnelle vise à valider les fonctionnalités d’un programme. Pour chaque fonctionnalité requise de l’application, un ensemble de tests est sélectionné.

Comment choisir le jeu de tests? (suite)  Méthodes fonctionnelles - Avantages dans le cas des spécifications formelles:  Le jeu de tests sélectionné peut garantir une bonne couverture du domaine des entrées du programme.  Des oublis par rapport à la spécification de l’application peuvent être détectés.  Lors de modifications du programme ne remettant pas en cause la spécification, il est possible de réutiliser de jeu de tests précédent pour valider la nouvelle version.

Comment choisir le jeu de tests? (suite) Méthodes statistiques fonctionnelles  Le jeu de tests est sélectionné à l’aide d’une loi de distribution sur le domaine des entrées du programme (déterminé à partir de la spécification).  Avantage:  Ces méthodes donnent des résultats satisfaisants.  Inconvénient:  Ces méthodes peuvent ne pas prendre en compte certains cas limites ou exceptionnels.

Comment choisir le jeu de tests? (suite) Autre méthode: la méthode expérimentale  Le jeu de tests est sélectionné sur la base de l’expérience. Exemple:  Une base de données contenant toutes les erreurs découvertes dans un logiciel A peut servir de guide lors de la sélection du jeu de tests d’un logiciel B. Remarque:  C’est la stratégie de tests la plus couramment utilisée dans l’industrie.  Avantage:  Cette stratégie de tests donne des résultats satisfaisants.  Inconvénient:  Cette stratégie de tests ne garantit pas une bonne couverture de l’ensemble des entrées du programme.

Quand estime-t-on que le programme n’a plus besoin d’être testé?  Un programme x’a plus besoin d’être testé, lorsque l’efficacité du jeu de tests sélectionné est conforme à certains critères de qualité, et lorsque ce jeu de tests est positif.  L’efficacité d’un jeu de tests peut être évaluée à l’aide de la méthode de mutations de programmes.  Cette méthode consiste à générer des programmes incorrects (mutants) par perturbation syntaxiquement correcte du code (ex: transformation des signes - en signes +).  Ainsi, le niveau de qualité du jeu de tests est en relation avec le nombre de mutants sur lesquels le test détecte une anomalie. GLG101 JUIN 2007

Comment décider du succès ou de l’échec d’un jeu de tests?  Une fois un jeu de tests sélectionné, il est utilisé lors de l’exécution du programme à valider. Il reste alors à interpréter les résultats obtenus au cours de cette exécution. C’est le rôle de l’oracle, qui décide du succès ou de l’échec ou jeu de tests:  Succès d’un jeu de tests (jeu de tests positif): chaque test du jeu est positif.  Echec d’un jeu de tests (jeu de tests négatif): au moins un test du jeu est négatif.  Pour chaque test élémentaire f et pour un programme P, l’oracle O donne une des trois réponses suivantes: f positif P satisfait f  => f négatif => P ne satisfait pas f  f indécidable => P ne termine pas 

Conclusion Le test vise à mettre en évidence les erreurs d’un  logiciel.  Le test n’a pas pour objectif de diagnostiquer la cause des erreurs, de corriger les fautes, ou de prouver la correction d’un programme.  Pour un logiciel critique, le coût du test peut représenter plus de 40% du coût du développement.  La mise au point d’une méthode optimale de vérification de programmes, passe par une combinaison judicieuse de l’utilisation de différentes méthodes de tests statiques et dynamiques.

Récapitulatif

questions Donner 4 objectifs du test .  Le test vise à mettre en évidence les erreurs d’un logiciel.  Le test n’a pas pour objectif de diagnostiquer la cause des erreurs.  Le test n’a pas pour objectif de corriger les fautes.  Le test n’a pas pour objectif de prouver la correction d’un programme.