CNAM DE LILLE U.E. GLG101 "TEST ET VALIDATION DU LOGICIEL" Willy ANDRZEJAK

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

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 JBoss Entreprise Middleware

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)

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programme de formation

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 test automatisé des applications web modernes

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications

Gestion du centre de données et virtualisation

IBM Tivoli Monitoring, version 6.1

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

La solution Full Web pour optimiser vos équipements

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows.

serena.com Processus et réussite Accélérez avec Serena TeamTrack

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

et Groupe Eyrolles, 2006, ISBN :

Architectures web/bases de données

Les entreprises qui adoptent les communications unifiées et la collaboration constatent de réels bénéfices

Qu'est-ce que le BPM?

Suite IBM Tivoli IT Service Management : comment gérer le système d information comme une véritable entreprise

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Communiqué de Lancement

DotNet. Plan. Les outils de développement

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Refonte front-office / back-office - Architecture & Conception -

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Business & High Technology

Microsoft Application Center Test

CQP Développeur Nouvelles Technologies (DNT)

Business Process Management 2010 : La Solution IBM Maximiser l agilité de l entreprise UNE ETUDE DE JEMM RESEARCH

IBM CommonStore for SAP V8.4 fournit un nouveau support complet pour ILM à partir de la gestion de la rétention des données SAP

Ingénieur Développement Nouvelles Technologies

CA ARCserve Backup. Avantages. Vue d'ensemble. Pourquoi choisir CA

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

Microsoft Dynamics AX 2012 Une nouvelle génération de système ERP

Notre Catalogue des Formations IT / 2015

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Chapitre 1 : Introduction aux bases de données

Concepts et définitions

ManageEngine IT360 : Gestion de l'informatique de l'entreprise

CA ARCserve Backup r12

Tableau Online Sécurité dans le cloud

Offres de stages 2011/2012

Annexe : La Programmation Informatique

Éditions QAD On Demand est disponible en trois éditions standard : QAD On Demand is delivered in three standard editions:

M Études et développement informatique

Analyse,, Conception des Systèmes Informatiques

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Clients et agents Symantec NetBackup 7

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

La solution IBM Rational pour une ALM Agile

Le rôle Serveur NPS et Protection d accès réseau

G. Méthodes de déploiement alternatives

1. Considérations sur le développement rapide d'application et les méthodes agiles

Olivier Deheurles Ingénieur conception et développement.net

La haute disponibilité de la CHAINE DE

Travail collaboratif. Glossaire

Expert technique J2EE

Accès Mobile Sécurisé à L'aide de VPN SSL

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

FTP Expert 3 est idéal pour :

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

2. Activités et Modèles de développement en Génie Logiciel

Business Intelligence avec SQL Server 2012

M2 SIAW - Exemples de stages réalisés. Gabriella Salzano - Document de travail - 28/1/2015

Projet : PcAnywhere et Le contrôle à distance.

LIVRE BLANC DECIDEUR. Newtest : contribution à ITIL. Newtest et ITIL...3. Gestion des niveaux de service - Service Level Management...

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

CA ARCserve r16 devance Symantec Backup Exec 2012

DOSSIER SOLUTION : CA RECOVERY MANAGEMENT

Présentation du déploiement des serveurs

CA ARCserve r16 devance Veeam Backup and Replication 6.5 dans le domaine de la protection virtuelle

Conditions Particulières de Maintenance. Table des matières. Ref : CPM-1.2 du 08/06/2011

Analyse comparative entre différents outils de BI (Business Intelligence) :

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Outil de gestion et de suivi des projets

Rapport de certification

Business Intelligence avec SQL Server 2012

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

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

ORACLE DIAGNOSTIC PACK 11G

Opérateur global de la performance IT

Optimisez vos processus informatiques, maximisez le taux de rendement de vos actifs et améliorez les niveaux de service

ES Enterprise Solutions

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

IBM Business Process Manager

Guide d'installation. Release Management pour Visual Studio 2013

DOSSIER SOLUTION : CA ARCserve r16. Recours au Cloud pour la continuité d'activité et la reprise après sinistre

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

Transcription:

CNAM DE LILLE U.E. GLG101 "TEST ET VALIDATION DU LOGICIEL" Willy ANDRZEJAK Benoît PASSION et Olivier PATRIS Auteurs : Benoît PASSION et Olivier PATRIS Page 1

SOMMAIRE 1 INTRODUCTION... 3 2 LES DIFFERENTS TYPES DE TESTS... 4 2.1 LES TESTS UNITAIRES...4 2.2 LES TESTS D INTEGRATION...4 2.3 LES TESTS SYSTEMES / DE VALIDATION...5 2.4 LES TESTS DE CONFORMITE...5 2.5 LES TESTS D USABILITE...5 2.6 LES TESTS DE NON-REGRESSION...6 3 LES OUTILS DE TESTS DU MARCHE... 7 3.1 LES OUTILS D AIDE A LA REALISATION DES TESTS...7 3.2 LES OUTILS DE GESTION DE CAMPAGNE DE TESTS...9 3.3 LES OUTILS DE TEST DE PERFORMANCE... 12 3.4 LES OUTILS DE GENERATION DE TESTS FONCTIONNELS (BOITE NOIRE)... 14 3.5 LES OUTILS DE GENERATION DE TESTS STRUCTURELS (BOITE BLANCHE)... 21 4 CONCLUSION... 23 Auteurs : Benoît PASSION et Olivier PATRIS Page 2

1 INTRODUCTION La vérification du logiciel a pour but de démontrer que les produits logiciels issus d'une phase du cycle de développement sont conformes aux spécifications établies lors des phases précédentes. Elle a également pour but de détecter des erreurs de codes (bugs) qui peuvent avoir été introduites au cours des phases précédant la vérification. La validation du logiciel est composée d'une part de tests (partie prédominante pour les logiciels de faible taille) et d'autre part d'activités de revues et d'analyse. Pour résoudre les problèmes engendrés par ces différentes phases et réaliser les tests de manière efficace un outil global de gestion des tests peut s'avérer nécessaire. En effet, les phases de tests peuvent être considérées comme une activité coûteuse en temps et financièrement, qui gagne donc à être supportée par des outils informatiques spécialisés. Les meilleurs outils, des suites logicielles complètes, apportent les fonctionnalités suivantes : L exécution des tests. La gestion de campagnes de tests. Le test de performance du logiciel. La génération de tests fonctionnels. La génération de tests structurels. Il existe une multitude d outils sur le marché, du plus simple ne considèrant qu un test particulier, au plus complet qui couvre une grande partie des différents types de tests logiciels. Cette présente étude a pour but de dresser un panorama des outils de tests les plus connus et utilisés sur le marché européen et/ou américain. Les leaders seront détaillés afin d exposer les points forts qui les caractérisent. Il est évident que l évolution du marché des outils de tests est étroitement lié à celui des technologies relatives à la programmation et au développement de solutions informatiques des entreprises, qui est en constante mutation. Régulièrement, les éditeurs perfectionnent leurs outils de tests ou en proposent de nouveaux pour rester dans la course. Auteurs : Benoît PASSION et Olivier PATRIS Page 3

