Qualité du logiciel: Méthodes de test

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

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 23/04/2007

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

Cours de Génie Logiciel

Agilitéet qualité logicielle: une mutation enmarche

Les Bonnes PRATIQUES DU TEST LOGICIEL

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

Vérification et Validation

Gestion de projets logiciels. Xavier Dubuc

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Test de logiciel dans les méthodes agiles

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Guide de l utilisateur Mikogo Version Windows

GUIDE D UTILISATION ADSL ASSISTANCE

Groupe Eyrolles, 2003, ISBN : X

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

Trimble Geomatics Office. Manuel de l utilisateur

Installation et prise en main d UBUNTU

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

Gildas Le Nadan. Thomas Clavier

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

Gé nié Logiciél Livré Blanc

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

CRÉER UN COURS EN LIGNE

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Introduction à MATLAB R

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

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

TRAFFIC EXPERT. LA SOLUTION INTELLIGENTE POUR LES SYSTEMES DE GESTION DE TRAFFIC L expérience de STERIA à SINGAPOUR. Nabil DJEMAME (Steria)

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?

Conventions d écriture et outils de mise au point

Test et Validation du Logiciel

ASP Journal Alert Guide d utilisation

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Note de cours. Introduction à Excel 2007

Documentation Technique du programme HYDRONDE_LN

Animation pédagogique sur l oscilloscope à mémoire Hameg HM 507

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

Millenium3 Atelier de programmation

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Introduction au langage C

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Atelier n 12 : Assistance à distance

COMMENCER AVEC VUE. Chapitre 1

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

Création d un document PublishView

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

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)

Surveiller et contrôler vos applications à travers le Web

Environnements de développement (intégrés)

Projet Active Object

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Découverte du tableur CellSheet

Guide d installation et d utilisation

L accès à distance du serveur

Manuel utilisateur Netviewer one2one

MANUEL D INSTALLATION

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

CRM pour le Service clients et l Assistance technique

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Application 1- VBA : Test de comportements d'investissements

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

v Sygic, a.s. All rights reserverd. Manuel utilisateur

AIDE TECHNIQUE POUR L UTILISATION DE GÉODEQ III VUES D ENSEMBLE DU QUÉBEC

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

UM2 - Master 2 Année Sensibilisation aux Tests de Projets Informatique - Managed Testing -

Présentation du langage et premières fonctions

FIDÉICOMMIS. Être en mesure de :

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

GUIDE D INSTALLATION INTERNET haute vitesse

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Paramètres d accessibilité des systèmes d exploitation Windows et Mac

Figure 3.1- Lancement du Gambit

Manuel Utilisateur Version 1.6 Décembre 2001

données en connaissance et en actions?

Contrôleur de communications réseau. Guide de configuration rapide DN

Guide de démarrage rapide. (pour la version 5.0.)

S.P.S.N. Lac du Der 2008

Comment gérer toutes mes tâches logicielles d automatisation dans un seul environnement?

Les pages suivantes présenteront : I. Le téléchargement et l installation du navigateur. II. L utilisation de Pep s à l aide de ce navigateur.

Cours Informatique Master STEP

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Algorithmique et programmation : les bases (VBA) Corrigé

Tutoriel LabVIEW Des fonctions simples à l acquisition de données

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Métriques de performance pour les algorithmes et programmes parallèles

Ministère de l Éducation Guide de l utilisateur de l Initiative pilote des écoles vertes

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Le calcul formel dans l enseignement des mathématiques

Bases de programmation. Cours 5. Structurer les données

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Transcription:

Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005

Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution Deux moyens courants: Listes de défauts typiques Métriques.

Analyse statique de code Checklist exemple Référence aux données Calculs Variables non initialisées Pointeurs fantômes (dangling pointers) Indices des tableaux hors bornes... Conversion de types Underflow/Overflow Division par zéro Précédence des opérateurs...

Analyse statique de code Checklist exemple (2) Comparaisons Contrôle Entre types consistants > et < versus >= et <= = versus ==... Terminaison des boucles Une itération en trop/en moins (off-by-one bug) Code accessible...

Analyse statique de code Métriques Moyen de calculer un nombre qui mesure la grandeur/la complexité du code La plus connue: nombre de lignes de code Variantes: Nombre de classes Nombre de méthodes... Ne tiennent pas compte de la complexité!

Analyse statique de code Métrique de McCabe Proposée par Thomas McCabe Aussi appelée complexité cyclomatique On représente le flux de contrôle du programme sous forme d un graphe Soient a le nombre d arcs du graphe n le nombre de noeuds e le nombre de points d entrées s le nombre de points de sortie Complexité cyclomatique v v = a n + i + s.

Analyse statique de code Métrique de McCabe suite Plus la complexité cyclomatique augmente, plus le programme sera susceptible de contenir des erreurs...... et plus il sera difficile à tester On considère qu une complexité de 10 est raisonnable La valeur maximale de la complexité cyclomatique peut être un critère de qualité dans le plan qualité Attention cependant: Ce n est pas une mesure absolue de la complexité! Exemple: le switch.

