Causes profondes des bogues logiciels - trouvées en production

D’où proviennent les défauts logiciels ?

Les défauts du logiciel sont inévitables. Une idée fausse courante est que les défauts sont causés uniquement par un code défectueux, ce qui n'est PAS le cas. En fait, plus de défauts sont causés par de mauvaises exigences, une mauvaise architecture ou une mauvaise conception (collectivement) que par un mauvais code.

Habituellement, la notion de défaut ou de bug est considérée comme une « non-conformité aux exigences » et pourtant, si les exigences sont erronées, pourrions-nous quand même avoir un bug ? Oui! Un bug ou un défaut est un échec dans l’obtention du résultat souhaité. Si le résultat souhaité est mal décrit (c'est-à-dire des exigences médiocres), alors nous avons toujours un bug, même si le code fait exactement ce que décrit l'exigence spécifique.

Nous devons réfléchir de manière plus globale à la qualité et à la manière de satisfaire les objectifs ou les résultats.

Alors, quelles sont les causes profondes des bugs logiciels et pourquoi devrions-nous nous en soucier ?

En examinant les causes profondes des bogues logiciels, où et quand les bogues apparaissent pour la première fois, nous pouvons établir de meilleurs moyens de les éviter à l'avenir. Notre objectif est de trouver et résoudre les problèmes le plus tôt possible, afin qu'ils ne soient pas vécus par les utilisateurs.

Il est intéressant de noter dans le graphique ci-dessus que davantage de défauts proviennent du travail de pré-codage que du codage lui-même. Autrement dit, la somme des défauts liés aux exigences, à l’architecture et à la conception est supérieure aux défauts de codage. Étant donné que le code est construit sur la base des trois précédents, nous finirons par coder la mauvaise chose ou de la mauvaise manière à moins que nous ne corrigions d'abord ces défauts de pré-codage.

Potentiel de défaut

Le potentiel de défaut est le nombre probable de défauts générés et latents dans chaque artefact. Par exemple, si nous passons une journée à rédiger des exigences, il est inévitable que nous commettions quelques erreurs. On peut alors dire qu’il existe un potentiel de défauts en fonction de la taille des exigences. L’utilisation d’une métrique universelle de taille (le point de fonction) nous permet de comparer les potentiels de défauts entre différents artefacts.

Si vous comprenez le potentiel de défauts, vous pouvez alors passer à l'étape suivante et considérer les étapes requises pour détecter ces défauts, les supprimer, puis vérifier qu'ils ont été supprimés.

Origines des défauts

Origine du défaut (défauts par point de fonction) Meilleur Moyenne Pire
Exigences 0.34 0.70 (16.5%) 1.35
Architecture et conception 0.67 1.05 (25%) 1.78
Code 0.44 1.15 (27%) 2.63
Failles de sécurité 0.18 0.25 (6%) 0.4
Documents 0.20 0.45  (10.5%) 0.54
Mauvaises corrections 0.39 0.65 (15%) 1.26
Total 2.22 4.25 7.96

Mesuré en défauts par point de fonction pour un système 1000 FP. Source : p. 256. Capers Jones, Logiciel de quantification, 2018 CRC Press.

Nous devrions partir du principe qu’une équipe développant un logiciel ne fera pas un travail parfait, mais peut faire un excellent travail. Cependant, en moyenne, ils effectueront un travail moyen. Et dans tout travail de connaissance, des erreurs peuvent s’infiltrer. Il est très utile de considérer la notion de défaut potentiel. Le potentiel de défauts est l'idée qu'un élément logiciel donné est susceptible de présenter un certain nombre de défauts à moins et jusqu'à ce que ces défauts soient supprimés. Les potentiels de défauts varient selon la taille. Cela signifie qu’une grande application a plus tendance à être boguée qu’une petite.

Obtenez une meilleure qualité

L’aspect le plus chronophage du développement logiciel est la recherche et la correction des bogues.

Sur les projets agiles, nous pouvons constater que 40% de l'effort global sont des retouches principalement causées par une mauvaise qualité du travail de pré-codage. La plupart de ces efforts inutiles peuvent être évités en accordant plus d'attention à la qualité dès le début, avant le début du codage. Tout ce qui peut être fait pour éviter les bugs doit être pris au sérieux. L’évitement et la prévention des défauts nécessitent de la proactivité.

Pour bien comprendre comment nous pouvons accélérer le parcours vers une qualité supérieure, nous devons prendre en compte tous les éléments suivants :

  • Potentiels de défauts
  • Découverte des défauts
  • Évitement des défauts
  • Suppression des défauts

Ceux-ci doivent être pris en compte dans le contexte, au moins, des exigences, de la conception, du code et des tests. En d’autres termes, en commençant par les exigences :

  • quel est le défaut des exigences potentiel?
  • comment allons-nous découvrir les défauts des exigences ?
  • comment pouvons-nous éviter les défauts des exigences ?
  • et comment pouvons-nous retirer les défauts des exigences ?

Répétez les mêmes questions pour la conception, le code et les tests.  Découvrez comment ScopeMaster peut détecter les défauts potentiels des exigences afin que vous puissiez les corriger facilement.

ScopeMaster vous aidera prévenir les bugs, en vous assurant que vos exigences sont de haute qualité.

Jusqu'à 351 bogues de production TP3T proviennent de mauvaises exigences

En janvier 2021, Accenture a reconnu lors du Forum sur l'intelligence logicielle qu'autant que 35% de défauts de production sont causés par des problèmes d'exigences, selon leurs données basées sur 1000 projets. Cela signifie que sur la plupart des projets, le travail d’assurance qualité des exigences échoue. De plus, les problèmes liés aux exigences sont parmi les plus coûteux à résoudre une fois le codage commencé. Trouver des moyens de résoudre les problèmes liés aux exigences est réalisable grâce à une combinaison d’éducation, de temps, d’attention portée à la qualité et d’automatisation. C'est là que ScopeMaster peut vous aider, ScopeMaster peut trouver de manière fiable 50% des problèmes d'exigences, et vous aider à les réparer rapidement également. Dans l'ensemble, l'utilisation de ScopeMaster vous aide à trouver et à résoudre les problèmes dix fois plus vite que d'essayer de faire la même chose manuellement.

Pour détecter les défauts potentiels des exigences, nous devons examiner les exigences de manière très détaillée. Heureusement, le gros du travail est désormais fait pour nous par ScopeMaster, le premier et le plus avancé outil d'analyse des exigences logicielles au monde.

Rapport sur la qualité des exigences par ScopeMaster

Des exigences élevées La qualité est la clé pour minimiser les défauts logiciels

ScopeMaster évalue la qualité de vos exigences.