2 LES DIFFERENTS TYPES DE TESTS Avant d exposer les outils de tests, il peut être intéressant de faire un rapide tour des différents types de tests existants afin d en faire ensuite le rapprochement avec les outils correspondants, s il existent. 2.1 LES TESTS UNITAIRES Type de test... Boîte blanche. Acteurs... MOE (développeurs). Quand... Durant le développement du logiciel. Outils associés... Bibliothèques logicielles, API selon le langage (PHPUnit, SimpleTest, JUnit...). Les tests unitaires permettent d identifier les erreurs dans la logique du programme. Typiquement, c'est le développeur qui mène ce test. Il valide ainsi l unitié du logiciel (petite portion de programme comme une procédure, une méthode, une classe, un petit nombre de classes ou encore un paquetage) qu il a créée. Le test unitaire présente les avantages suivants : Ce type de test est "efficace" : le test unitaire permet en effet de détecter et de corriger des erreurs à un coût beaucoup plus faible que le test du programme complet. Il permet de produire des conditions de tests qui sont difficiles à atteindre lors du fonctionnement normal du système. Il permet enfin d'obtenir un bon taux de couverture des cas possibles. Le test unitaire a l'inconvénient de nécessiter l'écriture de lanceurs et de bouchons : Un lanceur (ou "driver") est un programme qui permet d'exécuter directement une opération à tester en paliant l inexistance du programme appelant. Un bouchon (ou "stub") est un programme qui permet de remplacer une opération (appelée) pour laquelle on ne dispose pas encore du code. > Les outils de tests associés doivent permettre de couvrir automatiquement tous les cas de test possibles (parfois des milliers) du module développé. 2.2 LES TESTS D INTEGRATION Type de test... Boîte blanche et boîte noire. Acteurs... MOE (cellule métier-produit) parfois MOA (utilisateurs spécifiques). Quand... Fin du développement du logiciel. Outils associés... Tout automate de tests. Les tests d intégration vérifient le bon fonctionnement d'unités fonctionnelles constituées d'un assemblage de modules. Une application (particulièrement si codée en utilisant la technologie orientée objet) n'est jamais construite d'un seul bloc, mais plutôt en sous unités fonctionnelles, elles-mêmes composées d'unités logiques plus petites granularité allant jusqu'aux unités de base (fonctions ou méthodes). Actuellement, le développement logiciel s oriente vers la construction d'applications modulaires ; les modules constituant des unités relativement indépendantes, capables de communiquer entre eux. Cela permet une meilleure maintenance applicative. Auteurs : Benoît PASSION et Olivier PATRIS Page 4

> L objetif des outils de test d'intégration portent donc principalement sur la vérification des enchaînements entre ces modules, la circulation des données, les aspects dynamiques, les séquences d'événements prévus et les reprises en cas d'interruption. 2.3 LES TESTS SYSTEMES / DE VALIDATION Type de test... Boîte noire. Acteurs... MOA (groupe représentatif du panel complet des utilisateurs). Quand... Avant l intégration du logiciel. Outils associés... Tout automate de tests. Ces tests, menés à l'issu des tests d'intégration, sont parfois appelés "bêta-tests". Ils sont menés sur l'ensemble de l'application déployée dans l'environnent dédié. parfois ils ne sont pas clairement nommés, et souvent confondus avec les tests d'intégration. Les tests systèmes visent à s'assurer que le logiciel implanté dans le matériel répond aux spécifications fonctionnelles, en vérifiant plus particulièrement les fonctions générales, les interfaces matérielles/logicielles, le fonctionnement temps réel, les performances, l'utilisation et l'allocation des ressources systèmes. > Les outils de tests systèmes sont souvent des benchmarcks qui fournissent des indicateurs (occupation de la bande passante, rapports d erreur mémoire, etc.). 2.4 LES TESTS DE CONFORMITE Type de test... Boîte noire. Acteurs... MOE (chef de projet) et MOA (chef de projet). Quand... Fin du développement, en parallèle des tests systèmes. Outils associés... Aucun - Utilisateurs ou cellule de tests. Les tests de conformité valident la parfaite appréhension du logiciel par l utilisateur final. L application doit remplir son rôle fonctionnel (métier) tout en étant accessible par l utilisateur. Il s agit ici d éviter le syndrôme de "l outil d informaticien". > Il n y a pas d outil de tests correspondants car il s agit d une appréhension du logiciel développé. 2.5 LES TESTS D USABILITE Type de test... Boîte noire. Acteurs... MOE (chef de projet) et MOA (chef de projet) et panel d'utilisateurs. Quand... Durant le développement, avant de fixer les IHM. Outils associés... Aucun. Moins courant que ses prédécesseurs, le test d'usabilité est destiné à vérifier non pas le bon fonctionnement d'une application, mais la qualité de son ergonomie, son accessibilité pour l'utilisateur final. C'est avant tout le test de la qualité de l'interface homme machine (I.H.M.). > Il n y a pas d outil de tests correspondants car il s agit d une mesure de "qualité" de l ergonomie. Auteurs : Benoît PASSION et Olivier PATRIS Page 5

2.6 LES TESTS DE NON-REGRESSION Type de test... Boîte noire, parfois boîte blanche. Acteurs... MOA. Quand... Dans le cadre de l'évolution d'une application. Outils associés... Quality Forge (TestSmith). Les test de non-regression permettent de s assurer qu'il n'y a pas eu de dégradation des fonctions du logiciel par rapport à la version précédente. Les évolutions apportées ne doivent en aucun cas détériorer, par effet de bord, les fonctionnalités qui étaient jusqu à lors opérationnelles. > Les automates de tests offrent la possibilité d enregistrer les scénarios de tests que l on crées. Ainsi, lors de l évolution d une application, il est tout à fait possible de relancer ces mêmes campagnes de tests afin de s assurer qu il y a pas eu dégradation des fonctionnalités développées lors des version antérieures. Auteurs : Benoît PASSION et Olivier PATRIS Page 6

