L'amélioration des processus des tests : une urgence économique !
Dans un contexte de compétition internationale, de recherche de rentabilité et de compétitivité, il est indispensable d'améliorer l'efficacité des processus de développement et de test. L'efficacité des développements logiciels a fait l'objet de nombreuses actions ; nouveaux langages, de nouveaux paradigmes et nouvelles méthodologies. Or, la qualité des logiciels ne s'est pas améliorée sensiblement, les coûts ont continué à croître, les délais à s'allonger. « Que fait la qualité, à quoi servent les testeurs ? » est une question qu'on est en droit de poser. A l'occasion de la Journée Française des Tests Logiciels du 30 mars 2010, Bernard Homès, Président du Comité Français des Tests Logicels (CFTL) interviendra sur ce thème.
PublicitéLes faits parlent d'eux-mêmes Les développements logiciels coûtent de plus en plus cher. Avec une part correspondant à 30%, voire 50% du coût total de développement, les tests en sont une partie non négligeable. Malgré de nombreux efforts, la qualité des logiciels ne semble pas s'améliorer pour autant. L'actualité récente (plusieurs millions d'utilisateurs de cartes bancaires allemands pris en otage en Janvier 2010 ; le fleuron d'Airbus obligé de faire demi-tour le 20 novembre 2009 pour une panne de pilote automatique, etc.) nous le rappelle fréquemment. Selon des études récentes, le niveau de qualité des logiciels livrés est encore fortement améliorable, les meilleures sociétés ne découvrant et ne corrigeant que 85% des défauts et livrant, avec le logiciel les 15% de défauts restants. Dès que l'on parle de milliers de défauts, 15% devient un nombre important. L'augmentation sans cesse croissante de la complexité des applications et du nombre d'interactions entre les logiciels (p.ex. Cloud, SaaS, etc.) fait qu'un défaut dans un autre composant peut influencer le fonctionnement de votre propre logiciel ou système. Pour vous en prémunir, il est nécessaire de faire des tests exhaustifs, ce qui est difficilement justifiable économiquement, voire impossible en termes de délais et de charge. Dans un contexte de compétition internationale, de recherche de rentabilité et de compétitivité, il est indispensable d'améliorer l'efficacité des processus de développement et de test. L'efficacité des développements logiciels a fait l'objet de nombreuses actions ; nouveaux langages, de nouveaux paradigmes et nouvelles méthodologies. Or, la qualité des logiciels ne s'est pas améliorée sensiblement, les coûts ont continué à croître, les délais à s'allonger. « Que fait la qualité, à quoi servent les testeurs ? » est une question qu'on est en droit de poser. La professionnalisation des tests Depuis la publication des premiers ouvrages de vulgarisation sur les tests, il y a plus de 30 ans, de nombreux milliards de dollars (puis d'euros) se sont envolés en fumée, reflétant frustration des utilisateurs, exaspération des testeurs et nuits blanches des développeurs. Et cela, malgré les nombreux livres de référence et outils de tests existant à ce jour. Dans le même temps, des organismes se sont penchés sur l'amélioration des processus et ont proposé des programmes d'évaluation (CMMI, SPICE, ISO9000, etc.) qui ont démontré leur intérêt économique, entre autre l'aspect d'amélioration continue des processus, seul à même de proposer une réduction des coûts à long terme. Les méthodes d'amélioration des processus de test L'efficacité des processus et techniques de test est dépendante du contexte où ils sont utilisés, et seule une amélioration continue garantit leur efficacité accrue. L'amélioration des processus de test, pour en réduire les coûts et la durée ou augmenter leur efficacité, est un objectif affiché par tous. Cependant, ceci ne peut se faire qu'avec un niveau de référence à partir duquel comparer les évolutions. Plusieurs méthodes d'amélioration de processus existent. Elles se regroupent en deux familles : celle à modèle de référence externe où l'on compare les processus par rapport à un référentiel idéal (p.ex. TPI, TMMI, CMMI) ; ou celle à modèle de référence interne, où le référentiel est la société elle même, et ses propres processus (p.ex. IMPROVE, PLAN, CTP, STEP, ODC). L'amélioration des processus basée sur un référentiel externe s'appuie sur des processus établis. Il est donc simple de faire appliquer ces méthodes toutes faites. La mise en oeuvre cependant peut ne pas correspondre aux attentes et une autre question peut se poser : quelles actions d'amélioration envisager après que le référentiel externe ait été complètement implémenté ? L'utilisation d'une méthodologie basée sur l'analyse du référentiel interne de l'entreprise est automatiquement adaptée aux besoins de celle-ci, après une évaluation (un audit) des processus de test et de développement existants, de leur rentabilité respective (en terme de coût, de génération de défauts et d'efficacité de détection). L'évaluation des processus et leur pertinence, l'identification des processus à améliorer, la sélection de ceux à améliorer en priorité, et la préconisation d'actions, nécessitent une compétence pointue et une expérience étendue de la part de l'acteur. De tels niveaux de connaissance requièrent des consultants sénior expérimentés. Si leur coût journalier peut paraître élevé, les améliorations qu'ils préconisent étant adaptées aux besoins de l'entreprise, leur rentabilité à court terme est souvent fort élevée. L'évaluation de la rentabilité L'évaluation de la rentabilité des processus doit étudier, outre les coûts de réalisation et le nombre de défauts identifiés, le nombre de défauts qui échappent au processus de détection. Il faut donc prendre en compte les coûts des défauts (et tous les coûts associés à leur correction), lesquels augmentent en cas de détection tardive. Combien de sociétés évaluent actuellement les coûts de leurs défauts selon le moment où ils sont découverts ? Pourtant ces informations sont disponibles, il suffit de les mesurer. Combien de responsables de développement sont en mesure d'identifier l'origine d'un défaut, de l'associer à un processus de développement, et de proposer des actions d'amélioration de façon à éviter une répétition de ce défaut dans le futur ? Combien sont en mesure de fournir une évaluation statistique liant les défauts identifiés aux processus de développement qui sont à l'origine de ces défauts ? Des axes d'amélioration Plusieurs ouvrages de référence mettent clairement en avant l'efficacité des processus de test statiques (revues, inspections, analyses de code) et le besoin d'améliorer la qualité des exigences, comme moyens d'atteindre rapidement un niveau de qualité adéquat des développements. Une étude récente portant sur plus de 12 000 sociétés a démontré qu'aucune technique individuelle de test ne permettait de trouver plus de 30% des défauts d'une application. Il est donc recommandé de mettre en oeuvre plusieurs techniques complémentaires pour assurer une efficacité de détection autour de 85-90%. Quels processus améliorer ? La sélection des processus à améliorer doit se faire selon leur rentabilité. Celle-ci s'évalue, d'une part en fonction des améliorations immédiates fournies (défauts supplémentaires détectés), et d'autre part en fonction des améliorations induites dans les autres processus. Exemple : un éditeur connu a réussi, par l'application d'inspections formelles (analyse statique) à trouver 50% de défauts de plus que lors des releases précédents, réduisant la durée totale des tests de 15% et la charge de test dynamique de 75%. Mesurer et améliorer la rentabilité des processus du test doit devenir un préalable La détection des défauts et leur correction sont les activités les plus chères du cycle de développement de logiciels. Toute amélioration de ces processus se traduira directement par des réductions de coût, par des développements de qualité et une diminution du nombre de défauts détectés par les utilisateurs. Pour les améliorer, il est important de mesurer les activités de tests, et aussi toutes les autres activités liées au cycle de vie (plus vaste que le cycle de développement, car un logiciel en maintenance reste une source de coûts de test et de correction) des logiciels, depuis les exigences jusqu'à la maintenance, au support hotline et au SAV, car l'amélioration des processus de test influence aussi ces autres processus. Une mesure en termes d'impact et en termes de volumétrie, aide à déterminer les processus à améliorer en priorité. La recherche des origines des défauts (Analyse des Causes Racine) permet d'identifier les processus défaillants, à l'origine des défauts. Des méthodes d'amélioration des processus, intégrant les aspects systématiques et statistiques, permettent de garantir un taux de retour sur investissement supérieur aux meilleures sociétés cotées en bourse. Parce que les tests représentent entre 30 à 50% des coûts de développement, leur amélioration est une urgence économique justifiant un regard appuyé de la part de la direction de nos entreprises. Une amélioration itérative de la rentabilité des processus de test permettra de montrer la maturité de notre profession, notre professionnalisme et notre valeur ajoutée. Références Software Reliability Engineering (2nd Edition), J.D.Musa, 2004, Author House, ISBN 9781418493875 Estimating Software Costs, C.Jones, 2007, Mc Graw Hill, ISBN 978-007148300
Article rédigé par
Bernard Homes, Président Du Comité Français Des Tests Logiciels (CFTL)
Bernard Homès (52 ans) bénéficie d'une expérience de plus de 30 ans dans le domaine de la Qualité et des Tests de logiciels. Au cours de sa carrière, il a occupé différents postes clefs à dimension internationale, notamment en tant que Directeur de Centre de Tests rattaché à la direction générale de SMC International. Depuis 1999, il exerce en qualité de Consultant Senior « Environnement International Qualité et Tests de Logiciels » pour le compte d'entreprises renommées : Eurocopter, Alcatel Space, TESSCO ltd, Orange France ou encore CRIM.
Après des études en informatique à l'ISIB Bruxelles et un Master of Sciences in Computer Information Systems, obtenu en Angleterre, Bernard possède les certifications Certified Tester Advanced Level (Full), ISEB/ISTQB, iSQI et Certified REQB Professional - Ingénierie des Exigences, GASQ (Allemagne).
Il exerce également en tant qu'intervenant en dernière année du Mastère, au sein de l'Ecole des Mines de Paris et de HEC, et a exercé aux Ecole des Mines de Douai, Nantes et Alès, et à l'ENST-B à Brest. Il dispense parallèlement de nombreuses conférences chaque année. Bernard Homès est impliqué au sein de différentes organisations professionnelles : membre du jury de l'Académie d'experts de France Télécom R&D, Président du groupe de travail et auteur du Syllabus Avancé de l'ITQSB, membre honoraire du bureau exécutif de l'IEEE France et membre fondateur de l'Association for Software Testing (USA), et du Global Association for Software Quality (GASQ).
Commentaire
INFORMATION
Vous devez être connecté à votre compte CIO pour poster un commentaire.
Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire