Concept: Concentration continue sur la qualité
Ce principe traite de la qualité et décrit la manière de la gérer tout au long du processus.
Description principale

Introduction

Ce principe met en évidence le fait que pour atteindre un certain niveau de qualité, celle-ci doit être au centre des préoccupations tout au long du cycle de vie. Un processus itératif est particulièrement bien adapté pour atteindre un haut niveau de qualité dans la mesure où il offre de nombreuses possibilités de mesure et de correction.

            
Avantages
  • Qualité supérieure 
  • Aperçu anticipé des progrès et de la qualité
Pattern
  1. Garantir une gestion en équipe de la qualité du produit.
  2. Tester de manière précoce et continue en phase avec une intégration de fonctionnalités démontrables.
  3. Construire de manière incrémentielle l'automatisation du test.
Anti-Patterns
  • Procéder à une revue entre pairs de tous les artefacts et terminer l'ensemble du test d'unité avant le test d'intégration.
  • Procéder à une revue entre pairs de tous les artefacts intermédiaires, ce qui est contre-productif puisque cela retarde le test de l'application et donc l'identification des problèmes majeurs.
  • Terminer l'ensemble du test d'unité avant le test d'intégration, ce qui retarde encore l'identification des problèmes majeurs

Discussion 

L'amélioration de la qualité ne consiste pas simplement à "satisfaire les exigences" ou développer un produit qui réponde aux besoins des utilisateurs et aux attentes. La qualité comporte aussi l'identification des mesures et des critères permettant de démontrer que la qualité a été atteinte et l'implémentation d'un processus pour s'assurer que le produit a atteint le degré de qualité souhaité et que cela peut être répété et géré.

La garantie d'une qualité élevée nécessite plus que la participation de l'équipe de test ; cela nécessite que l'ensemble de l'équipe soit impliqué dans la qualité. Cela comprend tous les membres de l'équipe et toutes les étapes du cycle de vie :

  • Les analystes sont chargés de s'assurer que les exigences peuvent être testées et qu'elles sont clairement définies pour le s tests à réaliser.
  • Les développeurs doivent concevoir des applications en gardant le test à l'esprit et sont chargés de tester leur code.
  • Les gestionnaires doivent garantir que les bons plans de test et que les bonnes ressources sont en place pour la construction du test et l'exécution des tests requis.
  • Les testeurs sont les experts qualité. Ils guident le reste de l'équipe dans la compréhension des questions qualité liées au logiciel et ils sont chargés du test global du produit (y compris le test fonctionnel, système et de performances).

Lorsqu'un problème lié à la qualité survient, chaque membre de l'équipe doit être en mesure de contribuer à la résolution du problème.

L'un des avantages majeurs du développement itératif est qu'il permet une approche continue et précoce du test, comme indiqué ci-dessous. Au fur et à mesure que la fin du test approche et puisque les fonctionnalités les plus importantes sont implémentées de manière précoce, l'essentiel du logiciel aura fonctionné depuis plusieurs mois et il est probable, voire certain qu'il aura été testé depuis plusieurs mois. Il n'est pas surprenant que la plupart des projets adoptant un développement itératif se traduisent par une amélioration perceptible de la qualité.

Les logiciels développés à chaque itération sont testés au fur et à mesure de leur construction. Le test de régression garantit que de nouveaux incidents ne soient pas introduits lorsque de nouvelles itérations ajoutent une fonctionnalité.

Le test est initié de manière précoce et étendu à chaque itération
Un développement itératif permet un test précoce. Le logiciel développé lors de chaque itération est testé parallèlement à sa construction. Le test de régression garantit que de nouveaux incidents ne soient pas introduits lorsque de nouvelles itérations ajoutent une fonctionnalité. Référence : Matériel de support : gestion de la qualité.

Au fur et à mesure de la construction de l'application de manière incrémentielle, il est également nécessaire de construire de manière incrémentielle l'automatisation du test afin de détecter les incidents de manière précoce tout en minimisant les investissements. Lors de la conception du système, il faut tenir compte de la manière dont il sera testé. Une prise de décision adéquate en matière de conception peut fortement améliorer la capacité à automatiser le test. Il est également possible de générer du code de test directement à partir de modèles de conception. Cela gagne du temps, incite à effectuer des tests précoces et améliore la qualité du test en minimisant le nombre de bogues dans le logiciel de test. Le test automatisé constitue l'un des sujets de discussion les plus importants pour, entre autres, la communauté agile, dans le but d'automatiser le test pour l'ensemble du code et lorsque les tests sont écrits avant que le code ne soit écrit (conception basée sur le test.)