La discipline de test joue le rôle de fournisseur de services par rapport aux autres disciplines, sous certains égards.
L'objectif des tests est tout d'abord d'évaluer la qualité du
produit , à l'aide des ces principales étapes :
-
Trouver et documenter les défauts en terme de qualité logicielle.
-
Donner des conseils à propos de la qualité logicielle perçue.
-
Valider et prouver les suppositions faites dans les spécifications d'exigences et de conception par le biais d'une
démonstration concrète.
-
Valider le fait que le produit logiciel fonctionne tel qu'il est conçu.
-
Valider le fait que les exigences sont implémentées de façon appropriée.
Il existe une différence intéressante entre le test et les autres disciplines du RUP - le test consiste essentiellement
à trouver et à dévoiler les faiblesses du produit logiciel. C'est intéressant car, pour obtenir le profit le plus
élevé, vous avez besoin d'une philosophie générale distincte de celle utilisée dans les disciplines d'exigences,
d'analyse et de conception et d'implémentation. Une différence quelque peu subtile est que ces trois disciplines se
focalisent sur l'exhaustivité, alors que le test se focalise sur l'absence d'exhaustivité.
Un effort de test de qualité est motivé par des questions de ce type :
-
Comment ce logiciel peut-il s'interrompre ?
-
Dans quelles situations potentielles ce logiciel peut-il fonctionner de façon imprévisible ?
Le test remet en question les suppositions, les risques, et l'incertitude inhérente au travail dans les autres
disciplines, et traite ces problèmes en utilisant une démonstration concrète et une évaluation impartiale. Evitez ces
deux extrêmes potentiels :
-
une approche ne remettant pas en question le logiciel, et ne dévoilant pas ses problèmes ou faiblesses inhérents de
façon efficace et appropriée.
-
une approche trop négative ou destructrice - en adoptant une approche si négative, il vous sera peut-être
impossible de considérer que le produit logiciel est d'une qualité acceptable, et cela pourrait aliéner l'effort de
test par rapport aux autres disciplines.
Les informations exprimées dans diverses enquêtes et essais indiquent que le test logiciel représente de 30 à 50
pour-cent du coût global du développement logiciel. Ainsi, il est assez surprenant de noter que la plupart des gens
pensent que les logiciels informatiques ne sont pas bien testés avant d'être livrés. Cette contradiction trouve sa
source dans quelques problèmes clés :
-
Le test logiciel est très complexe. Comment quantifier les différentes manières dont peut se comporter un programme
donné ?
-
Le test est généralement effectué sans méthodologie claire, ce qui entraîne des résultats variant d'un projet et
d'une organisation à l'autre. Le succès dépend principalement de la qualité et des compétences des personnes.
-
Les outils de productivité ne sont pas assez utilisés, ce qui rend les aspects laborieux du test impossibles à
gérer. Outre le manque d'exécution automatisée du test, de nombreux efforts de tests sont effectués sans outils
permettant de gérer efficacement des données et des résultats de test extensifs. La flexibilité d'utilisation et la
complexité des logiciels rendent impossible l'exécution d'un test complet. En utilisant une méthodologie bien
conçue et des outils de pointe, la productivité et l'efficacité du test logiciel peuvent être améliorées.
Des logiciels de haute qualité sont essentiels au succès de systèmes où la sécurité est cruciale - comme le
contrôle du trafic aérien, le guidage des missiles ou bien les systèmes de livraison médicale - dans lesquels un échec
peut mettre des personnes en danger. L'importance cruciale d'un système d'information de gestion classique peut ne pas
être évident au premier abord, mais un défaut pourrait entraîner des dépenses considérables en perte de revenus et
éventuellement des coûts légaux pour l'entreprise utilisant le logiciel. Dans cette ère de l'information, où les
demandes de services livrés électroniquement par Internet augmentent toujours plus, de nombreux systèmes d'information
de gestion sont considérés comme vitaux; ce qui signifie que les entreprises ne peuvent pas remplir leurs
fonctions et connaissent des pertes massives en cas d'échec.
Une approche contenue de la qualité, débutée au début du cycle de vie du logiciel, peut diminuer le coût de production
et de maintenance de vos logiciels de façon significative. Cela réduit largement le risque lié au déploiement de
logiciels de mauvaise qualité.
La discipline de test est liée à d'autres disciplines, décrites ci-dessous :
-
La discipline d'exigences consigne les exigences du produit logiciel, ce qui est l'un des
éléments principaux permettant d'identifier les tests à effectuer.
-
La discipline d' analyse
& de conception définit la conception appropriée pour le produit logiciel, qui est une autre entrée
importante pour identifier les tests à réaliser.
-
La discipline d'implémentation produit des constructions du produit logiciel validées par
la discipline de test. Au cours d'une itération, plusieurs constructions seront testées, en général une par cycle
de test.
-
La discipline de déploiement livre le produit logiciel terminé à l'utilisateur final. Bien
que le logiciel soit validé par la discipline de test avant cela, des tests bêta et d'acceptation sont souvent
effectués dans le cadre du déploiement.
-
La discipline d'environnement développe et maintient des artefacts de support utilisés
pendant le test, comme les recommandations de test et l'environnement de test.
-
La discipline de gestion de projet planifie le projet et le travail nécessaire dans chaque
itération. Décrit comme un plan d'itération, cet artefact est un élément important utilisé lors de la définition de
la mission d'évaluation appropriée pour l'effort de test.
-
La discipline de gestion de la configuration & des changements contrôle les changements
au sein de l'équipe du projet. L'effort de test vérifie que tous les changements ont été effectuées correctement.
Nous vous recommandons la lecture de l'ouvrage de Kaner, Bach & Pettichord's Lessons Learned in Software
Testing [KAN01], qui aborde de nombreux sujets de première importance pour les équipes de
test.
|