Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel



Documents pareils
CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Test et Validation du Logiciel

Qualité du logiciel: Méthodes de test

Quatrième partie IV. Test. Test 15 février / 71

Cours de Génie Logiciel

Pourquoi l apprentissage?

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Circuit du médicament informatisé

Vérifier la qualité de vos applications logicielle de manière continue

Cours de Master Recherche

Le génie logiciel. maintenance de logiciels.

Resolution limit in community detection

Approche de modélisation des tests de logiciels complexes par un système multi-agents

Algorithmique et Programmation, IMA

Analyse,, Conception des Systèmes Informatiques

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Conception des systèmes répartis

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

OCL - Object Constraint Language

Vérification et Validation

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Préparation à l examen EFA en Macro

Cours 1 : Qu est-ce que la programmation?

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Le Guide Pratique des Processus Métiers

ACCORD-CADRE DE TECHNIQUES DE L'INFORMATION ET DE LA COMMUNICATION. PROCEDURE ADAPTEE En application des articles 28 et 76 du Code des Marchés Publics

Monitoring d un Datacenter du concept à la réalisation

BACCALAUREAT GENERAL MATHÉMATIQUES


EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation sous QT

Développement spécifique d'un système d information

Représentation d un entier en base b

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

ASR1 TD7 : Un microprocesseur RISC 16 bits

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

GOL502 Industries de services

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Cours d algorithmique pour la classe de 2nde

ACTIVITÉ DE PROGRAMMATION

Recherche dans un tableau

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Corrigés des premiers exercices sur les classes

Plan du cours. Historique du langage Nouveautés de Java 7

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

V- Manipulations de nombres en binaire

Java Licence Professionnelle CISII,

Algorithmique et programmation : les bases (VBA) Corrigé

Transmission d informations sur le réseau électrique

Processus d Informatisation

La charge électrique C6. La charge électrique

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Solutions du chapitre 4

Il y a trois types principaux d analyse des résultats : l analyse descriptive, l analyse explicative et l analyse compréhensive.

Développement itératif, évolutif et agile

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

Electricité : caractéristiques et point de fonctionnement d un circuit

UML et les Bases de Données

Gé nié Logiciél Livré Blanc

Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de

Test de logiciel dans les méthodes agiles

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Table des matières. Introduction

Chapitre VI- La validation de la composition.

Programmation en Java IUT GEII (MC-II1) 1

Modèle de plan d action pour le sondage en ligne

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Programmer en JAVA. par Tama

Agilitéet qualité logicielle: une mutation enmarche

Introduction Définition...3

Construire un tableau de bord par Marc Maisonneuve

UE C avancé cours 1: introduction et révisions

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Génie Logiciel LA QUALITE 1/5 LA QUALITE 3/5 LA QUALITE 2/5 LA QUALITE 4/5 LA QUALITE 5/5

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Chef de projet H/F. Vous avez au minimum 3 ans d expérience en pilotage de projet de préférence dans le monde du PLM et de management d équipe.

NORME INTERNATIONALE D AUDIT 330 REPONSES DE L AUDITEUR AUX RISQUES EVALUES

IV- Comment fonctionne un ordinateur?

Informatique Générale

Initiation. àl algorithmique et à la programmation. en C

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

Fiche pour les étudiants «Comment répondre à une question à développement?»

Entreprises Suisse. Rentrées de paiements CREDIT SUISSE BVRB Expert Documentation technique

Conception des bases de données : Modèle Entité-Association

Guide pour aider à l évaluation des actions de formation

Ce guide a pour objectif de faciliter le dépôt de candidature et la mise en place du dossier.

Initiation au trading automatique et semi-automatique avec Metatrader 4. Nicolas ALEKSY

La Certification de la Sécurité des Automatismes de METEOR

Nom de l application

Temps Réel. Jérôme Pouiller Septembre 2011

Les structures de données. Rajae El Ouazzani

Transcription:

Test logiciel

Objectif et plan du du cours Présenter les concepts de base sur le test logiciel Introduire des techniques simples pour construire des tests A partir de la spécification informelle du programme A partir de l analyse du code Introduire un outil simple d exécution de tests pour java: junit 2

Test logiciel Concepts de base

Le test est un moyen : Définition du test de montrer qu un programme est correct? Non, en théorie, mais seul moyen de vérifier le fonctionnement du logiciel avant livraison de montrer qu un programme n est pas correct? Certainement (pas correct => contient des défauts) de trouver et de corriger les défauts d un programme? Non, test mise au point (déboguage) 4

Définitions Tester un logiciel consiste à l exécuter en ayant la totale maîtrise des données qui lui sont fournies en entrée (jeux( de test) tout en vérifiant que son comportement est celui attendu Le test est l exécution ou l évaluation d un système ou d un composant, par des moyens automatiques ou manuels, pour vérifier qu il répond à ses spécifications ou identifier les différences entre les résultats attendus et les résultats obtenus. (IEEE) Tester c est exécuter le programme dans l intention d y trouver des anomalies ou des défauts. (G. Myers, The Art of Software Testing) Le test est une technique de contrôle consistant à s assurer, au moyen de son exécution, que le comportement d un programme est conforme à des données préétablies. (AFCIQ) 5

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? 6

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Objectif Conformité (cf. protocoles), recherche défauts, évaluation utilisabilité Combien? Quoi? Où? Quand? 7

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? Sélection Aléatoire, déterministe, statistique, manuelle, systématique, automatique 8

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? Arrêt Critères d adéquation (couverture ), analyse de fiabilité 9

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? Niveau Test unitaire, d intégration, système 10

Niveaux de test Analyse des besoins Spécifications externes Conception globale préparation Test d acceptation Test système Test d intégration Conception détaillée Test unitaire Codage 11

Niveaux de test Test unitaire Unité du logiciel? Classe Méthode Fonction Module Utilisation de méthodes standard Multitude de techniques et outils Test d intégration Choix d une stratégie d intégration Tester les interactions entre unités testées individuellement au préalable Test système Vérifier la conformité aux spécifications Effectué avant installation chez le client Dérivé du dossier des spécifications et du plan de test d acceptation Test d acceptation (recette) Effectué chez le client 12

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? Environnement Réel, simulé (cf. log. embarqués) 13

Les 6 facettes du test (ou les 6 questions qu on doit se poser quand on teste) Pourquoi? Comment? Combien? Quoi? Où? Quand? Avant (asap) ou après déploiement 14

Évolution de la perception du test dans le temps Années 50 test = mise au point 1960-1980 test = «démonstration» (preuve de correction) 1980 test = «destruction» Aujourd hui «détruire» = trouver des défauts test = «évaluation» moyen d évaluation de la qualité 15

Faute ou défaut Faute, erreur, défaillance Cause supposée ou adjugée d une erreur Erreur Etat du système susceptible de provoquer une défaillance Défaillance Le service fourni dévie de l accomplissement de la fonction du systèmes Le test a pour objectif de mettre en évidence des défaillances 16

Exemple Je suis une faute (parfois on m appelle défaut) T : tableau sur [0..n] d entiers icour <- 1 imax <- 1 Tant que icour <= n Si T[icour icour] ] > T[imax imax] ] alors imax <- icour icour<-icour icour+1 Afficher T[imax imax] T = [1 2 3] pas d erreur, pas de défaillance T = [2 1 3] erreur, pas de défaillance T = [3 2 1] défaillance 17

Caractérisation du test Quelle que soit la méthode de test utilisée, on y distingue trois étapes Sélection (génération) des jeux de test Critères de sélection Exécution Observation des résultats 18