3 LES OUTILS DE TESTS DU MARCHE Des sociétés se sont spécialisées dans la distribution de produits pour le test du logiciel, couvrant certains types de tests en fonction de leur spécialisation. En voici certains des plus connus. 3.1 LES OUTILS D AIDE A LA REALISATION DES TESTS Encore appelés "automates de tests" ces outils presentent des 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. Mercury Winrunner et QuickTest Pro de Mercury Quality Center http://www.mercury.com/fr/products/quality-center/functional-testing/winrunner http://www.mercury.com/fr/products/quality-center/functional-testing/quicktest-professional Mercury Quality Center fournit un ensemble d'outils Web permettant de gérer et d'automatiser les tests de qualité logicielle dans un large éventail d'environnements applicatifs. Mercury Quality Center comprend des produits leaders tels que Mercury TestDirector, Mercury QuickTest Professional et Mercury WinRunner. WinRunner et QuickTest Professional sont des automates de nouvelle génération. Cette suite permet de créer un ensemble de tests, de le gérer en testant l'application tout au long du cycle de développement et de coordonner les résultats. Pour définir un test, Mercury WinRunner enregistre simplement les actions de l'utilisateurs sur l'interface du programme à traiter (processus métier type : commande d'un article saisi d'un client...). Les scripts générés peuvent etre modifiés pour répondre aux besoins de tests les plus complexes. Ensuite, les testeurs peuvent ajouter des points de contrôle, qui comparent les résultats attendus et réels obtenus lors de l'exécution du test. Il est même possible de vérifier les valeurs des bases de données afin de garantir la précision des transactions et l'intégrité des bases de données, en mettant en évidence les enregistrements qui ont été mis à jour, modifiés, supprimés et insérés. Lors de l'exécution des tests, Mercury WinRunner fait fonctionner l'application automatiquement, simulant un utilisateur réel exécutant chaque étape du processus métier. Cet outil fonctionne exclusivement sur plateforme Microsoft Windows. Pourquoi deux versions d'un même type d'outil chez le même editeur? WinRunner existe depuis 1995. La premiere version de QuickTest Pro date de 2002. Ce dernier a été réalisé comme la suite logique du premier englobant ses fonctionnalités et rajoutant les siennes. A la base QuickTest Pro avait été crée parce que WinRunner gerait les environnements Web. WinRunner a fondamentalement été supplenté par QuickTest Pro. WinRunner est plus complexe à mettre en oeuvre, son langage de script (TSL) est propriétaire. QuickTest Pro utilise le même langage (par souci de compatibilité) mais aussi VBScript largement plus répandu. L'interface de QuickTest Pro est plus ergonomique à utiliser, facilement manipulable par point and click et donc ainsi plus accessible à un novice. Auteurs : Benoît PASSION et Olivier PATRIS Page 7

QARun de Compuware - http://www.compuware.com/products/qacenter/default.htm Issu de la gamme QACenter. Du mainframe au Web, en passant par le client/serveur, de la gestion des tests à la validation, du test fonctionnel au test de charge, les outils de la gamme QACenter permettent aux entreprises de réaliser des tests de performances cohérents et fiables. Grâce à QARun, les programmeurs obtiennent les fonctionnalités d'automatisation dont ils ont besoin pour créer et exécuter des scripts de tests rapidement et de façon productive ainsi que pour vérifier les tests et analyser les résultats. Abbot (Open Source) - http://abbot.sourceforge.net Spécifique aux IHM réalisés en Java (Abbot signifie "A Better Bot"), cette application permet d'enregistrer des actions via une interface (Costello) sur l'application testée. Ces scenarios de tests peuvent ensuite être rejoués à volonté. Une API Java est disponible pour automatiser ces tests avec Junit. Citons encore dans cette catégorie : Rational Robot de IBM - http://www-306.ibm.com/software/info/ecatalog/fr_fr/products/k108274u58759i63.html Comme les précédents, il permet d'automatiser les tests de fonctionnalité et de régression des applications.net, Java, Web et autres applications graphiques. Outil de test de fonctionnalités, de régression et de configuration polyvalent adapté aux environnements où les applications sont développées dans plusieurs environnements intégrés et/ou langages de programmation. Automatisation aisée des tests manuels : La réalisation de tests de régression avec IBM Rational Robot constitue une bonne introduction à l'automatisation, car l'outil est simple à utiliser et permet aux testeurs de découvrir les processus d'automatisation à mesure qu'ils évoluent dans leur travail. Détection d'un plus grand nombre d'erreurs : Les ingénieurs spécialisés dans l'automatisation des tests peuvent détecter un plus grand nombre d'erreurs en ajoutant à leurs scripts de test des opérateurs logiques conditionnels pour couvrir davantage l'application et définir des scénarios de test pour appeler des fichiers exécutables ou des bibliothèques DLL externes. Auteurs : Benoît PASSION et Olivier PATRIS Page 8

