TESTS ET VALIDATION DU LOGICIEL

Slides:



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

BIENVENUE ASTOU TALL Chargé de documentation de l’équipe Informpro. Présentation d’un projet.
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Eléments de Génie Logiciel
Processus d'expression du besoin
La Recette La recette.
La Gestion de la Configuration
Les Evolutions et la Maintenance
LA QUALITE LOGICIELLE Plan du cours Le Plan Qualité 1 h ½
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Les tests et les logiciels de gestion de tests
Organiser des Tests dans un projet
Les démarches de développement
Les démarches de développement
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Tests et Validation du logiciel
Tests et Validation du logiciel
Les Ateliers de Génie Logiciel
La revue de projet.
Validation de logiciel
MRP, MRP II, ERP : Finalités et particularités de chacun.
MIAGE MASTER 1 Cours de gestion de projet
Control des objectifs des technologies de l’information COBIT
SECURITE DU SYSTEME D’INFORMATION (SSI)
Introduction au Génie Logiciel
Parcours de formation SIN-7
Initiation à la conception de systèmes d'information
Sommaire Objectif de Peakup Principes de fonctionnement
Sésame Conseils Bon sens et compétences
DeltaPROD Suivi des interventions Gestion de configuration
Management stratégique et management opérationnel
Techniques de test Boulanger Jean-Louis.
Présentation du mémoire
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Module 2 : Préparation de l'analyse des performances du serveur
Portée, arrimages et intervenants Évolution des méthodes
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
Test logiciel Xavier Baril.
Module 8 : Surveillance des performances de SQL Server
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Définitions Gestion Exemple
Suivi de projet Architecture de l’information par l’équipe en charge du projet A Mille 2013.
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
PRESENTATION SYSTEME QUALITE IM Projet
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le système informatique et le système d’information
Introduction au Génie Logiciel
Extrait du Referentiel BTS Systèmes numériques Options : Informatique et réseaux et Électronique et communication S1 à S9 Définition des savoirs et savoir-faire.
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
MOCK.
Année 2006 – 2007 ENSEA © Emeric Rollin
OPTIMISATION DE LA PLANIFICATION
Sites Pilotes Généralisation
Les démarches de développement
Soutenance Phase 1 Bibliographie et Analyse des besoins
Génie Logiciel 59 Nous testons les logiciels pour vous ! Poiret Valentin.
Génie Logiciel 59 Nous testons les logiciels pour vous ! Bénazet Sébastien.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Conférence 2TUP Stéphane Barthon 03/12/
Document de spécification d’exigences Normes IEEE et 29148:2011
1 - Gestion du projet Initialisation Préparation
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
C’est ce que l’on veut obtenir la manière dont on va l’obtenir
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
131, rue de Créqui, Lyon 6ème « L’organisation est une machine à maximiser les forces humaines» - Peter Drucker (économiste )
Transcription de la présentation:

TESTS ET VALIDATION DU LOGICIEL Quadra Informatique TESTS ET VALIDATION DU LOGICIEL Tests et Validation du logiciel – Etat de l’art Intervention Stéphane CALIMET, Philippe FIRMIN, Eric LELEU – Juin 2009 - CNAM de Lille NFE 209 / 210 – Audit et Gouvernance des Systèmes d’Information

Présentation ERIC Préambule Quelques exemples de « Bugs » Définitions des tests Les classes de défaut Les difficultés liées aux tests Les différentes façons de classifier les tests Quelques principes La stratégie de tests

Préambule

PREAMBULE Les tests existent depuis toujours (mauvaise perception). Prise de conscience actuelle de la part des sociétés et notamment des directions informatiques (risque de dysfonctionnement, perte financière, retard…). Les tests rassurent et permettent de palier aux erreurs humaines. Le sujet des tests est vaste. Nous avons tenter dans cette présentation de vous en présenter les principaux aspects (généralités, techniques et outils). Notre étude sera à votre disposition sur le site http://home.nordnet.fr/~ericleleu « La politique de tests est aujourd’hui une dimension incontournable de la gestion de projet. »

Quelques exemples de « Bugs »

Quelques BUGS 1992 - Les ambulances de Londres sont mal orientées par le logiciel. Des pertes humaines sont à déplorer. - 1996 - Explosion de la fusée Ariane 5 au bout de 30 secondes de vol suite à une erreur de conversion de données numériques. - 2004 - Défaillance du système d'alarme d'une centrale qui produisit une coupure d'électricité aux Etats-Unis et au Canada. - 2006 - Deux grandes banques françaises exécutent un double débit pour plus de 400 000 transactions. Les bugs sont omniprésents et ont parfois des conséquences dramatiques.

Définitions des tests

DEFINITIONS « On constate une ANOMALIE due à un DEFAUT du logiciel lui même du a une ERREUR de programmeur. » Selon Glendford.J Myers dans « The art of software testing »: « Un test réussi n'est pas un test qui n'a pas trouvé de défauts, mais un test qui a effectivement trouvé un défaut. » Selon l'IEEE (Institute of Electrical and Electronics Engineers): « 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. »

Les classes de défaut

Ces erreurs représentent 90% des cas décelés. Les classes de défaut Les erreurs peuvent être de divers ordres. Il peut s'agir d'erreurs : - de calcul - de logique - d'entrée / sortie - de traitement des données (dépassement de tableau) - d'interface (communication entre les programmes) de définition des données … Ces erreurs représentent 90% des cas décelés.

Les difficultés liées aux tests

LES DIFFICULTES Impossible de réaliser un test exhaustif (variables) Qualité des tests dépend données utilisées Impossible de supprimer l’erreur humaine Difficultés d’ordre psychologique, culturel Manque d’intérêt pour les tests Taille et complexité des programmes Différence entre environnement de développement et de production Perte d’information naturelle Difficulté formelle : pas d’algorithme capable de prouver l’exactitude d’un programme

Humour ou réalité Concernant la perte d’information…

Les différentes façons de classifier les tests

Classification des tests Il n’existe pas de classification officielle Chaque ouvrage, chaque auteur, chaque site définit à sa manière les différentes techniques de tests.

Classification des tests Selon le mode d ’exécution Le test Manuel : Les tests sont exécutés par le testeur qui vérifie les traitements… et compare les résultats obtenus avec ceux attendus. Ces tests sont fastidieux et offrent une plus grande possibilité d’erreurs humaines. Ces tests sont très vite ingérables dans le cas d’applications de grandes tailles. Le test Automatique : Le testeur est en partie déchargé des tests dans la mesure où les tests sont réalisés par des outils (JUnit par exemple dans le monde Java).

Classification des tests Selon les modalités du test Statiques : Les tests sont réalisés «par l'humain» (testeur), sans machine, par lecture du code dans le but de trouver des erreurs (revue de code…). Dynamiques : On exécute le système de manière à tester l’ensemble des caractéristiques. Chaque résultat est comparé aux résultats attendus.

Classification des tests Selon les méthodes de tests Structurels (Boîte blanche) : Les tests structurels reposent sur des analyses du code source. Fonctionnels (Boîte noire) : Les tests fonctionnels reposent sur une spécification du programme. Le code source du programme n’est pas utilisé. Les tests fonctionnels permettent d’écrire les tests bien avant le « codage ». Il est parfois utile de combiner ces deux méthodes.

Classification des tests Selon les niveaux de tests Il s’agit de tests réalisés tout au long de la vie du logiciel (cycle de vie). Unitaires : s'assurer que les composants logiciels pris individuellement sont conformes à leurs spécifications et prêts à être regroupés. D’intégration : s'assurer que les interfaces des composants sont cohérentes entre elles et que le résultat de leur intégration permet de réaliser les fonctionnalités prévues. Système : s'assurer que le système complet, matériel et logiciel, correspond bien à la définition des besoins tels qu'ils avaient été exprimés. On parle de validation ou de recette. De non régression : vérifier que la correction des erreurs n'a pas affecté les parties déjà développées et testées. Cela consiste à systématiquement rejouer les tests déjà exécutés.

Classification des tests Selon les caractéristiques des tests De Robustesse : Permet d'analyser le système dans le cas où ses ressources sont saturées ou bien d'analyser les réponses du système aux sollicitations proche ou hors des limites des domaines de définition des entrées. De performance : Permet d'évaluer la capacité du programme à fonctionner correctement vis-à-vis des critères de flux de données et de temps d'exécution.

Source : http://dept-info.labri.u-bordeaux.fr/~felix/ Exemple Source : http://dept-info.labri.u-bordeaux.fr/~felix/

Quelques principes

PRINCIPES - Si possible faire tester par un autre développeur. - Ne jamais partir du principe qu'un test ne trouvera pas d'erreurs. - Examiner et mémoriser les rapports de tests. - A la moindre modification ne pas hésiter à refaire les tests (test de non régression).

La stratégie de tests

LA STRATEGIE Généralités Une stratégie de tests peut représenter 50% de la charge totale d’un projet La stratégie de test doit être intégrée au processus de développement du logiciel. La stratégie de test dépend : De la criticité du produit à réaliser Du coût de développement Une stratégie consiste à définir : Les ressources mises en œuvre (équipes, testeurs, outils…) Les processus de test Finalement, la stratégie de tests tient compte : Des méthodes de spécification, de conception Du langage de programmation utilisé Du type d’application (temps réel, base de données…) L’expérience des programmeurs … Une technique de tests adaptée et puissante restera sans effet si elle ne fait pas partie d’une stratégie de tests.

LA STRATEGIE Généralité Suite L’activité tests est un PROJET à part entière. C’est la raison pour laquelle nous retrouvons l’ensemble des caractéristiques d’un projet : Organisation des équipes Planification et contrôle (planification, estimation des charges,…) Analyse et conception Evaluation des risques Gestion des incidents Evaluation et « reporting » Clôture (recette ou arrêt des tests) Bilan projet Amélioration des processus et mutualisation …

La stratégie de tests vise à rendre l’effort de test efficace LA STRATEGIE Stratégie de tests L’ensemble de la stratégie de tests est détaillé dans le Plan Qualité Projet (PQP). Le plan qualité projet est très important. Il va notamment : Définir l’organisation à mettre en place (équipe de tests : Testeur, CP qui enregistre et analyse les métriques et les incidents, élabore les tableaux de bord). Définir les responsabilités et relations entre les différents intervenants. Définir les types et les objectifs de tests pour chacun des niveaux (tests unitaires, tests d’intégration, tests de validation). Définir les outils qui seront utilisés. Définir les moyens et les délais à investir dans l’activité de tests.   La stratégie de tests vise à rendre l’effort de test efficace

LA STRATEGIE Plan de test Il existe autant de plan de tests que de phases de qualification du produit : Au dossier de SPECIFICATION correspond le plan de tests de VALIDATION. Au dossier de CONCEPTION GENERALE correspond le plan de tests d’INTEGRATION. Au dossier de CONCEPTION DETAILLEE correspond le plan de tests UNITAIRES. L’objectif de chaque plan de tests est de fournir un programme pour vérifier que le logiciel produit satisfait les spécifications et la conception du logiciel.   Un plan de test doit : Définir les éléments à tester et l’ordre dans lequel ils doivent être testés (planifier) Décrire l’environnement de tests. Définir la façon dont les tests vont être menés (procédures répétable : processus exacts à mener, l’historisation, la traçabilité, le reporting, le suivi, le contrôle) Décrire et constituer les fiches de tests. L’ensemble des fiches de tests constitue le dossier de tests. Fixer les critères d’arrêt des tests

LA STRATEGIE Rapport Rapport de test (ensemble des comptes rendus de rapport de tests) Pour chaque phase de test (unitaires, d’intégration, de validation), l’équipe dédiée aux tests doit élaborer un rapport de tests. Ce rapport est la synthèse des actions menées suivantes : Exécution des fiches de tests (effectuer les actions décrites). Analyser les résultats obtenus  Emettre des fiches de non-conformité si nécessaire   Il s’agit de coupler intelligemment la gestion des tests et la gestion des corrections (incidents).

LA STRATEGIE Qualification Qualification, Validation La qualification est essentielle. Elle permet de conclure et d’émettre un avis sur le produit développé et sa mise en production : adéquation entre produit et spécifications fonctionnelles et techniques.

PRESENTATION STEPHANE

Présentation STEPHANE Tests et Cycles de vie Les tests UNITAIRES Les Tests d’INTEGRATION Les tests de CHARGE Les tests de VALIDATION

Tests et Cycles de vie

Tests et cycles de vie 3 Cycles de vie principaux - Cascade - En V - En spirale

Définit les phases séquentielles Cycle en Cascade Cycle en Cascade Définit les phases séquentielles A la fin de chaque phase, des documents sont crées pour en vérifier la conformité Si c'est bon on passe à la phase suivante Si ce n'est pas bon, on retourne en arrière (Feedback)

Cycle en cascade suite… Avantages : Qualité des livrables Calendrier plus facile à élaborer Un seul fil directeur Inconvénients : Difficulté de revenir en arrière Temps de réaction plus long Effet tunnel

Le client connait son besoin dans le détail Cycle en V Cycle en V Créé suite au manque de réactivité du modèle en cascade. Il part du principe que les procédures de vérification de la conformité doivent être élaboré dès les phases de conception Le client connait son besoin dans le détail Standard depuis les années 1980

Cycle en V suite Inconvénients : Conception fortement liée à la réalisation Moins adapté au développement logiciel Risque d’effet tunnel Avantages : Meilleur temps de réaction Anticipation des étapes En cas de problème, permet de limiter le retour aux étapes précédentes

Cycle en Spirale Cycle en Spirale Il est basé sur une approche et une évaluation des risques. Un risque identifié est assigné d’une priorité. Un prototype possède son cycle de vie propre Le cycle en spirale couvre l’ensemble du cycle de vie de développement mais ajoute une dimension managériale et donc non technique

Cycle en spirale suite… Chaque cycle de la spirale comprend 6 phases : Analyse du risque Développement d’un prototype Test du prototype Détermination des besoins Validation des besoins Planification du prochain cycle

Cycle en spirale suite…

Cycle en spirale suite… Avantages : Cahier des charges respecté au pied de la lettre Validité des besoins Inconvénients : Calendrier et budget souvent irréalistes (on ne sait chiffrer qu’un cycle à la fois) Problème pour les composants externe Limité aux projets innovants (étude des risques)

Conclusion cycles de vie Conclusion sur les cycles de vie Chaque cycle de vie contient les mêmes grandes phases du projet : Analyse du produit Phase de conception Phase d’intégration Phase de validation

Les Tests UNITAIRES

Tests unitaires Définition Vient du fait qu’une partie du code est appelé Unit Ce type de test va vérifier un module du code et qu’il fonctionne de manière indépendante du reste Respect aussi des spécifications fonctionnelles Ils peuvent être manuels ou automatisés par des logiciels

Tests unitaires Formalisme On va créer une fiche de test unitaire qui contient une liste (ou aide mémoire) pour les grandes actions Elle permet de préparer les tests Chaque analyste ou chef de projets doit la remplir afin d’assurer un passage en recette dans les meilleures conditions Donne une garantie de qualité lors du développement (ce n’est pas une contrainte mais un outil !)

Tests unitaires Exemple fiche Exemple de fiche de test

Tests unitaires suite… Pour réaliser des tests unitaires il nous faut : des jeux de données (fictives, de production, ancien jeux de tests) des ressources (documents de spécifications, scénarios, fiches de tests, tests précédents) Une démarche

Les tests unitaires suite… Les différentes démarches : Analyse statique Analyse dynamique structurelle Analyse dynamique fonctionnelle Boite noire Boite blanche

Les tests unitaires suite… Analyse Statique Cette notion d’analyse permet d’obtenir des informations sur le comportement du programme sans réellement l’exécuter On utilise des méthodes comme les nombres cyclomatiques, la mesure de Halstead …

Les tests unitaires suite… Analyse Dynamique Structurelle Consiste à vérifier la structure du code ainsi que les variables On parcours tous les nœuds, les arcs, et chemins du programme On peut vérifier ainsi si un test If Then Else n’est pas utilisé

Les tests unitaires suite… Analyse Dynamique Fonctionnelle Consiste à vérifier le service rendu (la fonction) mais pas comment il est rendu On valide les règles de gestion La difficulté réside au choix des données de tests pour obtenir les résultats attendus

