Discipline: Test
Cette discipline fournit des conseils sur la façon d'évaluer la qualité du produit.
Relations
Description principale

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é.

Relations avec les autres disciplines

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.

Plus d'informations

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.

Plus d'informations