Expose NFE209 Final
Expose NFE209 Final
Expose NFE209 Final
Prambule
Prambule
Les tests existent depuis toujours (mauvaise perception). Prise de conscience actuelle de la part des socits et notamment des directions informatiques (risque de dysfonctionnement, perte financire, retard). Les tests rassurent et permettent de palier aux erreurs humaines. Le sujet des tests est vaste. Nous avons tenter dans cette prsentation de vous en prsenter les principaux aspects (gnralits, techniques et outils). Notre tude sera votre disposition sur le site http://home.nordnet.fr/~ericleleu
-1992 - Les ambulances de Londres sont mal orientes par le logiciel. Des pertes humaines sont dplorer. - 1996 - Explosion de la fuse Ariane 5 au bout de 30 secondes de vol suite une erreur de conversion de donnes numriques. - 2004 - Dfaillance du systme d'alarme d'une centrale qui produisit une coupure d'lectricit aux Etats-Unis et au Canada. - 2006 - Deux grandes banques franaises excutent un double dbit pour plus de 400 000 transactions.
On constate une ANOMALIE due un DEFAUT du logiciel lui mme du a une ERREUR de programmeur.
Selon Glendford.J Myers dans The art of software testing : Un test russi n'est pas un test qui n'a pas trouv de dfauts, mais un test qui a effectivement trouv un dfaut.
Selon l'IEEE (Institute of Electrical and Electronics Engineers): Le test est l'excution ou l'valuation d'un systme ou d'un composant, par des moyens automatiques ou manuels, pour vrifier qu'il rpond ses spcifications ou identifier les diffrences entre les rsultats attendus et les rsultats obtenus.
Impossible de raliser un test exhaustif (variables) Qualit des tests dpend donnes utilises Impossible de supprimer lerreur humaine Difficults dordre psychologique, culturel Manque dintrt pour les tests Taille et complexit des programmes Diffrence entre environnement de dveloppement et de production Perte dinformation naturelle
Chaque ouvrage, chaque auteur, chaque site dfinit sa manire les diffrentes techniques de tests.
Les tests sont excuts par le testeur qui vrifie les traitements et compare les rsultats obtenus avec ceux attendus.
Ces tests sont fastidieux et offrent une plus grande possibilit derreurs humaines. Ces tests sont trs vite ingrables dans le cas dapplications de grandes tailles.
Le test Automatique :
Le testeur est en partie dcharg des tests dans la mesure o les tests sont raliss par des outils (JUnit par exemple dans le monde Java).
Les tests sont raliss par l'humain (testeur), sans machine, par lecture du code dans le but de trouver des erreurs (revue de code).
Dynamiques : On excute le systme de manire tester lensemble des caractristiques. Chaque rsultat est compar aux rsultats attendus.
Unitaires : s'assurer que les composants logiciels pris individuellement sont conformes leurs spcifications et prts tre regroups.
Dintgration : s'assurer que les interfaces des composants sont cohrentes entre elles et que le rsultat de leur intgration permet de raliser les fonctionnalits prvues.
Systme : s'assurer que le systme complet, matriel et logiciel, correspond bien la dfinition des besoins tels qu'ils avaient t exprims. On parle de validation ou de recette.
De non rgression : vrifier que la correction des erreurs n'a pas affect les parties dj dveloppes et testes. Cela consiste systmatiquement rejouer les tests dj excuts.
Permet d'analyser le systme dans le cas o ses ressources sont satures ou bien d'analyser les rponses du systme aux sollicitations proche ou hors des limites des domaines de dfinition des entres.
De performance :
Permet d'valuer la capacit du programme fonctionner correctement vis--vis des critres de flux de donnes et de temps d'excution.
Source : http://dept-info.labri.u-bordeaux.fr/~felix/
Quelques principes
La stratgie de tests
- Une stratgie de tests peut reprsenter 50% de la charge totale dun projet - La stratgie de test doit tre intgre au processus de dveloppement du logiciel. La stratgie de test dpend : De la criticit du produit raliser Du cot de dveloppement Une stratgie consiste dfinir : Les ressources mises en uvre (quipes, testeurs, outils) Les processus de test Finalement, la stratgie de tests tient compte : Des mthodes de spcification, de conception Du langage de programmation utilis Du type dapplication (temps rel, base de donnes) Lexprience des programmeurs Une technique de tests adapte et puissante restera sans effet si elle ne fait pas partie dune stratgie de tests.
Lactivit tests est un PROJET part entire. Cest la raison pour laquelle nous retrouvons lensemble des caractristiques dun projet : Organisation des quipes Planification et contrle (planification, estimation des charges,) Analyse et conception Evaluation des risques Gestion des incidents Evaluation et reporting Clture (recette ou arrt des tests) Bilan projet Amlioration des processus et mutualisation
Stratgie de tests Lensemble de la stratgie de tests est dtaill dans le Plan Qualit Projet (PQP). Le plan qualit projet est trs important. Il va notamment : Dfinir lorganisation mettre en place (quipe de tests : Testeur, CP qui enregistre et analyse les mtriques et les incidents, labore les tableaux de bord). Dfinir les responsabilits et relations entre les diffrents intervenants. Dfinir les types et les objectifs de tests pour chacun des niveaux (tests unitaires, tests dintgration, tests de validation). Dfinir les outils qui seront utiliss. Dfinir les moyens et les dlais investir dans lactivit de tests.
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 dINTEGRATION. Au dossier de CONCEPTION DETAILLEE correspond le plan de tests UNITAIRES. Lobjectif de chaque plan de tests est de fournir un programme pour vrifier que le logiciel produit satisfait les spcifications et la conception du logiciel. Un plan de test doit : Dfinir les lments tester et lordre dans lequel ils doivent tre tests (planifier) Dcrire lenvironnement de tests. Dfinir la faon dont les tests vont tre mens (procdures rptable : processus exacts mener, lhistorisation, la traabilit, le reporting, le suivi, le contrle) Dcrire et constituer les fiches de tests. Lensemble des fiches de tests constitue le dossier de tests. Fixer les critres darrt des tests
Rapport de test (ensemble des comptes rendus de rapport de tests) Pour chaque phase de test (unitaires, dintgration, de validation), lquipe ddie aux tests doit laborer un rapport de tests. Ce rapport est la synthse des actions menes suivantes : Excution des fiches de tests (effectuer les actions dcrites). Analyser les rsultats obtenus Emettre des fiches de non-conformit si ncessaire
Il sagit de coupler intelligemment la gestion des tests et la gestion des corrections (incidents).
Qualification, Validation La qualification est essentielle. Elle permet de conclure et dmettre un avis sur le produit dvelopp et sa mise en production : adquation entre produit et spcifications fonctionnelles et techniques.
PRESENTATION STEPHANE
Tests et Cycles de vie Les tests UNITAIRES Les Tests dINTEGRATION Les tests de CHARGE Les tests de VALIDATION
Cycle en Cascade
Dfinit les phases squentielles A la fin de chaque phase, des documents sont cres pour en vrifier la conformit Si c'est bon on passe la phase suivante Si ce n'est pas bon, on retourne en arrire (Feedback)
Avantages : Qualit des livrables Calendrier plus facile laborer Un seul fil directeur
Inconvnients : Difficult de revenir en arrire Temps de raction plus long Effet tunnel
Cycle en V
Cr suite au manque de ractivit du modle en cascade. Il part du principe que les procdures de vrification de la conformit doivent tre labor ds les phases de conception Le client connait son besoin dans le dtail Standard depuis les annes 1980
Avantages : Meilleur temps de raction Anticipation des tapes En cas de problme, permet de limiter le retour aux tapes prcdentes
Inconvnients : Conception fortement lie la ralisation Moins adapt au dveloppement logiciel Risque deffet tunnel
Cycle en Spirale
Il est bas sur une approche et une valuation des risques. Un risque identifi est assign dune priorit. Un prototype possde son cycle de vie propre
Le cycle en spirale couvre lensemble du cycle de vie de dveloppement mais ajoute une dimension managriale et donc non technique
Analyse du risque Dveloppement dun prototype Test du prototype Dtermination des besoins Validation des besoins Planification du prochain cycle
Avantages : Cahier des charges respect au pied de la lettre Validit des besoins
Inconvnients : Calendrier et budget souvent irralistes (on ne sait chiffrer quun cycle la fois) Problme pour les composants externe Limit aux projets innovants (tude des risques)
Chaque cycle de vie contient les mmes grandes phases du projet : Analyse du produit Phase de conception Phase dintgration Phase de validation
Dfinition
Vient du fait quune partie du code est appel Unit Ce type de test va vrifier un module du code et quil fonctionne de manire indpendante du reste Respect aussi des spcifications fonctionnelles Ils peuvent tre manuels ou automatiss par des logiciels
Formalisme
On va crer une fiche de test unitaire qui contient une liste (ou aide mmoire) pour les grandes actions Elle permet de prparer les tests Chaque analyste ou chef de projets doit la remplir afin dassurer un passage en recette dans les meilleures conditions Donne une garantie de qualit lors du dveloppement (ce nest pas une contrainte mais un outil !)
Pour raliser des tests unitaires il nous faut : des jeux de donnes (fictives, de production, ancien jeux de tests) des ressources (documents de spcifications, scnarios, fiches de tests, tests prcdents) Une dmarche
Analyse Statique
Cette notion danalyse permet dobtenir des informations sur le comportement du programme sans rellement lexcuter On utilise des mthodes comme les nombres cyclomatiques, la mesure de Halstead
Consiste vrifier la structure du code ainsi que les variables On parcours tous les nuds, les arcs, et chemins du programme On peut vrifier ainsi si un test If Then Else nest pas utilis
Consiste vrifier le service rendu (la fonction) mais pas comment il est rendu On valide les rgles de gestion La difficult rside au choix des donnes de tests pour obtenir les rsultats attendus
Bote NOIRE
On vrifie que les sorties obtenues sont celles prvues pour les donnes entres Le fonctionnement interne nest pas accessible
Bote BLANCHE
Dfinition
On regroupe chaque partie teste unitairement afin dtablir une nouvelle version du produit Le test dintgration a pour but de tester que tout fonctionne ensemble Il existe une intgration incrmentale et une intgration globale
Il existe plusieurs mthodes dintgration : Big bang Top Down (haut en bas) Bottom up (ascendante) Mixte Par paquet
Big Bang
Le principe est dintgrer tous les composants en une seule tape. Lintgration est rapide mais valable que pour les petits projets Trop de risques pour les gros projets
On droule le programme de haut en bas. Les modules sempilent les uns aux autres. Des bouchons simulent les traitements. Les modules doivent tre les plus petits possible Avantages : Dtection prcoce des dfauts darchitecture Facilit de comprhension Inconvnients : Crer des bouchons prend du temps Effort de simulation des composants absents (risque derreurs) Tests tardifs des couches de bases
Approche Bottom Up
On droule le programme de bas en haut. Les modules fondamentaux sont tests en premier. Des bouchons simulent les traitements. Il est ncessaire de dfinir les fonctionnalits indispensables et prioritaires aux autres. Avantages : Faible effort de simulation Dfinition de jeux dessais plus facile Fonctionnalits basses plus souvent testes Inconvnients : Dtection tardive des erreurs majeures
Intgration Mixte
Cest une combinaison des approches Bottom up et Top down. On lappelle de temps en temps bote grise.
Avantages : Planning de dveloppement qui gre les composants dans lordre de cration Les composants les plus critiques sont intgrs en premier
Dfinition
Quand mener les tests de charge ? Le plus tt possible dans le processus de dveloppement fin de mettre en vidence rapidement les dfauts dinfrastructure.
Objectifs
Vrifier que toutes les exigences du cahier des charges soient respectes. Ils ont lieu immdiatement aprs les tests dintgration. 2 approches : Identifier et tester toutes les fonctions du logiciel Tester les caractristiques du logiciel (interfaces)
Approche fonctionnelle classique Analyse Partitionnelle Tests aux limites Tests combinatoires Tests syntaxiques Tests alatoires Couverture de graphe fonctionnel Graphe cause effet
Approche structurelle (bote blanche) Tests structurels statiques Tests structurels dynamiques
PRESENTATION PHILIPPE
Les outils de tests Le classement Les outils daide la ralisation Les outils de campagne de tests Les outils de tests fonctionnels Les outils de tests structurels Les outils de tests de performance
Lexemple
Lenvironnement du SI est toujours plus complexe La programmation volue et implique plusieurs langages Dtection des bugs plus difficile, dbuggeur difficile mettre en uvre. Lexigence qualit du client SI ou fournisseurs engagement qualit Base de la rponse : ISO20000, CMMI, ITIL Le SI, les fournisseurs cherchent une rponse pour automatiser les tests.
Le Classement
Les outils daide la ralisation des tests Les outils de campagne de tests
Capture et r-excution des scripts raliss via une IHM Sauvegarde des tests et des rsultats associs Gnration de scripts de tests en fonction des langages et des
plateformes.
de MERCURY QUALITY
automatisation des tests : environnements applicatifs diffrents Automates de tests de nouvelle gnration Crer, grer un ensemble de tests et coordonnes les rsultats
Limportance du march :
HP
HP HP
.NET
Java Web toutes les commandes VS.NET (VB.NET, J#, C# et Managed C++)
Automatisation aise des tests manuels Dtection du plus grand nombre d'erreurs Scnarios de tests adapts aux objets communs Intgration
Qualit de code (DevPartner) Suivi des dfauts (TrackRecord) Gestion des exigences (Reconcile, Optimal Trace)
Spcifique aux IHM raliss en Java (Abbot signifie "A Better Bot")
Linterface Costello permet d'enregistrer des actions Une API Java est disponible pour Junit.
iRise Studio de iRise
Permet
la dfinition, les tests et la validation des fonctionnalits de solutions Web avant tout dveloppement
La dfinition de campagnes de tests Lhistorisation des rsultats La gestion des tests de non rgression Ils servent dfinir, organiser et conduire les campagnes de tests Interfaage avec tous les outils. Ne sont pas des automates de tests Suites Intgres doutils de gestion de tests et automates viter la
concurrence.
TestDirector de Mercury Quality Center HP Une seule application Web se charge de l'intgralit de la procdure de test :
laboration
Organisation et excution des tests Gestion des anomalies Analyse de l'tat du projet La documentation
Salom TMF (Open Source) Un des rares outils libres de gestion de tests
Organisation des tests en campagnes, pour l'excution Possibilit d'intgrer et d'excuter 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-...).
Test Manager de Soft Edition.Net Se prsente sous forme d'une application intranet. A pour but :
De crer De planifier Dorganiser les diffrentes sessions de tests Gestion documentaire Apport mthodologique pour des quipes de tests
Aide la cration et lorganisation des documents de test Aide la cration des plans et stratgies de tests Dimensionne, organise et cre les campagnes de tests Dlivre des rapports prcis au responsable pour le suivi Suivi de la production, des campagnes et de la couverture fonctionnelle tablit le lien entre les documents et les spcifications Donne un statut en temps rel des campagnes de tests Point dintgration avec les demandes de fonctionnalits Point dintgration avec les anomalies
QADirector de Micro Focus : permet de tester compltement une application avec une rutilisation des tests, un partage des informations et une facilit dutilisation. Planification des tests
Excution des tests Variation des environnements de test Analyse dynamique de l'application teste Analyse des rsultats des tests Soumettre les problmes
Ces outils sont une valeur ajoute pour les projets de grande taille
Rduction de plus de 30% de l'effort de conception des tests fonctionnels Avec une couverture des tests 2 5 fois suprieure.
Permet d'effectuer des tests sur les problmes de synchronisation Cration d'une plate-forme commune pour les concepteurs et testeurs Large couverture de test Maintenance simple de l'environnement de test - modles de test
graphiques.
Rsultats des tests et des couvertures de tests automatiss Permet de gnrer des scripts de test hors ligne
Ils sont donc complmentaires aux outils de tests fonctionnels qui vrifient, eux, ce que doit faire le logiciel.
Cest pourquoi des diteurs ont cr des suites comprenant ces deux types de tests.
Produits lis au dveloppement orient objet et web Bass sur la mthodologie AEP (Automated Error Prevention), ces outils
mettent en uvre une dmarche de prvention.
Solution multiplateforme pour les langages C, C++, Java et Ada Produit particulirement adapt pour les applications embarques ou
les autres types de produits informatiques nomades
Prise en charge des applications critiques et confidentielles embarques Pro activit pour dboguer, dtecter et corriger les erreurs avant
qu'elles n'affectent le code de production
Propuls Le
par le succs de l'Extreme Programming (XP), le Test-Driven Developpement ou TDD est devenu une vidence principe du TDD est donc, avant mme d'crire le code d'une fonctionnalit, d'crire le test pour ce futur code
JUnit
Les tests de performances sont mens pour des sites Web ou Intranet
WAPT de SoftLogica
Enregistre des scnarios de tests Les rejouer volont Fait varier : le nombre d'utilisateurs, l'intervalle entre chaque test
Le principe :
Simule des adresses IP htroclites Paramtrages cookies, donnes d'entre pour diffrentes
pages, nom et mot de passe, vitesse de connexion et son propre "chemin" dans l'application
Simuler nombre de connexions sur un site web Ne dispose pas d'une interface utilisateur ( la diffrence de WAPT) Un scnario en lisant une liste d'URL partir d'un fichier Stresser une seule URL avec un nombre dfini d'utilisateurs Un utilitaire de capture de trafic Sproxy
permet de faire varier les tests
Outil de tests de performance pour ressources statiques ou dynamiques Simuler de lourdes montes en charge : serveur/rseau 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
-Les tests ont volu au fil des annes : - De 1960 1980, il sagissait dune mise au point. - De 1980 1990, les tests cherchaient uniquement trouver des erreurs. - Depuis 1990, les tests se veulent prventifs. - Les applications sont de plus en plus complexes, les volumes de donnes sont de plus en plus grands Il tait oblig que les tests occupent nouveau au devant de la scne (Nombreux outils, Certaines socits ont leur propre structure de tests) - LExtreme programming (Mthode agile de gestion de projets) qui a compris et intgr les tests dans son cycle itratif de dveloppement. -Mme le Cloud Computing, qui est un concept mergent est impact par ce nouvel lan pour les tests (nuages de serveurs) : on parle dj de HaaS (Human as a Service) qui consiste externaliser le capital humain ! Autrement dit, les tests !
Conclusion
Nous avons tent de prsenter le plus simplement possible ce vaste sujet des tests.
Il nexiste pas de techniques meilleures que dautres : Tout dpend de nos besoins, de nos objectifs Rien nempche de combiner plusieurs techniques. Cest ce que nous prconisons dailleurs. Nous avons vu quaujourdhui que les tests faisaient lobjet dune pratique encore trop souvent artisanale mais que dans un futur proche, les tests seront une activit rigoureuse fonde sur des modles et des thories et quelle sera de plus en plus automatise. Il ne fait aucun doute que la politique de tests est aujourdhui une dimension incontournable de la gestion de projet.