Analyse statique de code Autres métriques Il existe beaucoup d autres métriques du logiciel Henry & Kafura (liaisons inter-modules) Encombrement (Couplage inter-classes)... Aucune ne s est révélée être un indicateur vraiment fiable... Les métriques sont des outils utiles, mais il faut être conscient de leur limites!

L activité de test Attitude du testeur Le test doit être vu comme un processus destructif : le but est de mettre en défaut le logiciel Un test ne trouvant aucun bug est un échec! Éviter l approche montrer que ça marche! Pour ces raisons, il est souvent préférable de confier l activité de test à une équipe séparée de celle du développement.

L activité de test Limites théoriques Prouver que deux programmes calculent la même fonction est en général indécidable Il n existe donc pas de test général pour prouver qu un programme est exempt d erreurs Tout ce qu on peut faire, c est augmenter ses chances de trouver les erreurs.

L activité de test Catégories de test On distingue trois catégories de tests Les tests boîte blanche, basés sur la structure du code Les tests boîte noire, qui testent les fonctionnalités indépendamment de la manière dont elles sont implémentées Les tests boîte grise, combinaison des deux approches précédentes.

L activité de test La régression Lorsqu une application est formée de plusieurs modules plus ou moins indépendants et testés séquentiellement, il peut apparaître un phénomène nommé régression 1 On teste le module 1, tout va bien 2 On teste le module 2 dans lequel on découvre un bug 3 On corrige le bug du module 2 4 On termine les tests du module 2 5 On passe aux tests du module 3... 6... et on manque un bug ajouté/mis en évidence dans le module 1 par la modification du module 2! Il faut donc chaque fois retester depuis le module 1 Ces tests sont généralement automatisés.

L activité de test Les étapes de test Le test peut être divisé en différentes étapes tests unitaires (pendant le développement, souvent par les développeurs) tests d intégration (pendant le développement, parfois par une équipe séparée) tests de validation (chez le fournisseur, par l équipe de qualification) Tests de validation (chez le client) Tests de suivi d exploitation.

L activité de test Arrêter de tester Il est important de définir le critère d arrêt des tests Quelques possibilités: Plus aucune erreur détectée (rare... ) Taux de couverture atteint Durée de l effort Nombre d erreurs découvertes Forme de la courbe du nombre d erreur trouvées en fonction du temps...

L activité de test Que faire quand tous les modules ne sont pas présents? Lorsqu on veut tester un module logiciel, il arrive souvent que des modules connexes ne soient pas disponibles On les remplace alors par une simulation Lorsqu il remplace un module appelant le module en cours, le simulateur s appelle un pilote (ang. driver) Lorsqu il remplace un module appelé, le simulateur s appelle un bouchon (ang. stub).

Construction de tests unitaires Boîte noire Tests boîte noire Visent à évaluer la réaction du logiciel à certaines entrées sans examiner l implémentation Aussi appelé Black box testing et tests fonctionnels La principale difficulté réside dans la sélection d un ensemble adéquat de valeurs de test.

Construction de tests unitaires Boîte noire Partition en classes d équivalence L espace des données en entrée du programme est généralement beaucoup trop grand pour être testé intégralement (souvent même infini) Pour limiter le nombre de tests, on va essayer de partitionner cet espace en classes d équivalences qui devraient avoir le même comportement Pour ce faire, il faudra prendre en compte aussi bien les données valides que non-valides Exemples 1..99 peut donner trois classes: [1,99], >99, <1 (bleu, vert, noir) peut donner quatre classes dont trois valides Ce type de partition s appelle analyse aux bornes (boundary analysis).

Construction de tests unitaires Boîte noire Les graphes cause à effet Servent à systématiser le choix des combinaisons d entrée 1 Identifier les causes (entrées) et les effets (sorties) du programme à tester 2 Pour chaque effet, identifier les causes qui l influencent 3 Tracer un graphe cause à effet en utilisant des arcs directs des arcs non des noeuds et des noeuds ou On pose successivement chaque effet à 1 et on cherche les conditions produisant cet effet.

Construction de tests unitaires Boîte noire Exemple

Qualité du logiciel: Méthodes de test Construction de tests unitaires Boîte noire Table de test

Construction de tests unitaires Boîte blanche Tests Boîte blanche Ne s intéresse plus à l aspect fonctionnel, extérieur, du programme, mais À son flot de contrôle, ou À son flot de données Idéalement, on aimerait couvrir tous les chemins possibles Mais leur nombre est très grand, parfois infini On va donc considérer différents types de couverture.

Construction de tests unitaires Boîte blanche Couvertures naïves Toute instruction est exécutée au moins une fois Insuffisant! if x>0 then S endif Couverture complète si x>0, mais le cas x<0 n est pas testé! Toute donnée est utilisée au moins une fois Insuffisant! if cond then a=b+c else a=b-c Couverture complète avec un seul test.