Sélection Programme : application d un domaine d entrée E vers un domaine de sortie S Domaines de taille infinie en pratique Exemple: domaine d entrée d un traitement de texte? Sélection d un sous domaine T(E) de E suivant un critère Critère de sélection le critère sert à la construction des jeux de test. Critère d arrêt ou d adéquation le critère permet d affirmer qu un jeu de test (arbitraire) est «bon». Test exhaustif (cas rare) E = T(E) 19

Exécution Fourniture des entrées au programme Données entrées manuellement peut-on automatiser? Données complexes ou nombreuses (trajectoires d un missile, variation ation d altitude d un avion, ) prévoir des simulateurs/moniteurs Récupération des sorties Volume important base de données Enregistrer toute information utile à l analyse des résultats charge processeur occupation mémoire 20

Observation : «problème de l oracle» Objectif : répondre à «le programme a-t-il fourni le bon résultat?» Observation effectuée Pendant l exécution détection des défaillances au moment où elles se produisent Après l exécution analyse des traces de l exécution Observation par un humain ou automatique Observation automatique : est-ce possible et à quel prix? Oracle automatique En théorie, l oracle parfait ne peut pas exister Oracle parfait = programme équivalent à celui qu on teste (indécidabilité) En pratique : oracle approximatif Table associant certaines entrées aux sorties attendues Propriétés essentielles («l avion ne s écrasera pas») 21

Test logiciel Techniques simples de test unitaire

Types de test unitaire Classification selon les modèles utilisés définir des critères de sélection ou d adéquation Modèles de spécifications Conformité du programme à ses spécifications Modèles de la structure du programme Couverture de le structure Modèles de fautes Couverture des fautes possibles Autre classification : boîte noire - boîte de verre (cf. test de circuits) Test en «boîte noire» On ne connaît du programme qu une spécification (informelle ou formelle) On ignore sa structure interne (code) Test en «boîte de verre» (ou «boîte blanche») Le code du programme est connu et utilisé pour le test Modèles aléatoires et statistiques du domaine d entrée Utilisés pour la génération de données en combinaison avec d autres modèles 23

Spécifications informelles Modèles de spécifications Textes en langue naturelle Les plus utilisées dans le «monde réel» Spécifications semi-formelles Diagrammes, schémas formalisant certains aspects de la spécification mais sans sémantique formelle UML : Diagrammes de classes UML, diagrammes de cas d utilisation Percée significative avec UML et la mouvance «Model-driven driven» Spécifications formelles Spécification de comportement à l aide de systèmes de transitions, s, spécifications algébriques Machines à états, CSP, UML Approches dont la portée est plus restreinte mais qui ne cessent de gagner du terrain 24

Techniques de test basées sur des modèles informels des spécifications Déterminer à partir des spécifications Domaine de définition Domaine de valeurs Comportement attendu Résultats attendus Propriétés Techniques connues: Partitionnement en classes d équivalence Étude des «cas limites» Méthode de Catégories et Partitions Méthode des Graphes Causes - Effets 25

Objectif Partitionnement en classes d équivalence Sélectionner des valeurs significatives pour les entrées en nombre restreint Principe Diviser le domaine d entrée en classes d équivalence Tous les éléments d une classe ont la même probabilité de révéler r un défaut Retenir un élément par classe C2 C3 C1 C4 26

Objectif Étude des cas limites Déterminer les «valeurs aux bornes» Hypothèses les valeurs aux bornes ont une probabilité différente de révéler des fautes révèlent des fautes différentes Nouvelles classes d équivalence Regroupement autour des valeurs aux bornes C2 C3 C1 C4 27

Étude des cas limites (suite) Objectifs Production systématique de tests Suggestion d une mesure de couverture de spécifications Classes d équivalence Valeurs particulières des entrées du programme Cas limites Expérience du testeur Difficilement automatisable 28