Mise à disposition de scénarios de test adaptés aux objets communs (menus, listes et images bitmap) et de scénarios de test spécialisés adaptés aux objets spécifiques à l'environnement de développement. Intégration d'un outil de gestion des tests et compatibilité avec les outils de la plateforme IBM Rational Team Unifying Platform dédiés au suivi des erreurs, à la gestion des modifications et à la traçabilité des exigences. Prise en charge de plusieurs technologies variées : Java, Web et toutes les commandes VS.NET (VB.NET, J#, C# et Managed C++). irise Studio de irise - http://www.irise.com/products/studio.php Plateforme permettant la définition, les tests et la validation des fonctionnalités de solutions Web avant tout développement. irise propose une approche différente de la phase de test : on simule avant de livrer le produit ce qui permet de mieux coller au résultat attendu. 3.2 LES OUTILS DE GESTION DE CAMPAGNE DE TESTS Les principales fonctionnalités de ce type d outils sont : La définition de campagnes de test. L historisation des résultats. La gestion des tests de non-regression. Les outils de gestion des plans et campagnes de test servent à définir, organiser et conduire les campagnes de tests. Il doivent donc s'interfacer avec tous les outils qui interviennent dans les tests. Les outils de gestion des tests ne sont donc pas des automates de test. Certains éditeurs de logiciels ont sorti des suites intégrées comprenant outil de gestion de test et automates afin d éviter l interfacage entre des outils d éditeurs différents. TestDirector de Mercury Quality Center - http://www.mercury.com/fr/products/quality-center/testdirector Cet outil, complet comme ceux de la famille Mercury, prend en charge via une seule application Web 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 Dans cette suite, TestDirector est un outil de gestion intégré qui organise et gère les processus de tests. TestDirector devient le point central de l'organisation, de la documentation et la structure dans chaque projet de test. TestDirector peut organiser une combinaison de tests manuels et automatiques, de régression, de charge, dans le même plan hiérarchique et visuel, ce qui permet de bien analyser la portée de tous les tests. Auteurs : Benoît PASSION et Olivier PATRIS Page 9

Une fois le planning fait, TestDirector peut exécuter les tests manuels et automatiques, séparement ou groupés. Il organise lui-même des petites combinaisons de tests qui permettent plus de spécificité dans le test. L'interface de TestDirector s'adapte aussi à l'utilisation des autres outils de test comme LoadRunner (test de charge et de performance) ou WinRunner (test fonctionnel). Les tests réalisés, les résultats (succès ou échec) sont stockés dans la base de données de Testdirector, afin d'être étudiés et utilisés. Très évolué, TestDirector permet la gestion des défaut de l'application : l'analyse des défauts est ce qui aide essentiellement les intégrateur à prendre la décision de "go/no-go" au sujet du déploiement de l'application. Le gestionnaire de défaut de TestDirector (Defect Management) supporte le cycle de vie entier d'un bug de conception de la détection initiale du problème à la correction. Ceci assure qu'aucun défaut n'est négligé ou n'est clôturé avant qu'il n'ait été corrigé et validé. La force de TestDirector est aussi qu'avant qu'un nouveau défaut soit soumis, une fonction examine la base de données pour déceler les défauts semblables ou les défauts doubles réduisants au minimum le besoin de contrôle et l'élimination manuelle. Salomé TMF (Open Source) - https://wiki.objectweb.org/salome-tmf Salomé-TMF est un des rares outils libres de gestion de tests. Les principales fonctionnalités de Salomé-TMF sont : Organisation du plan de tests sous forme d'arbre hiérarchique. Organisation des test 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 testscronexec-...). Son systeme de plugins offre un certain avantage pour peu d'avoir des connaissances en Java. Auteurs : Benoît PASSION et Olivier PATRIS Page 10

C'est aussi, grâce à Java, un logiciel multi-plateformes. Citons également encore dans cette catégorie : Test Manager de Soft Edition.Net - http://softedition.net/homepage.html Sous forme d'une application intranet Test Manager a pour but d aider les managers responsables d équipes de tests à créer, planifier et organiser leurs différentes sessions. C est aussi une gestion documentaire et un apport méthodologique pour vos équipe de tests. Liste des fonction de Test Manager : 1. Aide à la création et à l organisation de vos documents de test 2. Aide à la création de vos plans et stratégies de tests 3. Dimensionne, organise et créez vos campagnes de tests 4. Délivre des rapports précis à votre Top Management pour le suivi 5. Suivi de la production, des campagnes et de la couverture fonctionnelle 6. Etablit le lien entre vos documents de tests et vos spécifications 7. Donne un statut précis et en temps réel pour toutes vos campagnes de tests 8. Point d intégration avec vos Demandes de fonctionnalités 9. Point d intégration avec vos Anomalies (Bugs) Pour résumer, Test Manager aide les gestionnaires de projets de tests à planifier et à assurer le suivi de leurs sessions de tests. Test Manager, au sein d une gestion documentaire, aide aussi les équipes de tests à créer rapidement et efficacement tous les documents de tests dont elles ont besoin. Test Manager vous permettra de mieux tester votre logiciel (ou votre produit en général) et accélérera de ce fait la mise sur le marché. Qualité et accroissement de la productivité de vos équipes sont les deux principaux bénéfices de ce logiciel. Test Manager est un produit concurrent de Test Director de Mercury, mais se distingue par son prix. Le prix de Test Director est environ 24 fois supérieur. Ceci est dû en partie business model adopté par notre société (tout se fait via le Web : Support, renseignements commerciaux, etc.). Auteurs : Benoît PASSION et Olivier PATRIS Page 11

QADirector de Compuware - http://www.compuware.fr/products/qacenter/qadirector/index.htm Comme les autres outils de cette catégorie, QADirector vous donne un environnement de travail pour gérer le processus de test dans sa globalité, de la conception à l'exécution et l'analyse. QADirector est une solution de gestion des tests efficace et extensible pour des tests complets du cycle de vie des applications distribuées étendues. D'un seul point de contrôle : Planifiez facilement vos tests Exécutez vos tests Faîtes varier les environnements de test Analysez dynamiquement l'application testée Analysez les résultats des tests Soumettez les problèmes Une architecture ouverte intègre un large éventail d'outils de développement et de test automatisés requis pour tester complètement vos applications tout en préservant les investissements existants. QADirector permet aux testeurs, aux développeurs et aux managers de tester complètement une application avec une réutilisation des tests, un partage des informations et une facilité d'utilisation améliorés. 3.3 LES OUTILS DE TEST DE PERFORMANCE Les outils de test 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. Les tests de performances d'une application sont souvent menés pour des sites Web ou Intranet. En effet, lors du développement de sites Web il y a souvent des exigences quant aux performances d accès au site (afin d éviter des temps d accès trop longs). WAPT de SoftLogica - http://www.loadtestingtool.com WAPT est un outil de test de charge pour applications Web et intranet. Il enregistre des scénarios de tests puis permet de les rejouer à volonté en faisant varier : le nombre d'utilisateurs, l'intervalle entre chaque test, etc. WAPT emploie plusieurs techniques avançées pour simuler de vraies conditions de charge. Cette approche est beaucoup plus efficace que d'envoyer simplement beaucoup de demandes identiques au serveur en rafale. En fait WAPT simule un grand nombre d'utilisateurs différents venant d adresses IP hétéroclites ; chacune avec ses propres paramètres : 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. WAPT peut même simuler un temps aléatoire entre les "clics d'utilisateurs" afin de rendre les actions de ces "utilisateurs virtuels" aussi réalistes que possible, proches de celles de véritables utilisateurs. Si vous voulez simuler des milliers d'utilisateurs, vous n'avez pas besoin d'indiquer le comportement séparé pour chacun d'eux. La pratique prouve qu'habituellement les visiteurs d'un site peuvent être divisés en plusieurs catégories cette approche est employée par WAPT. Il suffit d indiquer le comportement pour chaque type d'utilisateurs désiré, et vous ajoutez dans la campagne de tests autant de ces types d'utilisateurs dont vous avez besoin. Par exemple, des utilisateurs d'un magasin en ligne peuvent être divisés entre ceux qui passent en revue le catalogue, et ceux connectés à une certaine page, ajoutant une charge spécifique. Auteurs : Benoît PASSION et Olivier PATRIS Page 12

Pour chaque type vous créez un profil séparé ou toutes ses données peuvent être indiquées. A chaque test vous pouvez employer autant d'utilisateurs virtuels de chaque type que vous avez besoin. Les demandes HTTP peuvent inclure des paramètres spécifiques à chaque utilisateur. Les valeurs de tels paramètres peuvent même être différentes pour chaque utilisateur du même type et peuvent changer dans toute la session. Par exemple, le serveur peut envoyer une variable de session en réponse à la première demande d'un nouvel utilisateur. Cette variable est ajoutée aux demandes suivantes de cet utilisateur afin de les identifier. Vous pouvez indiquer comment employer ces paramètres changeants via une interface graphique. Vous pouvez choisir le niveau constant de charge pendant tout le temps du test ou augmenter la charge par intervalle. Vous pouvez indiquer la période globale du test et le nombre d'utilisateurs virtuels pour chaque profil. La charge globale dépend également des types d'utilisateurs, ainsi les profils connectés peuvent varier au cour du test. Les résultats du test sont visualisés sous forme de rapports et de graphiques descriptifs. Ils sont disponibles à chaud pendant le déroulement du test. Ainsi vous pouvez surveiller les paramètres principaux de l'exécution des enchaînements en marches et suivre la réponse de votre site face au volume croissant de la charge. Mercury LoadRunner de Mercury Quality Center http://www.mercury.com/fr/products/performance-center/loadrunner LoadRunner est le produit de Mercury chargé des tests de stress et de montée en charge. L'avantage de LoadRunner par rapport a ses concurrents réside dans la multitude de types d'applications gérées. De plus, grâce à la précision des données obtenues, chaque test de charge fournit au développeur des résultats pouvant donner lieu à une action. Exemple : lors d'une transaction lente au niveau de l'utilisateur final, le developpeur peut accéder à la méthode ou à l'instruction SQL présentant un goulet d'étranglement qui provoque le ralentissement. LoadRunner évite les problèmes de performances coûteux rencontrés en production en détectant les goulets d'étranglement avant le déploiement d'un nouveau système ou d'une mise à niveau. Vous pouvez vous assurer que des applications nouvelles ou mises à niveau fourniront les résultats métier recherchés avant le déploiement, et ainsi éviter des dépenses excessives sur le matériel et l'infrastructure. Véritable référence du secteur en matière de prévision du comportement et des performances du système, ce produit constitue la seule solution intégrée de tests de charge, d'optimisation et de diagnostic proposée aujourd'hui sur le marché. Avec Loadrunner, vous pouvez évaluer les performances, les applications de diagnostic et les goulets d'étranglement sur le système du début à la fin et les régler pour obtenir une meilleure performance ; tout cela à partir d'un seul point de contrôle. Il prend en charge de nombreux environnements d'entreprise, notamment Web Services, J2EE et.net. Avec LoadRunner, vous pouvez : Obtenir un tableau précis des performances système de bout en bout. Vérifier que les applications nouvelles ou mises à niveau répondent aux besoins de performances spécifiés. Identifier et éliminer les goulets d'étranglement des performances pendant le cycle de vie du développement. LoadRunner comprend désormais une technologie avec changement des jeux qui réduit le processus de création de scripts à quelques clics de souris. Web (Click and Script) for LoadRunner vous permet d'enregistrer des scripts sur une couche de présentation plus élevée. Il identifie automatiquement les meilleurs scripts et crée des scripts auto-explicatifs courts et intuitifs qui réduisent de 80 % la maintenance et le temps de création des scripts. Ces scripts sont également Auteurs : Benoît PASSION et Olivier PATRIS Page 13

beaucoup plus simples à gérer puisque tout le monde a accès au script et peut rapidement en visualiser l'évolution à chaque message. Web (Click and Script) for LoadRunner diminue en plus les qualifications techniques nécessaires à l'élaboration de tests de charge. Siege (Open Source) - http://www.joedog.org/joedog/siege Un outil Open Source permettant de simuler nombre de connexions sur un site web. Le désavantage par rapport a un outil comme WAPT réside dans le fait qu'il ne dispose pas d'une interface utilisateur. Il peut jouer un scénario en lisant une liste d'url à partir d'un fichier ou stresser une seule URL avec un nombre défini d'utilisateur. Ces URL peuvent etre capturées et modifiées en fonction des besoins et pour faire varier les profils de test en utilisant Sproxy, un utilitaire de capture de traffic du même auteur. JMeter (Open Source) du groupe Apache - http://jakarta.apache.org/jmeter JMeter est un outil de test de performance pour ressources statiques ou dynamiques, créé le 15 décembre 1998 par Stefano Mazzocchi. Il est hébergé sur le site du Projet Jakarta. JMeter peut simuler de lourdes montées en charge sur une application serveur ou sur un réseau. Codé 100% en Java, interface graphique en Swing. JMeter permet de mesurer les performances de : Sites Internet Serveurs FTP Bases de données (via les drivers JDBC) Scripts Perl Objets JAVA (applets) Citons encore dans cette catégorie : QALoad de Compuware - http://www.compuware.com/solutions/qaload.htm Outil de monté en charge de la suite QACenter. Performance Center de Embarcadero http://www.embarcadero.com/products/performancecenter/index.html C est un portail de qualité industrielle de suivi et de reporting des performances de bases de données. En proposant une détection automatique des problèmes qui menacent la disponibilité et performance des bases supervisées par cet outil, l'administrateur de la base est informé de problèmes potentiels et peut ainsi agir d'une façon proactive afin d'épargner aux utilisateurs des lenteurs et/ou dysfonctionnement. e-load de Empirix - http://www.empirix.com/products/testing/e-load.asp Test de charge et performance d'application web. 3.4 LES OUTILS DE GENERATION DE TESTS FONCTIONNELS (BOITE NOIRE) L objectif des outils de génération de tests fonctionnels est de vérifier la conformité du fonctionnement d un système vis-à-vis des exigeances de l utilisateur (plus globalement du cahier des charges). Ces outils évitent la création "manuelle" de scripts de tests, qui prend du temps et qui n est pas forcément parfaite. Les éditeurs proposent donc des outils les plus complets possibles, en offrant un maximum de fonctionnalités automatiques (génération de scripts de tests, de rapports des résultats attendus et atteints ou non, etc.) et d indicateurs graphiques pour une utilisation conviviale, aisée et rapide. Auteurs : Benoît PASSION et Olivier PATRIS Page 14

Les outils de génération automatique de tests nécessitent une modélisation fonctionnelle (notation B, Statecharts Statemate et/ou UML selon l outil). Dans le cas d UML il s agit de diagrammes de classe, d activité et d états / transitions avec expressions OCL. A partir de là, le modèle est analysé et, grâce à un moteur algorithmique propre à chaque éditeur, des scripts de tests sont générés, pour une couverture maximale des cas possibles. Ces scripts scénarios sont exécutés dans un environnement dédiés et les résultats analysés avec tableaux de résultats, etc. Ces scénarios peuvent être sauvegardés, modifiés et rejouer à volonté. Les outils de génération automatique de tests sont donc véritablement une valeur ajoutée pour les projets de grande taille où la complexité des fonctionnalités grèveraient le le capital financier et temps de la partie relative aux tests. Leirios Test Generator de LEIROS - www.leiros.com Créé en 2003, Leirios est un éditeur de logiciels de génération automatique de tests. Prix de la meilleure innovation technologique de Capital-IT 2007 et Prix de l Entreprise d Avenir 2006 pour la Région Est, Leirios est un essaimage du Laboratoire Informatique (CNRS/INRIA) de l Université de Franche-Comté. Leirios Smart Testing est aujourd hui utilisée par des grands industriels de la carte à puce ou de la monétique comme Austria Card, Gemalto, Giesecke & Devrient, Ingenico, Parkeon ou Sagem (SESAM VITALE 2) Leirios, soutenu par OSEO/ANVAR, emploie 30 personnes entre Paris, Munich et Besançon, où sont implantés son siège social et sa R&D. LEIRIOS fait également partie des deux pôles de compétitivité TES (Transactions Electroniques Sécurisées) à Caen et Microtechniques à Besançon. Leirios développe des solutions permettant d'automatiser la conception des tests pour les applications et systèmes logiciels. Ce produit marque une rupture technologique par rapport à la pratique de test actuelle, qui est principalement empirique et manuelle. Il permet de rationaliser et d'améliorer fortement les processus de validation de systèmes. La société Leirios répond aux besoins de validation des systèmes logiciels par une offre en génération automatique de tests. Au coeur des activités de validation figure la conception des tests fonctionnels. Ces tests permettent de garantir la conformité d'une application, d'un système logiciel par rapport à ses spécifications initiales. Les pratiques actuelles, essentiellement manuelles et empiriques, constituent un facteur de non-qualité important pour les systèmes logiciels. Les solutions Leirios Test Generator intègrent cette technologie Smart Testing, technologie mise en oeuvre depuis 1999 pour Schlumberger (dans les départements cartes à puces et terminaux urbains) et pour PSA Peugeot Citroën sur plusieurs projets d'envergure. Un transfert de propriété exclusif et complet de la technologie a été réalisé début 2003 entre l'université de Franche-Comté et Leirios Technologies. Leirios Test Generator permet une réduction de plus de 30% de l'effort de conception des tests fonctionnels, avec une couverture des tests 2 à 5 fois supérieure. Les solutions de Leirios en génération automatique de tests permettent ainsi une meilleure maîtrise de la fiabilité des systèmes logiciels, une réduction des coûts de validation et une accélération du "time to market" des produits. Auteurs : Benoît PASSION et Olivier PATRIS Page 15

Voici une présentation succinte de l utilisation de Leirios Test Generator (LTG) : 1. Une modélisation fonctionnelle est effectuée à partir des Spécifications Techniques de Besoins par l utilisateur. 2. Le modèle fonctionnel résultant (B, Statecharts ou UML) est utilisé par le "générateur de tests LTG" pour créer les cas de tests. L utilisateur paramètre simplement ses critères de couverture. 3. Le "générateur de scripts LTG" compose alors les scénarios de tests. 4. Les scripts ainsi créés sont exécutés dans l environnement dédié (banc de test). Conformiq Test Generator de Conformiq Software - www.conformiq.com Conformiq Test Generator est un produit inventé par la société Finlandaise Conformiq Software Ltd créée en 1998. Il est distribué en France depuis un an environ par Verifysoft Technology (entreprise allemande). Conformiq Test Generator fonctionne avec tous les langages de programmation. Champs d'application : Conformiq Test Generator peut être utilisé dans les champs d'application suivants : Test de fonction, de système et d'acceptance Test de régression (tests quotidiens automatiques des structures) Test d'intégration (simulation de parties du système) Interface de test (JPOS, COM, J2EE, HTTP, SQL, OPC) Test de protocole / plate-forme (TCP/IP, IPSec, GSM, Symbian) Avantages de Conformiq Test Generator Conformiq Test Generator est le seul outil qui permet d'effectuer des tests qui sont normalement très difficiles à tester, comme par exemple les problèmes de synchronisation. Conformiq Test Generator garantit une meilleure efficacité de test, une baisse de la durée de phase de test et une plus grande couverture de test. Auteurs : Benoît PASSION et Olivier PATRIS Page 16

Support de développement pour l'ensemble des phases du projet et, en outre, pour tous les cycles de vie du logiciel. Large couverture de test : un grand nombre de combinaisons de test pertinent est couvert par les tests automatiques. Maintenance simple de l'environnement de test - modèles de test graphiques sont plus simples et plus rapides à entretenir et à réutiliser que les scripts de test. Résultats des tests et des couvertures de tests automatisés : les données formulées clairement facilitent la gestion des erreurs et aident à la correction des erreurs. En plus de l'exécution des tests en ligne, Conformiq Test Generator peut également générer des scripts de test hors ligne qui pourront être utilisés plus tard. Conformiq Test Generator peut être intégré dans des outils de planification et de gestion de test (comme par exemple l'outil de gestion de test Mercury). Disponible pour les plates-formes suivantes : Microsoft Windows NT, 2000 et XP Linux Auteurs : Benoît PASSION et Olivier PATRIS Page 17