Les tests unitaires suite… Boîte NOIRE On vérifie que les sorties obtenues sont celles prévues pour les données entrées Le fonctionnement interne n’est pas accessible Souvent utilisé pour les tests de non régression, de robustesse et de charge

Les tests unitaires suite… Boîte BLANCHE On valide le code et on vérifie qu’il n’y a pas de plantage On ne teste pas le fonctionnel mais tous les chemins possibles du programme

Les tests d’INTEGRATION

Les Tests d’intégration Définition On regroupe chaque partie testée unitairement afin d’établir une nouvelle version du produit Le test d’intégration a pour but de tester que tout fonctionne ensemble Il existe une intégration incrémentale et une intégration globale

Les Tests d’intégration suite Il existe plusieurs méthodes d’intégration : Big bang Top Down (haut en bas) Bottom up (ascendante) Mixte Par paquet

Les Tests d’intégration suite Big Bang Le principe est d’intégrer tous les composants en une seule étape. L’intégration est rapide mais valable que pour les petits projets Trop de risques pour les gros projets

Les Tests d’intégration suite Approche Top Down On déroule le programme de haut en bas. Les modules s’empilent les uns aux autres. Des bouchons simulent les traitements. Les modules doivent être les plus petits possible Avantages : Détection précoce des défauts d’architecture Facilité de compréhension Inconvénients : Créer des bouchons prend du temps Effort de simulation des composants absents (risque d’erreurs) Tests tardifs des couches de bases

Les Tests d’intégration suite

Les Tests d’intégration suite Approche Bottom Up On déroule le programme de bas en haut. Les modules fondamentaux sont testés en premier. Des bouchons simulent les traitements. Il est nécessaire de définir les fonctionnalités indispensables et prioritaires aux autres. Avantages : Faible effort de simulation Définition de jeux d’essais plus facile Fonctionnalités basses plus souvent testées Inconvénients : Détection tardive des erreurs majeures

Les Tests d’intégration suite

Les Tests d’intégration suite Intégration Mixte C’est une combinaison des approches Bottom up et Top down. On l’appelle de temps en temps boîte grise. Avantages : Planning de développement qui gère les composants dans l’ordre de création Les composants les plus critiques sont intégrés en premier Inconvénients : Difficulté d’intégration due à la mixité des méthodes

Les Tests d’intégration suite Intégration par Paquet On décompose le programme par fonctionnalité ou criticité si les modules le permettent.

Les Tests de CHARGE

Maintien des fonctionnalités sur une montée en charge Les Tests de charge Définition On expose l’application à des conditions d’exploitations pour valider le système. Objectifs : Tester la performance Maintien des fonctionnalités sur une montée en charge Fiabilité (plateforme, BDD…)

Les Tests de charge suite Principaux type de tests de charge : Test de performance Test de dégradation des transactions Test de stress Test d’endurance, de robustesse, de fiabilité Test de capacité, de montée en charge

Les Tests de charge suite Quand mener les tests de charge ? Le plus tôt possible dans le processus de développement fin de mettre en évidence rapidement les défauts d’infrastructure.

Les Tests de charge suite

Les Tests de VALIDATION

Les tests de validation Objectifs Vérifier que toutes les exigences du cahier des charges soient respectées. Ils ont lieu immédiatement après les tests d’intégration. 2 approches : Identifier et tester toutes les fonctions du logiciel Tester les caractéristiques du logiciel (interfaces…)

Les tests de validation suite Principales techniques de validation Approche fonctionnelle (boîte noire) Approche fonctionnelle classique Analyse « Partitionnelle » Tests aux limites Tests combinatoires Tests syntaxiques Tests aléatoires Couverture de graphe fonctionnel Graphe cause effet Approche structurelle (boîte blanche) Tests structurels statiques Tests structurels dynamiques

PRESENTATION PHILIPPE

Présentation PHILIPPE Les outils de tests Le classement Les outils d’aide à la réalisation Les outils de campagne de tests Les outils de tests fonctionnels Les outils de tests structurels Les outils de tests de performance

Les outils de Tests

