L'actualité des solutions logicielles pour l'entreprise !

Comment améliorer la qualité des développements logiciels

0

Tandis que les applications deviennent de plus en plus complexes, et que les charges de développement augmentent, rationaliser le développement logiciel semble une vraie gageure. Une des pistes de rationalisation pourrait être de se concentrer sur l’identification et la correction des défauts.

En effet, selon une étude réalisée en 2002 par la Nist, à cette époque, 80 % des dépenses en ingénieries logicielles étaient consacrées à cette correction des défauts. Ainsi, en matière de conception logicielle, identifier un défaut avant la mise en production n’a pas de prix, car cela permet de corriger rapidement le problème et de réduire de façon conséquente le coût de maintenance des applications.

C’est pourquoi, le développement de projets logiciels intègre une phase de test à laquelle il est de plus en plus porté attention.

Nous allons dans cet article nous intéresser au défaut logiciel, à sa terminologie, sa nature, et aux différents moyens de réduire et / ou de corriger ces défauts en vue de l’amélioration de la qualité de développement.

La qualité logicielle

Il est possible d’identifier plusieurs pratiques bénéfiques pour l’amélioration de la qualité de développement logiciel :

  • le travail sur l’identification des défauts,
  • la mise en place d’un processus d’amélioration continue
  • la mise en place d’actions correctrices ayant pour but que le défaut ne se reproduise plus.

En général, une procédure documentée doit être établie afin de suivre le traitement des non-conformités et d’évaluer l’efficacité des actions correctives.

Le défaut

Dans le développement informatique, le défaut, également appelé bug, renvoie à une erreur de conception, de codage ou de compréhension, bref à une erreur humaine.

Parmi les erreurs courantes, on peut citer : erreurs de codage pures, oublis, erreurs de communication, non respect d’une procédure, absence d’information, erreurs de raisonnement, confusion de langage etc.

Mais il faut reconnaître que le développeur est humain, et donc imparfait. Il n’est pas possible d’éliminer totalement les erreurs. Par contre, il est possible dans le processus de développement de responsabiliser le développeur et surtout de fiabiliser la mise en œuvre des tests.

La phase de tests

La phase de tests n’est généralement pas bien vécue par les développeurs, car elle les oblige à travailler de façon intensive, alors qu’en général le projet a déjà pris du retard. Elle peut également être génératrice de stress dans le cas où les défauts sont difficiles à identifier ou à corriger.

Pour diminuer ce stress et rationaliser au maximum la phase de test, il s’agira de définir des procédures efficaces pour mieux identifier les défauts, les vérifications devront être réalisées sous la forme de tests unitaires.

Tandis que dans un logiciel les modules sont généralement interconnectés, on s’attachera ainsi à la mise en place de tests unitaires, qui correspond à la vérification d’une unité de programmes spécifiques.

Pour que cela soit possible, le prérequis est que le code soit modulaire, c’est-à-dire qu’il se compose de modules, de groupes de fonctions, de méthodes et de traitements permettant de réaliser une encapsulation comparable à celle de la programmation objet.

Une phase de tests réussie

Pour que la phase de test soit réalisée dans des conditions optimales, il est important :

  • que les défauts soient identifiés le plus tôt possible, car un défaut non identifié se propage à l’intérieur des autres phases de développement
  • que la phase de test soit effectuée le plus tôt possible.

De plus, il est possible d’évaluer la réussite ou non de la phase de test, en identifiant sa rentabilité. Pour ce faire, il faut calculer la différence entre le coût d’un défaut identifié précocement et le coût d’un défaut identifié pendant la phase de production. En général, cette différence correspond à un facteur entre 10 et 100. Autant dire que les gains sont importants.

Intégrer la phase de test au processus de développement

Enfin, il est nécessaire de donner plus d’importance à la phase de test au sein des processus de développement. Bien entendu, cette pratique est généralisée, mais généralement, on ne lui donne pas la valeur qui devrait lui être dûe. La phase de test n’est pas toujours effectuée consciencieusement et elle est jugée accessoire. Pour changer les mentalités, il est nécessaire que la prise de conscience vienne de la direction informatique. Il s’agit ainsi de définir des procédures de livraison plus formelles, incluant ces phases de tests unitaires ainsi que des tests d’intégration.

Ainsi, l’identification des défauts dans le processus de développement des logiciels peut permettre de faire de véritables économies, à la fois en temps et en argent.

Certaines entreprises travaillent même non seulement à l’identification précoce des défauts, mais aussi à leur prédiction. Cette prédiction est possible en utilisant des modèles statistiques tenant compte des pratiques de développement et des différents facteurs humains. On obtient alors des pourcentages de défauts pouvant se produire dans chaque phase de développement et des pourcentages de défauts qu’ils ne se propageront pas aux autres phases du projet.

Munis de ces informations, il s’agit ensuite de rédiger un plan qualité comportant des critères quantitatifs de qualité pour chacune des phases du projet. De cette façon, l’amélioration de la qualité des développements logiciels est possible dans la mesure où les directeurs informatiques considéreront les phases de tests et l’identification des défauts de développement comme une priorité. Avec la nécessité de réduire les coûts mais aussi de fiabiliser les résultats, nul doute que ces pratiques seront amenées à se développer dans les années à venir.

A propos de l’auteur :

Société informatique installée en région parisienne, Ivision est spécialisé dans l’hébergement informatique professionnel et l’infogérance. Ivision propose également du développement logiciel, de l’ingénierie applicative, et des prestations en matière de sécurité des systèmes d’informations, réseaux et logiciels. N’hésitez pas à consulter notre site web, www.ivision.fr.

Partager.

Laisser un commentaire