Mercury Functional Testing et Mercury Service Test de Mercury Quality Center http://www.mercury.com/fr/products/quality-center/functional-testing Mercury Functional Testing offre la solution la plus complète du marché en matière d'automatisation des tests fonctionnels, d'interface utilisateur graphique et de non-régression. Il prend en charge pratiquement toutes les applications et tous les environnements logiciels. Tirer parti à la fois de Mercury WinRunner et de Mercury QuickTest Professional. Mercury Functional Testing vous permet de profiter des ressources de test offertes par les scripts WinRunner et QuickTest Professional. Les ingénieurs qualité peuvent utiliser Mercury Functional Testing pour créer des "scripts composés" qui comportent des tests élaborés dans WinRunner et QuickTest Professional. Mercury Functional Testing tire en effet profit de l'interopérabilité de WinRunner et de QuickTest Professional : chaque produit peut appeler les scripts de l'autre produit et les résultats des tests apparaissent dans une interface commune. La SOA est le moteur des résultats métier. La SOA augmente la complexité informatique et elle peut compromettre l'activité si elle n'est pas correctement mise en œuvre. Les décideurs informatiques prévoyants adoptent une nouvelle approche du test des services SOA et Web reposant sur Mercury Service Test. Mercury Service Test permet aux équipes informatiques de mener des tests fonctionnels et de performances pour les services. S'appuyant sur la technologie leader du marché Mercury LoadRunner, cette solution réduit considérablement les durées de test et permet de s'assurer que les services répondront aux exigences de fonctionnement et de performances de l'entreprise avant de les déployer en production. Grâce à Mercury Service Test, vous pouvez : Réduire la durée des cycles d'assurance qualité en automatisant les tests fonctionnels, de non-régression et de performance des services qui ne sont pas dotés d'une interface graphique utilisateur. Simuler des environnements client J2EE, AXIS et.net pour évaluer l'interopérabilité des services. Simuler des environnements de production via la simulation des souches serveur et les tests asynchrones. Tester différences interfaces SOA. Créer et suivre les appels serveur pour garantir la réussite des tests de performances asynchrones. Offrir des fonctionnalités d'émulation des services permettant aux testeurs de commencer très tôt, avant même la construction effective des services. Auteurs : Benoît PASSION et Olivier PATRIS Page 18