Les outils de tests Pourquoi un outil de test : L’exemple du triangle : en entrée 3 entiers et en sortie triangle isocèle, scalène ou équilatéral. 14 cas de tests : GJ Myers –«The Art of Software Testing» - 1979 Résultats sur des développeurs expérimentés 7,8 en moyenne sur 14. Coût d’un test est de 30% à 60% du coût de développement

Les outils de tests suite Pourquoi un outil de test : L’environnement du SI est toujours plus complexe La programmation évolue et implique plusieurs langages Détection des bugs plus difficile, débuggeur difficile à mettre en œuvre. L’exigence qualité du client  SI ou fournisseurs engagement qualité Base de la réponse : ISO20000, CMMI, ITIL Le SI, les fournisseurs cherchent une réponse pour automatiser les tests.

Le Classement

Classés en 5 groupes d’outils : LE CLASSEMENT Classés en 5 groupes d’outils : Les outils d’aide à la réalisation des tests Les outils de campagne de tests Les outils de tests fonctionnels (boite noire) Les outils de tests structurels (boite blanche) Les outils de tests de performance

Les outils d’aide à la réalisation

Outils d’aide réalisation Les fonctionnalités communes : Capture et ré-exécution des scripts réalisés via une IHM Sauvegarde des tests et des résultats associés Génération de scripts de tests en fonction des langages et des plateformes.

Outils d’aide réalisation suite MERCURY WINRUNNER et QUICK TEST PRO de MERCURY QUALITY CENTER  HP depuis 2006 Mercury TestDirector Outils web et automatisation des tests : environnements applicatifs différents Automates de tests de nouvelle génération Créer, gérer un ensemble de tests et coordonnées les résultats Enregistre les actions de l'utilisateur, ajout de points de contrôle. Fonctionne exclusivement sur plateforme Microsoft Windows.

Outils d’aide réalisation suite WinRunner (script TSL ) a été supplanté par QuickTest Pro (VBScript + interface ergonomique ) L’importance du marché : Mercury Quality Center représente un CA de 686 millions de dollars pour 3000 salariés HP représente un CA dans la vente de matériel avec 87 milliards de dollars en 2005. HP racheté Mercury pour 4,5 milliards de dollars en 2006  CA du logiciel 2 milliards avec ce rachat. HP consolide son offre de logiciels et concurrence IBM et Computer Associate

