14_FOCUS_TEST_LOG.qxd
18/03/08
16:58
Page 58
FOCUS DÉVELOPPEMENT
Par Pierre TRAN
Le test logiciel en voie d’industrialisation Longtemps considéré comme une activité rébarbative et ingrate du cycle de vie des applications, le test logiciel bénéficie désormais de véritables usines à test, avec outils, méthodes, ressources. Le test devient une phase stratégique du développement et un métier à part entière.
A PLUPART DES PRÉSENTATIONS ou des livres blancs sur l’industrialisation du développement commencent par le terrible constat du taux d’échec des projets informatiques, appuyé par le fameux rapport du Standish Group. Aujourd’hui, à peine plus du tiers des projets aboutissent. On considère comme réussi un projet livré dans les temps, avec le budget imparti et répondant aux attentes des utilisateurs.
L
LA QUALITÉ SOUVENT SACRIFIÉE Ces trois contraintes – temps, coût et qualité – sont intimement liées. Mais sous la pression des délais, du « time-to-market », c’est la plupart du temps la qualité qui est sacrifiée. D’une part, parce que la phase de tests arrive généralement en dernier dans le cycle de développement. Pour peu que le projet ait pris du retard, au moment des tests, le temps manque. D’autre part, c’est une tâche bien souvent ingrate et rébarbative. Les développeurs rechignent à effectuer ces tâches répétitives et préfèrent se consacrer à des activités plus créatrices. Mais il ne faut pas tout mettre sur le dos des tests, ou du manque de tests. Les causes d’échec des projets sont connues : besoins mal formulés, spécifications incomplètes ou inadéquates, manque de communication entre maîtrise d’œuvre et maîtrise d’ouvrage et à l’intérieur des équipes de développement, absence de gestion du risque, inadéquation entre les méthodes, les outils et les hommes…
DE L’INDUSTRIALISATION DU DÉVELOPPEMENT À L’INDUSTRIALISATION DU TEST L’enjeu est bel et bien d’industrialiser le développement avec pour objectif d’aligner l’informatique sur le métier. Concrètement, cela signifie d’une part gérer la qualité (s’assurer que le résultat correspond aux exigences des utilisateurs) et d’autre part gérer le risque (faire la balance entre les exigences des utilisateurs et les risques du projet).
58
L’ I N F O R M AT I C I E N N ° 0 5 7 • a v r i l 2 0 0 8
14_FOCUS_TEST_LOG.qxd
18/03/08
16:59
Page 59
Le test logiciel en voie d’industrialisation
Les produits de tests Borland
Compuware
Analyse statique
Tests unitaires
Gestion des tests
SilkCentral Test Manager
Couverture de code
Tests fonctionnels
HP Mercury
Rational Application Developer
DevPartner
HP Quality Center
Rational Purify, Rational Application Developer, Rational Test Real Time
Junit
TestDirector
Rational Test Manager, Rational ClearQuest Test Management
DejaGnu, TestLink
QADirector, QACenter
Rational PurifyPlus, Rational Application Developer, Rational Test Real Time
TestPartner
HP Quality Center
Tests d’intrégration
Tests de non-régression
Open Source
DevPartner
DevPartner
SilkTest
IBM Rational
SilkTest
Rational Functional Tester, Rational Robot
FitNesse
Rational Application Developer, WebSphere Developer for zSeries
Cactus
HP Quality Center
Rational Functional Tester
Tests de performance
SilkPerformer
QALoad, DevPartner
HP Performance Center
Rational Performance Tester
OpenSTA, JMeter
Tests de charge
SilkPerformer
QACenter
HP Performance Center
Rational Performance Tester
OpenSTA, JMeter
TestPartner
HP Quality Center
Rational Application Scan, Rational Policy Tester
OpenSTA, Jmeter, Selenium
HP Business Process Testing
Tivoli Intelligent Orchestrator
TestDirector
Rational ClearQuest
Tests Web Tests processus métier Gestion des anomalies
Gestion de la qualité
SilkCentral Test Manager
StarTeam+Silk
CA Software Change Manager
QAPortal
Portail
QAPortal
Requirement Based Testing
oui
Model Based Testing
oui, avec LEIRIOS Smart Testing
oui, avec LEIRIOS Smart Testing
oui
oui
Risk Based Testing
Rational ClearQuest, Rational Test Manager, Rational ClearQuest Test Management
CARS
Tableau de bord
HP Quality Center Dashboard
Test Driven Requirements CMMI Méthodologie
Bugzilla, TRAC, Scarab, Mantis
FitNesse HP Quality Center - HP PPM
oui CARS
Plugin Rational Method Composer (CMMI 2 et 3)
BTO
L’ I N F O R M AT I C I E N N ° 0 5 7 • a v r i l 2 0 0 8
59
14_FOCUS_TEST_LOG.qxd
FOCUS
18/03/08
17:00
Page 60
Développement
Le Comité français des tests logiciels
Les modèles d’amélioration des processus
La vérification et le test logiciel prennent de l’importance, mais la fonction de Testeur de Logiciel apparaît de façon plus ou moins empirique dans les entreprises. Les compétences et connaissances nécessaires pour un testeur de logiciel ne sont pas garanties par un diplôme ou une certification reconnus. Le Comité français des tests logiciels (CTFL) est une association représentant la France au sein de l’ISTQB (International Software Testing Qualifications Board, www.istqb.org). Ces organismes développent et définissent des contenus standard pour les formations en tests logiciels. Le CFTL-ISTQ fournit un schéma de certification reconnu actuellement par dix-huit pays dans le monde. La qualification vise toute personne impliquée dans les tests de logiciels. Ceci inclut tous les testeurs (testeurs fonctionnels, analystes en tests, chefs de projets de tests, tests d’acceptation) ainsi que les développeurs. Elle intéressera également toute personne souhaitant avoir une compréhension de base des tests de logiciels, tels les responsables de projets, responsables qualité, responsables des TIC, analystes architectes et consultants en management. Les connaissances couvertes par les certifications portent sur des aspects théoriques et pratiques tels que la terminologie, la gestion des tests, les tests statiques et dynamiques, les tests structurels, les outils de mesure, les métriques et la couverture, les outils de tests et d’automatisation, mais aussi la gestion d’anomalies, la gestion de configuration et la gestion des risques… On trouvera sur le site des documents de référence (syllabus), un glossaire des termes utilisés en test logiciel, etc. Site : www.cftl.net
De la même manière que l’activité de développement possède ses référentiels d’amélioration de processus, tels que CMMi (Capability Maturity Model Integration), il existe de nombreux modèles d’amélioration du processus de test. Citons par exemple Test Maturity Model (TMM), Systematic Test and Evaluation Process (STEP), Critical Testing Processes (CTP), Test Process Improvement (TPI), Test Organization Maturity (TOM), Test Improvement Model (TIM) et Software Quality Rank (SQR).
C’est ainsi qu’une famille d’outils regroupés sous l’appellation ALM (Application Lifecycle Management, Gestion du cycle de vie des applications) s’est attaquée au problème. Orchestrant les différents processus du cycle de vie logiciel, ces outils sont devenus les piliers d’une approche gouvernance du système d’information. Les grands éditeurs comme IBM, Microsoft, HP, CA, Compuware ont tous leurs solutions ALM. Des acteurs de niche tentent également de s’imposer sur ce marché juteux : Borland, Serena, Telelogic. Parallèlement à tous ces outils, on a vu les équipes de développement se lancer dans des méthodes plus ou moins novatrices : Test Driven Development, Model Driven development, Business Driven Development, Test Driven Requirements, UP, RUP, XP, SCRUM, BTO, CARS… sans oublier les référentiels d’amélioration des processus tels que CMMI ou ITIL. Ce qui est nouveau, c’est que les méthodes Test Driven* et tout particulièrement les méthodes agiles ont remis le test au cœur du processus de développement.
une équipe de test indépendante de l’équipe de développement. Ce n’est pas toujours possible, et dans la pratique, on constate différents niveaux de dépendance entre le développement et le test : • pas de testeurs indépendants : le développeur teste son propre code; • les tests sont effectués par un autre développeur; • les tests sont effectués par une équipe de test faisant partie de l’équipe de développement; • les tests sont effectués par une équipe de non-développeurs ou par des spécialistes faisant partie de l’entreprise; • les tests sont effectués par une organisation externe à l’entreprise.
Des modèles à étages comme TMMI fournissent des standards de comparaison entre différentes entreprises et organisations. Les modèles STEP, TMMI, TPI et CTP semblent émerger comme de standards.
Dans le dernier cas, on a le maximum d’indépendance. Pour des raisons infrastructurelles et économiques, c’est souvent la solution choisie.
VERS L’USINE À TEST LIBÉRER LE TEST Si l’on considère que le test fait effectivement partie du cycle de vie du développement, il est généralement recommandé d’avoir
60
L’activité de test s’oriente donc vers une externalisation des équipes de test. Par ailleurs, le processus de test se décompose en activités qui pour certaines d’entre elles sont automatisables, comme l’exécution de scripts de test ou maîtrisables, comme la
L’ I N F O R M AT I C I E N N ° 0 5 7 • a v r i l 2 0 0 8
14_FOCUS_TEST_LOG.qxd
18/03/08
17:00
Page 61
Le test logiciel en voie d’industrialisation
planification des tests. En fait, les testeurs disposent d’une panoplie impressionnante d’outils, de méthodes, de métriques, de référentiels, de bonnes pratiques qui font du test un véritable métier à part entière. Externalisation des équipes, démarche outillée et méthodologique, il n’en fallait pas moins pour combiner ces ingrédients
et créer le concept d’usines à test. Qu’il soit appelé Test Factory chez Compuware, Qualification du Système d’Information chez Acial, ou Lifecycle Quality Management chez Borland, la démarche est la sensiblement la même : proposer une solution pour industrialiser les tests et la qualité. Détaillons les éléments d’une usine à test. ■
Les outils de test Les outils de test peuvent améliorer l’efficacité des activités de test en automatisant les tâches répétitives. Certains outils peuvent également améliorer la fiabilité des tests, par exemple, en automatisant des comparaisons de données volumineuses ou en simulant des comportements du logiciel en cours de test.
ES OUTILS DE GESTION des tests s’appliquent à toutes les activités de test pendant toute la durée du cycle de vie du logiciel. Ils permettent de gérer les tests et les activités de test effectuées. Ils s’interfacent avec les outils d’exécution, les outils de gestion des défauts, de gestion des exigences et de gestion de configuration. Ils gèrent la traçabilité des tests vers les documents source, comme les exigences. Ils enregistrent les résultats et génèrent des rapports d’avancement. Ils assurent une analyse quantitative des métriques liées aux tests. Parmi les outils dédiés au test ou utilisés pendant les tests, on peut citer en vrac : • les outils de gestion des exigences ; • les outils de gestion des incidents (ou gestion des anomalies) ; • les outils de gestion de configuration ; • les outils d’aide aux tests statiques incluent les outils d‘assistance au processus de revue, les outils d’analyse statique de code et les outils de modélisation ; • les outils de conception des tests ; • les outils de préparation des données ; • les outils d’exécution des tests ; • les harnais de test/outils de tests unitaires ; • le comparateur de tests ; • les outils de mesure de couverture ; • les outils de sécurité informatique ; • les outils d’analyse dynamique ; • les outils de tests de performances ; • les outils de surveillance ; • les débogueurs et outils de traces ; • les outils d’ajout et d’injection d’erreurs (fault seeding & fault injection tools) ; • les outils de simulation et d’émulation ; • l’automation de test par mot-clé ; • les outils de test Web.
L
Parmi les éditeurs d’outils de test, on retrouve évidemment les éditeurs d’ALM : Borland, Compuware, HP Mercury, IBM Rational Racheté par HP en 2006, Mercury reste sans conteste le leader des outils de test de performance avec LoadRunner et de gestion des tests avec TestDirector, intégrés désormais dans la gamme HP Quality Center. Compuware propose avec QACenter une gamme d’outils de test automatisés : gestion des tests avec QADirector, tests de performance avec QALoad, portail de tests avec QAPortal, gestion des spécifications avec Reconcile, test fonctionnel avec TestPartner… Compuware met l’accent sur les tests basés sur les risques. IBM, après le rachat de Rational en 2003, dispose d’un catalogue d’outils de test particulièrement exhaustif avec des produits tels que Rational Test Manager, Rational Functional Tester, Rational Performance Tester, etc. Quasiment toutes les activités de test sont couvertes au point qu’il est parfois difficile de s’y retrouver. Borland a construit son offre gestion de la qualité avec le rachat de Segue en 2006. Avec SilkCentral Test Manager, il propose un outil tout-en-un pour administrer et planifier les tests. SilkTest est un système d’automation des tests et SilkPerformer un outil de test de performance et de charge. L’offre Borland se distingue par son approche qualité tout au long du cycle de vie grâce aux tests basés sur les exigences. À côté de ces ténors du logiciel, on trouve des éditeurs de niche qui ont su trouver des fonctionnalités inédites très utiles aux activités de test. Ascential (racheté par IBM en 2005) propose avec Quality Stage un outil de mesure de la qualité des données. Princeton Softech (racheté par IBM en 2007) est capable d’extraire des jeux de données à partir d’une base de production. Leirios, éditeur français fournit un générateur automatique de cas de tests et de scripts de tests à partir des modèles UML de l’application (Smart Testing). Kalios propose Synopsis, un outil qui permet de générer, de manipuler et de démultiplier les cas de test en utilisant la méthodologie par mot clé. Dans outils Open Source, il faut encore citer TestLink (gestion des tests), FitNesse (tests fonctionnels), OpenSTA (tests de performance), Selenium (tests Web), Bugzilla, Mantis (gestion des anomalies)… On trouvera sur le site Software Quality Assurance Testing and Test Tool Resources une liste détaillée d’outils et de ressources dédiées au test : http://www.aptest.com/resources.html ■
L’ I N F O R M AT I C I E N N ° 0 5 7 • a v r i l 2 0 0 8
61
14_FOCUS_TEST_LOG.qxd
FOCUS
18/03/08
17:23
Page 62
Développement
Les modèles et les méthodes Le test fait partie intégrante des différents modèles de développement, tels que les modèles séquentiels (modèle en cascade, en V, en W), les modèles itératifs (Rapid Application Development RAD, modèle en spirale) ou encore les modèles incrémentaux (méthodes agiles). La définition d’une stratégie de test doit donc prendre en compte le modèle de développement. E PROCESSUS DE TEST n’est pas une activité isolée, mais doit être interconnecté avec les autres activités : gestion des exigences, gestion de projet, gestion du changement, gestion de configuration, développement, maintenance, support technique, documentation technique.
L
L’activité de développement possède un certain nombre de méthodes, comme le développement dirigée par les modèles (Model Driven Development). Les méthodes agiles ont mis en avant l’activité de test avec le Test Driven Development (TDD). De la même manière, le test a vu apparaître des méthodes spécifiques à cette activité. Chez Borland, on préconise les tests basés sur les exigences (Requirement Based Testing, RBT). L’idée est de mener les tests le plus tôt possible, en parallèle au processus de développement. Les cas de test sont conçus de manière méthodique et systématique en exploitant directement le référentiel des exigences. Cette démarche nécessite évidemment des outils de conception et d’exécution de tests en étroite collaboration avec une gestion des exigences, tels que Silk Central et CaliberRM. Chez Valtech, on met en avant les méthodes agiles (Test Driven Development) et on applique même ce principe aux activités de spécification et d’analyse. Ce qui donne la méthode Test Driven Requirements ou gestion des exigences dirigée par les tests. L’idée est d’écrire des spécifications interprétables automatiquement par des outils de test, des spécifications exécutables en quelque sorte. Cette démarche est mise en œuvre grâce à l’outil Open Source FitNesse. Leirios implémente quant à lui la méthode des tests basés sur les modèles (Model-Based Testing). Sa solution Leirios Smart Testing prend en entrée les modèles UML de l’application à tester, génère automatiquement les cas de tests et traduit les cas de tests générés en scripts de tests exécutables par un outil d’exécution de tests. Chez Compuware, on adopte l’approche des tests basés sur les risques (RBT – Risk Based Testing). À chaque exigence de test est associé un risque métier et/ou technique. Cette pondération va
62
permettre de maîtriser la couverture des risques pendant les campagnes de test et de focaliser l’effort de test sur les exigences les plus importantes. C’est une approche que l’on retrouve chez Borland.
LES HOMMES Après les outils et les méthodes, les hommes constituent le troisième pilier de l’usine à test. Nous l’avons vu, les équipes de test ont tendance à s’externaliser, pour garantir l’indépendance entre le développement et le test, mais aussi pour des raisons économiques. Pour mettre en œuvre les outils et les méthodes précédemment décrites, il faut du personnel hautement qualifié. Le testeur de logiciels devient un métier à part entière et possède même ses certifications (lire l‘encadré « Le Comité français des tests logiciels »). La plupart des grandes sociétés de service proposent en plus des prestations de développement une sous-traitance partielle ou totale de la phase de test jusqu’à la recette finale, ce que l’on appelle la Tierce recette applicative (TRA). Ces sociétés apportent leur expérience dans la maîtrise des outils et des méthodologies de test. Certaines sociétés, comme Acial (voir encadré), se sont spécialisées dans la TRA.
LES USINES À TEST EN PRODUCTION Comme nous l’avons vu, l’usine à test se définit comme une combinaison d’outils, de méthodes et d’hommes. Pour promouvoir leurs solutions d’usine à test, les éditeurs d’outils de tests se sont alliés à des SSII. Compuware propose Test Factory, un ensemble d’outils, de savoirfaire et de méthodes pour industrialiser les tests. À travers un portail Web, le client accède en temps réel au tableau de bord du processus de test. La solution inclut également un portail Test factory Workbench and Quality Portal paramétrable pour le client ou le prestataire. Test Factory inclut un moteur de workflow, une gestion des anomalies. Il s’interface avec des outils de modélisation UML, une gestion des exigences et met en œuvre une approche basée sur les risques. Compuware a établi un partenariat avec Atos Origin pour mettre en place la solution Test Factory. Borland de son côté propose une solution de gestion de la qualité logicielle autour de son outil SilkCentral Test Manager. Cette solution s’appuie sur la démarche Tests basés sur les exigences qui permet de paralléliser le développement et les tests, réduisant ainsi le cycle de vie du logiciel. SilkCentral va chercher les exigences directement dans le référentiel des exigences (CaliberRM) pour générer les cas de test. La solution s’appuie
L’ I N F O R M AT I C I E N N ° 0 5 7 • a v r i l 2 0 0 8
14_FOCUS_TEST_LOG.qxd
18/03/08
17:24
Page 63
Les modèles et les méthodes
De l’assurance qualité vers la qualification du SI Acial est une société de service spécialisée dans les prestations pouvant améliorer la qualité et les performances du SI. Ses deux domaines d’activités sont la Qualification du SI (80 %) et l’Optimisation des processus de l’entreprise (20 %). Dans le cadre de la qualification du SI, Acial est amené à effectuer des missions de Tierce recette applicative (TRA). Outre la maîtrise des outils du marché (HP Mercury, IBM rational, Compuware, Borland, Leirios, Kalios, Ascential, Princeton Softech) et
d’outils Open Source (OpenSTA, TestLink, Mantis), Acial s’appuie sur les réferentiels CMMi, ITIL et TPI (Test Process Improvement) et supporte les méthodologies BTO de HP et CARS de Compuware. Avec une démarche industrialisée de la phase de test et de recette, Acial est typiquement un prestataire à même de mettre en place une usine à test. Acial compte aujourd’hui une centaine de consultants présents dans tous les secteurs d’activité. Elle est membre actif du CFTL (Comité français des tests logiciels).
également sur une politique de gestion du risque permettant de pondérer les tests à effectuer. Borland a encore peu de références clients (Agence unique de paiement rattaché au ministère de l’Agriculture), mais elle a établi de partenariat avec Steria, Sogeti, MAP, SQLi.
Actuellement en vente chez votre marchand de journaux www.mag-securs.com Sommaire complet, liste des points de vente, abonnement en ligne... et toute l’actualité de la sécurité informatique. Inscription gratuite pour recevoir la newsletter
Pierre de Rauglade a fondé Acial en 1998.
En définitive, il est tout à fait possible pour une équipe de test qualifiée, équipée d’outils soigneusement choisis et d’une bonne méthode de mettre en place sa propre usine à test. Bon nombre de SSII mettant en place une TRA industrialisée font déjà de l’usine à test comme d’autres font de la prose. ■