Voici d autres outils de tests fonctionnels : Test Vector Generation de T-VEC - www.t-vec.com T-VEC Technologies est un grand fournisseur mondial de solutions permettant d automatiser la génération de vecteurs de test à partir d outils de développement basés sur un modèle guidé par les exigences et la conception. Les solutions T-VEC permettent aux organisations de faire correspondre les cycles de vie des produits, des systèmes et du développement de logiciels aux objectifs commerciaux et aux besoins des clients afin d améliorer de manière considérable la qualité et la prévisibilité, tout en réduisant de manière importante les délais de commercialisation et les coûts généraux. T-VEC a son siège social à Herndon, en Virginie (USA), et compte des clients dans des domaines variés tels que l électronique aéronautique, l aérospatial, l automobile, la médecine et d autres industries utilisant des produits intégrés. Reactis de Reactive Systems - www.reactive-systems.com Il s agit d un outil américain. Auteurs : Benoît PASSION et Olivier PATRIS Page 19

AutoTester ONE de AutoTester - http://www.autotester.com/content/soft_at1.htm Offre des tests fonctionnels, de régression et d'integration pour environnements Windows, applications client/server ou Web. Compatible Windows 3.x, 95/98, NT, 2000, XP. QACenter Enterprise Edition de Compuware http://www.compuware.com/products/qacenter/enterprise.htm Supporte les environnements client/serveur, L4G, Java et Web. Rational Robot d'ibm - http://www-306.ibm.com/software/awdtools/tester/robot/ Automatisation de tests de régression, de tests fonctionnels et de tests de configuration pour applications e-commerce, client/serveur et ERP. irise Application Simulator de irise - http://www.irise.com Plate-forme permettant la définition, les tests et la validation des fonctionnalités de solutions Web avant tout développement. Mercury Business Process Testing de Mercury Interactive http://www.mercury.com/fr/products/quality-center/business-process-testing Permet aux spécialistes "métier" et aux équipes "assurance qualité" de valider les processus métier automatisés. TestView, WebFT de Radview - http://www.radview.com/products/index.asp Solution permettant de définir des plans de tests automatisés d'applications Web tout en centralisant les scripts de ces tests. Seapine SQA de Seapine - http://www.ideotechnologies.com Suite logicielle composée de trois outils permettant d'automatiser les tests fonctionnels, de gérer les défauts et les changements de configurations. SilkTest de Segue - http://www.borland.com/us/products/silk/silktest/index.html Tests fonctionnels et de régression automatisés. Support des applications Web, Java, client/server d'entreprise. Visual WebTester de Softbees - http://4.27.176.151/softbeeswebapp/products.jsp?display=summary Outil de tests automatisés : tests fonctionnels, de régression et d'usabilité pour applications Web. evalid de Software Research - http://www.soft.com/evalid Vérifie la conformité aux spécifications fonctionnelles des sites Web. Multiples modes de synchronization possibles. HTTP/HTTPS, JavaScript, XML, Applets Java, Flash, ASP, JSP et ActiveX supportés. Quality Forge de TestSmith - http://qualityforge.com/testsmith/index.html Automatisation de tests fonctionnels et de régression pour Windows. Les tests concernent les sites et des applications Web. Les langages supportés sont Java et C++. Certify de Worksoft - http://www.worksoft.com Plate-forme permettant l'automatisation de tests fonctionnels pour applications Web, client/server et mainframe. source : journaldunet.com Auteurs : Benoît PASSION et Olivier PATRIS Page 20