Construction de tests unitaires Boîte blanche Graphe du flot de contrôle for I := 1.. 100 loop if A>B then X:= 3 T:= 25; else Y:=4; endif; Z:=5 end loop;

Construction de tests unitaires Boîte blanche Couverture des branches (branch coverage) Ensemble de test assurant que chaque branche du graphe de contrôle sera parcourue au moins une fois Plus complet que la simple exécution de chaque instruction...... Mais toujours insuffisant if a>0 then... endif if b>0 then... endif Couverture des branches avec les données A=1, B=1 A=-1, B=-1 Mais on a pas testé A=1, B=-1.

Construction de tests unitaires Boîte blanche Couverture des PLCS Portions linéaires de code suivies d un saut Angl: Linear code sequence and jump (LCSAJ) séquence d instruction entre deux branchements La couverture des PLCS est plus complète que celle des branches.

Construction de tests unitaires Boîte blanche PLCS exemple PLCS: 1 3 1,2,3-1 2 2 1,2 2 3-1 2,3-1.

Construction de tests unitaires Boîte blanche Autres couvertures basées sur le flot de contrôle Couverture des branches essentielles Une branche non-essentielle est exécutée chaque fois qu une autre branche est exécutée ( passage obligé ) Plus rentable que les PLCS Structured Path Testing Travaille sur les chemins ne différant que par le nombre d itérations Boundary Interior Path Testing... Boundary path: chemin sans itération Interior path: chemin avec une itération

Construction de tests unitaires Boîte blanche Analyse du flot de données On s intéresse aux différentes utilisations des variables Définitions DEF point de définition d une variable (x=2) C-REF utilisation d une variable dans un calcul (y=x+2) P-REF utilisation d une variable dans un prédicat (if x==2... ) On peut alors définir la couverture... des DEF des utilisations (C-REF et P-REF) des P-REF de tous les chemins DEF-REF...

Construction de tests unitaires Boîte blanche Boîte blanche contre boîte noire Les tests boîte blanche permettent de s assurer que toutes les parties d un programme sont testées Il faut les remettre à jour à chaque modification de code Attention: ne remplacent pas les tests boîte noire! if (x+y+z)/3 == x printf les 3 nombres sont égaux else printf les 3 nombres sont différents Couverture avec (x,y,z)=(1,2,3) et x=y=z=2 Et pourtant...

Construction de tests unitaires Boîte grise Tests boîte grise Les tests boîte blanche demandent une parfaite connaissance du code testé Les tests boîte noire ne se basent que sur la spécification Les situations intermédiaires sont appelés tests boîte grise Situation courante Le type de test à réaliser est basé sur le code La conception des tests eux-mêmes est basée sur la spécification.

Sujets choisis Autres types de tests Autres types de tests Nous n avons considéré que les tests les plus généraux Suivant les domaines d application, d autres types de test peuvent entrer en considération Tests IHM (Interface homme-machine) Tests de configuration Tests d installation Tests de charge Tests de sécurité.

Sujets choisis Autres types de tests Tests IHM Menus et barres d outils (fonctionnalité, entrées grisées, raccourcis clavier,... ) Affichage (changement de la taille de la fenêtre, de la résolution d écran, rafraîchissement,... ) Cohérence de présentation (p.ex. dans les applications web) Navigation (effet de la touche de tabulation,... )...

Sujets choisis Autres types de tests Tests de configuration Les configurations matérielles et logicielles évoluent très vite... Quelques exemples de problèmes de configuration Environnement 32/64 bits Incompatibilité de bibliothèque Version des pilotes de périphériques Vitesse d exécution...

Sujets choisis Preuve de programmes Preuve de programmes Dans certains cas critiques, on cherche à assurer la validation et la vérification du logiciel par des preuves Ceci nécessite l expression de la spécification dans un langage formel approprié La spécification peut ensuite être validée... au moyen de logiques appropriées (preuve de programmes), ou par un parcours exhaustif de l espace des états possibles (model checking) Une spécification correcte ne signifie pas que le programme soit correct!

Sujets choisis Preuve de programmes Spécification formelle Divers formalismes sont à disposition Exemple: les réseaux de Petri

Sujets choisis Preuve de programmes Implementation gap Même avec une spécification irréprochable, un programme peut être erroné La distance entre la spécification formelle et son implémentation est très difficile à couvrir formellement Implementation gap Une solution: la logique de Hoare {P} instructions {Q} Si P est vérifié avant les instructions, Q le sera après Exemple: {x=1} x++ {x=2}.

Sujets choisis Preuve de programmes Références Marnie L. Hutcheson, Software Testing Fundamentals, Wiley, 2003 Maurice Rozenberg, Test logiciel, Eyrolles, 1998 http://www.essi.fr/~hugues/gl/chapitre9.pdf.