Méthode des «Catégories et Partitions» (suite) Étape 1 : Analyse de la spécification Identification des unités fonctionnelles élémentaires simples, compréhensibles c et pouvant être testées séparément Pour chaque unité, identification des : paramètres caractéristiques des paramètres Organisation en catégories Chaque catégorie correspond à un ensemble de valeurs d une caractéristique d un paramètre Étape 2 : Détermination des contraintes de choix Contraintes sur la valeur des caractéristiques de plusieurs paramètres simultanément. Étape 3 : création des partitions Combinaison exhaustive entre catégories et contraintes de choix. Étape 4 : Sélection des jeux de test Constitution des jeux de test de sorte qu au moins un jeu par partition soit sélectionné. 29

Exercice : application de la méthode On considère un programme qui lit et imprime une liste de télégrammes en réalisant quelques traitements supplémentaires : suppression des espaces redondants, décompte et impression du nombre total de mots (à l exception des marqueurs définis ci-dessous), indication de la présence d au moins un mot de longueur supérieure à M, impression n du texte, après traitement, en lignes contenant au plus L caractères s (M, L spécifiés par l utilisateur). Les caractères autorisés pour la saisie du télégramme sont les caractères alphanumériques et l espace. Un mot d un télégramme est e séparé de son suivant par un ou plusieurs espaces. Deux mots sont réservés à des fonctions spécifiques : STOP (marqueur de fin de phrase) et ZZZZ (marqueur de fin de télégramme). Le programme traite les télégrammes jusqu à l apparition d un télégramme vide (qui ne contient qu un seul mot : ZZZZ). 30

Modèles du code Graphe de contrôle Bien approprié aux langages impératifs Représentation du flux de contrôle Instructions, branches, chemins Représentation du flux de données Chemins entre définition et utilisation de variables Permettent l automatisation de la mesure de satisfaction des critères définis de la génération des données de test Outils industriels disponibles Machines à états Correspond à une structure particulière de programmes Représentation du flux de contrôle États, transitions, chemins Graphe de flux de données Pour des langages flux de données Exemple : Lustre/SCADE 31

Graphe de contrôle Noeud Saut (in)conditionnel dans le programme Condition de si_alors_sinon, tant_que... Saut inconditionnel Deux nœuds supplémentaires E (entrée unique) S (sortie unique) Jonction de flux de contrôle Branche Arc reliant deux noeuds Suite d instructions contiguës Chemin Suite de branches contiguës d C2 S b e c E C1 a a; si C1 alors b; si C2 alors d sinon e sinon c Version complète et optimisée d C2 S b e E C1 c a 32

Critères de sélection/adéquation courants définis sur le graphe de contrôle Couvertures des instructions Couverture des branches Couverture des chemins Couverture du flux de données 33

Couverture des instructions Objectifs Exécuter au moins une fois toute instruction du programme Détecter des instructions fautives Justification hypothèses Une seule exécution d une instruction fautive causera une défaillance lance Limites S1; if C then S2; S3; C = vrai satisfait le critère (S1, S2 et S3 exécutés). C = faux potentiellement jamais testé. 34

Couverture des branches Objectifs Exécuter au moins une fois chaque branche Mettre en évidence des défauts dans les instructions conditionnelles ou itératives Justification hypothèses Deux passages par la condition (vrai-faux) suffisent pour mettre en évidence un défaut Limites if C1 then S1 else S2; if C2 then S3 else S4; (C1, C2) = (F, F) et (V, V) satisfont le critère. (F, V) et (V, F) jamais testés. 35

Relation d inclusion Tous_les_chemins Toutes_les_branches Toutes_les_instructions 36

Exercice Quels tests exécuter pour couvrir 100% des instructions (resp. branches) b du programme suivant: public String codertexte ( String texte, int code1, code2 ) { String textecode = new String (""); int pos = 0 ; int code= code1 ; if (texte.charat( texte.charat[0] == A ) code = code2 ; while (pos < texte.length()){ if(texte.charat(pos)!= A ) textecode = textecode +(char)( texte.charat(pos pos) ) + code); pos++; } return(textecode textecode); } 37

Test logiciel Un outil simple pour l exécution de tests pour java: junit