3.5 LES OUTILS DE GENERATION DE TESTS STRUCTURELS (BOITE BLANCHE) 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. Ces pourquoi des éditeurs ont créé des suites comprenant ces deux types de tests. C++test,.TEST, Jtest, SOAtest et Insure++ de PARASOFT - www.parasoft.com Société à capitaux privés fondée en 1987 par de jeunes diplômés de CALTECH (Institut de Technologie de Californie) ParaSoft Corporation a son siège en Californie avec des bureaux de distribution en Australie, en Inde, en Israël, en Chine, à Hong Kong, à Taiwan, au Brésil et au Japon. ParaSoft Europe, dont le siège social est en France, possède également des bureaux au Royaume-Uni et en Allemagne. Parmi les clients de ParaSoft, se retrouvent Nokia, Thomson, IBM, Ericsson, Alcatel, Philips, Cap Gémini et Boeing. ParaSoft développe et commercialise des outils de développement qui aident les sociétés à éliminer les erreurs dans leurs softwares. En renforçant les standards de programmation et en automatisant le test unitaire, les technologies ParaSoft, uniques et très souvent primées, aident les utilisateurs à améliorer la qualité de leur logiciel, à accélérer la mise sur le marché et réduit considérablement les dépenses de développement. Depuis ses débuts, la société a été largement reconnue pour développer des technologies innovatrices en matière de logiciels et d'outils de programmation de haute productivité. ParaSoft a développé plusieurs produits liés au développement orienté objet et web. Les technologies d automatisation des tests de ParaSoft sont le résultat de 20 ans de R&D sur les erreurs logicielles et prouvent qu améliorer la qualité permet de réduire les dépenses tout en augmentant la productivité. Basées sur la méthodologie AEP (Automated Error Prevention), les outils ParaSoft mettent en œuvre une démarche de prévention, d une part pour éliminer des erreurs avant qu elles ne se manifestent dans les applications en production, et d autre part pour éviter que les erreurs identifiées et corrigées suite à un dysfonctionnement ne se reproduisent. En pistant et simulant les chemins d exécution automatiquement, la technologie Bug Detective révèle les bugs à l exécution qui seraient difficilement détectables lors de tests ou inspections de code manuels. Les utilisateurs peuvent ainsi trouver, diagnostiquer et corriger les catégories d erreurs logicielles qui échappent à l analyse basée sur les standards de codage et au test unitaire. Rational Test RealTime de IBM http://www-306.ibm.com/software/info/ecatalog/fr_fr/products/x799502m73821d46.html Solution multiplateforme permettant de tester les composants et d'analyser l'exécution du code C, C++, Java et Ada. Produit particulièrement adapté aux individus, qui écrivent du code pour les applications embarquées ou les autres types de produits informatiques nomades. Prise en charge des applications critiques et confidentielles embarquées. Proactivité extrême pour déboguer, détecter et corriger les erreurs avant qu'elles n'affectent le code de production. Totalement compatible avec les autres solutions IBM Rational (développement piloté par modèles, gestion des tests et des configurations logicielles). Totalement compatible avec les outils tiers novateurs (Mathworks Simulink, Microsoft Visual Studio et TI Code Composer Studio). Auteurs : Benoît PASSION et Olivier PATRIS Page 21