Outils d’aide réalisation suite Rational Robot de IBM Automatiser les tests de fonctionnalité et de régression des applications : .NET Java Web toutes les commandes VS.NET (VB.NET, J#, C# et Managed C++) Et autres applications graphiques.

Outils d’aide réalisation suite Outil de test de fonctionnalités, de régression et de configuration polyvalent Automatisation aisée des tests manuels Détection du plus grand nombre d'erreurs Scénarios de tests adaptés aux objets communs (menus, listes) et spécialisés aux objets spécifiques (environnement de développement) Intégration d'un outil de gestion des tests, suivi des erreurs : Team Unifying Platform

Outils d’aide réalisation suite QARun de Micro Focus mainframe, client/serveur au Web De la gestion des tests à la validation, du test fonctionnel au test de charge, les outils de la gamme QACenter sont : Qualité de code (DevPartner) Suivi des défauts (TrackRecord) Gestion des exigences (Reconcile, Optimal Trace) Tests fonctionnels (QARun, TestPartner, QADirector) Tests de performance (QALoad)

Outils d’aide réalisation suite Abbot (Open Source) Spécifique aux IHM réalisés en Java (Abbot signifie "A Better Bot") L’interface Costello permet d'enregistrer des actions Une API Java est disponible pour Junit. iRise Studio de iRise Permet la définition, les tests et la validation des fonctionnalités de solutions Web avant tout développement Propose une approche différente : on simule avant de livrer le produit ce qui permet de mieux coller aux résultats attendus

Les outils de campagne de tests

Outils de campagne Les principales fonctionnalités de ce type d’outils sont : La définition de campagnes de tests L’historisation des résultats La gestion des tests de non régression Ils servent à définir, organiser et conduire les campagnes de tests Interfaçage avec tous les outils. Ne sont pas des automates de tests Suites Intégrées d’outils de gestion de tests et automates  éviter la concurrence.

Outils de campagne suite TestDirector de Mercury Quality Center – HP Une seule application Web se charge de l'intégralité de la procédure de test : Gestion des besoins Planification Élaboration Organisation et exécution des tests Gestion des anomalies Analyse de l'état du projet La documentation

Outils de campagne suite Salomé TMF (Open Source) Un des rares outils libres de gestion de tests Organisation du plan de tests sous forme d'arbre hiérarchique Organisation des tests en campagnes, pour l'exécution Possibilité d'intégrer et d'exécuter des tests automatiques (JUnit, Abbot, Beanshell). Gestion des anomalies via Bugzilla ou Mantis Production de documents au format HTML. Architecture pouvant inclure des plugins (connexion à Junit, planification des tests-cronExec-...). C'est un logiciel multi plateformes (Java).

Outils de campagne suite Test Manager de Soft Edition.Net Se présente sous forme d'une application intranet. A pour but : De créer De planifier D’organiser les différentes sessions de tests Gestion documentaire Apport méthodologique pour des équipes de tests

Outils de campagne suite Liste des fonctions de Test Manager : Aide à la création et à l’organisation des documents de test Aide à la création des plans et stratégies de tests Dimensionne, organise et crée les campagnes de tests Délivre des rapports précis au responsable pour le suivi Suivi de la production, des campagnes et de la couverture fonctionnelle Établit le lien entre les documents et les spécifications Donne un statut en temps réel des campagnes de tests Point d’intégration avec les demandes de fonctionnalités Point d’intégration avec les anomalies

Outils de campagne suite QADirector de Micro Focus : permet de tester complètement une application avec une réutilisation des tests, un partage des informations et une facilité d’utilisation. Planification des tests Exécution des tests Variation des environnements de test Analyse dynamique de l'application testée Analyse des résultats des tests Soumettre les problèmes

Les outils de Tests Fonctionnels

Outils de tests fonctionnels Vérifier la conformité du fonctionnement d’un système vis-à-vis du cahier des charges. Ces outils évitent la création "manuelle" de scripts de tests Offre des fonctionnalités automatiques (génération de scripts de tests, de rapports des résultats attendus et atteints ou non) et des indicateurs graphiques Ces outils de génération automatique de tests nécessitent une modélisation fonctionnelle Ces outils sont une valeur ajoutée pour les projets de grande taille

Outils de tests fonctionnels Leirios Test Generator de LEIROS Réduction de plus de 30% de l'effort de conception des tests fonctionnels Avec une couverture des tests 2 à 5 fois supérieure. Une modélisation fonctionnelle à partir des Spécifications Techniques Utilisation du modèle par "générateur de tests LTG" pour créer les cas de tests L’utilisateur paramètre simplement ses critères de couverture Le "générateur de scripts LTG" compose alors les scénarios de tests Les scripts ainsi créés sont exécutés dans l’environnement dédié (banc de test).

Outils de tests fonctionnels

Outils de tests fonctionnels Conformiq Test Generator de Conformiq Software Permet d'effectuer des tests sur les problèmes de synchronisation Création d'une plate-forme commune pour les concepteurs et testeurs Large couverture de test Maintenance simple de l'environnement de test - modèles de test graphiques. Résultats des tests et des couvertures de tests automatisés Permet de générer des scripts de test hors ligne

Outils de tests fonctionnels

Les outils de tests structurels

Outils de tests structurels Ces outils permettent de valider ce que fait le logiciel testé. Ils sont donc complémentaires aux outils de tests fonctionnels qui vérifient, eux, ce que doit faire le logiciel. C’est pourquoi des éditeurs ont créé des suites comprenant ces deux types de tests.

Outils de tests structurels C++test, .TEST, Jtest, SOAtest et Insure++ de PARASOFT Développe et commercialise des outils d’aide à la détection des erreurs dans les logiciels. Produits liés au développement orienté objet et web Basés sur la méthodologie AEP (Automated Error Prevention), ces outils mettent en œuvre une démarche de prévention. La technologie Bug Detective révèle les bugs à l’exécution en pistant et simulant les chemins d’exécution automatiquement

Outils de tests structurels Rational Test RealTime de IBM Solution multiplateforme pour les langages C, C++, Java et Ada Produit particulièrement adapté pour les applications embarquées ou les autres types de produits informatiques nomades Prise en charge des applications critiques et confidentielles embarquées Pro activité pour déboguer, détecter et corriger les erreurs avant qu'elles n'affectent le code de production

Outils de tests structurels xUnit : JUnit, PHPUnit, CPPUnit, PyUnit, … Propulsé par le succès de l'Extreme Programming (XP), le Test-Driven Developpement ou TDD est devenu une évidence Le principe du TDD est donc, avant même d'écrire le code d'une fonctionnalité, d'écrire le test pour ce futur code Le code de la fonctionnalité devra toujours passer correctement le test avant de pouvoir valider celle-ci. JUnit 4.0 teste le code au moyen d'assertions, simulant diverses situations possibles

Les outils de tests de performance

Outils de tests de performance Les tests de performances sont menés pour des sites Web ou Intranet Répondre aux exigences de performance d’accès au site Les outils de tests de performance proposent souvent : Le test de montée en charge La simulation d'un environnement spécifique L’évolution agressive de l'accès aux ressources

Outils de tests de performance WAPT de SoftLogica Enregistre des scénarios de tests Les rejouer à volonté Fait varier : le nombre d'utilisateurs, l'intervalle entre chaque test Le principe : Simule des adresses IP hétéroclites Paramétrages cookies, données d'entrée pour différentes pages, nom et mot de passe, vitesse de connexion et son propre "chemin" dans l'application Temps aléatoire entre les "clics d'utilisateurs" : réalisme de l’utilisateur virtuel

Outils de tests de performance Siege (Open Source) Simuler nombre de connexions sur un site web Ne dispose pas d'une interface utilisateur (à la différence de WAPT) Un scénario en lisant une liste d'URL à partir d'un fichier Stresser une seule URL avec un nombre défini d'utilisateurs Un utilitaire de capture de trafic Sproxy permet de faire varier les tests

Outils de tests de performance JMeter (Open Source) du groupe Apache Outil de tests de performance pour ressources statiques ou dynamiques Simuler de lourdes montées en charge : serveur/réseau Mesurer les performances de sites Internet, serveurs FTP, BDD, Scripts Perl, objets java Autres Outils : Performance Center de Embarcadero, Mercury LoadRunner de Mercury Quality Center – HP , QALoad de Micro Focus

Bilan et perspective

BILAN ET PERSPECTIVE Les tests ont évolué au fil des années : De 1960 à 1980, il s’agissait d’une mise au point. De 1980 à 1990, les tests cherchaient uniquement à trouver des erreurs. Depuis 1990, les tests se veulent préventifs. - Les applications sont de plus en plus complexes, les volumes de données sont de plus en plus grands… Il était obligé que les tests occupent à nouveau au devant de la scène (Nombreux outils, Certaines sociétés ont leur propre structure de tests…) - L’Extreme programming (Méthode agile de gestion de projets) qui a compris et intégré les tests dans son cycle itératif de développement. Même le Cloud Computing, qui est un concept émergent est impacté par ce nouvel élan pour les tests (nuages de serveurs) : on parle déjà de HaaS (Human as a Service) qui consiste à externaliser le capital humain ! Autrement dit, les tests !

Conclusion

CONCLUSION Nous avons tenté de présenter le plus simplement possible ce vaste sujet des tests.   Il n’existe pas de techniques meilleures que d’autres : Tout dépend de nos besoins, de nos objectifs… Rien n’empêche de combiner plusieurs techniques. C’est ce que nous préconisons d’ailleurs. Nous avons vu qu’aujourd’hui que les tests faisaient l’objet d’une pratique encore trop souvent artisanale mais que dans un futur proche, les tests seront une activité rigoureuse fondée sur des modèles et des théories et qu’elle sera de plus en plus automatisée. Il ne fait aucun doute que la politique de tests est aujourd’hui une dimension incontournable de la gestion de projet.

QUESTIONS Nous vous remercions de votre attention. Avez-vous des questions ?