xunit : JUnit, PHPUnit, CPPUnit, PyUnit, etc. JUnit Propulsé sur le devant de la scène par le succès de l'extreme Programming (XP), le développement piloté par les tests (Test-Driven Developpement ou TDD) est devenu une évidence implacable : on ne peut être certain du bon fonctionnement d'un morceau de code, qu'à partir de moment où l'on en a testé toutes les possibilités d'erreur. Le principe du TDD est donc, avant même d'écrire le code d'une fonctionnalité, d'écrire le test pour ce futur code. Une fois le test écrit, le code de la fonctionnalité devra toujours passer correctement le test avant de pouvoir valider celle-ci. Chaque fonctionnalité peut donc se retrouver avec plusieurs tests sur le dos, chacun vérifiant d'une manière différente le bon fonctionnement d'une petite partie de l'application. Parce qu'une application complète peut disposer de plusieurs milliers de tests, l'automatisation devient nécessaire. C'est ici qu'entre en jeu l'architecture de test JUnit, destinée à tester le code Java. Plus largement, tous les langages activement utilisés disposent de leur équivalent xunit : PHPUnit pour PHP, nunit pour les langages.net, ou AS2Unit pour ActionScript 2.0. Tous dérivent de SUnit pour Smalltalk, conçu par Kent Beck, par ailleurs l'un des instigateurs du mouvement Extreme Programming. Beck a ensuite porté SUnit vers Java avec l'aide d'erich Gamma, l'un des auteurs du livre fondateur sur les design patterns, et l'un des meneurs du projet Eclipse. La mise en place d'un test sur une méthode Java est assez simple avec JUnit. Chaque classe dispose de son jeu de tests, chaque test injectant par exemple une erreur potentielle que le code doit prévoir, ou vérifiant le bon résultat d'un traitement. Les méthodes de test sont toutes précédées du marqueur @Test, ce qui permet à JUnit de les reconnaître et de les exécuter automatiquement. Chaque classe de test doit importer les paquetages org.junit.test et org.junit.test, JUnit étant installé et configuré pour le système ou l'outil de développement. JUnit 4.0 teste le code au moyen d'assertions, simulant diverses situations possibles. Ces assertions sont placées au cœur même des méthodes de la classe, aux côtés du code de l'application. Chaque assert*** placée correspond à un test effectif. Exemple avec assertequals: public static void assertequals(boolean expected,boolean actual) Asserts that two booleans are equal. Auteurs : Benoît PASSION et Olivier PATRIS Page 22

4 CONCLUSION Il semble que la tendance des éditeurs de solutions pour la qualité du logiciel soit à l intégration des outils de tests (vérification du code, normes, tests unitaires, tests de performance, etc.) dans l environnement même utilisé pour le développement du logiciel en question. Cela correspond à la logique de la qualité à savoir : les tests doivent être préparés et même développés avant même la phase de réalisation du logiciel. Si tests et réalisation du logiciel partagent la même plateforme de développement, cela ne peut qu accroitre la bonne performance des tests et ainsi la valeur du logiciel créé. Certaines suites d outils sont véritablement efficaces et permettent des gains en terme de temps et d argent lors de la création d une application informatique. La société Mercury semble être le leader actuel du marché en proposant une suite d outils de tests particulièrement complète et aboutie. En 2004, Mercury a remporté une récompense Yphise pour deux de ses produits Quality Center. Mercury avait annoncé peu avant que sa part de marché dans le secteur des solutions automatisées de gestion de la qualité logicielle (ASQ) avait augmenté jusqu'à 55,6%. C'est le double de la part de marché atteinte par son concurrent le plus proche. Le classement rapporté dans l'étude de marché de l'idc intitulée "Prévisions 2004-2008 des outils de gestion automatisée de la qualité logicielle dans le monde distribué et parts de marché des fournisseurs 2003" a été basé sur les revenus mondiaux de l'année 2003. Selon le rapport, avec une part de marché de 55,6 %, Mercury continue à dominer le marché ASQ, affichant de nouveau une augmentation de revenu à deux chiffres en 2003. L'IDC rapporte que Mercury continue à démontrer sa capacité à anticiper les besoins des clients en matière de déploiement d'application et à y répondre, confortant ainsi sa position de leader et d'entreprise avec la plus forte croissance sur ce marché. Cependant, des éditeurs comme IBM ou Compuware sont toujours sans la course et la perpétuelle évolution des technologies informatiques peuvent changer la donne dans les années qui suivent. Sans compter certains produits Open Source qui se montrent concurrentiels pour certains types de tests. Auteurs : Benoît PASSION et Olivier PATRIS Page 23