← Derniers articles
📊 statistics

An Upper Bound on the Probability That a User Encounters an Undiscovered Defect

Cet article propose une borne supérieure sans distribution pour la probabilité qu'un utilisateur rencontre un défaut logiciel non découvert, démontrant que la fraction de défauts signalés exactement une seule fois durant la phase de test bêta (s/ns/n) sert d'estimation conservatrice et indépendante du modèle, adaptée aux décisions de mise en production.

Auteurs originaux : Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Publié 2026-07-21
📖 7 min de lecture🧠 Analyse approfondie

Auteurs originaux : Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

La Grande Chasse aux Bugs : Pourquoi compter les bugs ne suffit pas

Imaginez que vous êtes un chef s'apprêtant à servir un banquet géant à des milliers d'invités. Avant d'ouvrir les portes, vous avez une équipe de dégustateurs (vos testeurs bêta) qui ont mangé la nourriture et crié : « Hé, cette soupe est trop salée ! » ou « Il y a un caillou dans ce gâteau ! ». Vous réparez les problèmes qu'ils trouvent. Mais voici la question effrayante : si vous ouvrez les portes dès maintenant, quelle est la probabilité qu'un invité qui entre au hasard morde dans un caillou que vous avez manqué ?

C'est le cœur d'un problème en informatique appelé « fiabilité logicielle ». Depuis des décennies, les développeurs tentent de répondre à cela en comptant. Ils demandent : « Combien de cailloux reste-t-il dans la cuisine ? ». Ils utilisent des mathématiques complexes pour deviner le nombre total de bugs cachés. Mais il y a un piège : savoir qu'il reste dix cailloux ne vous dit pas si ces dix sont tous au fond du garde-manger (où une seule personne pourrait les trouver) ou si un énorme rocher est posé juste devant la porte d'entrée (où tout le monde trébuchera dessus). Les anciennes méthodes restent souvent bloquées à essayer de compter les cailloux, ignorant que certains cailloux sont bien plus dangereux que d'autres à cause de leur emplacement.

Pour résoudre cela, nous devons arrêter de compter les cailloux et commencer à compter les gens. Nous devons savoir la probabilité qu'un utilisateur soit réellement confronté à un problème. Cet article s'attaque précisément à cette question : au lieu de demander « Combien de bugs reste-t-il ? », il demande « Quelle est la chance qu'un utilisateur rencontre un bug qu'il n'a jamais vu auparavant ? ». Il s'avère qu'il existe un moyen étonnamment simple de le deviner, en utilisant une astuce qui observe la fréquence à laquelle les testeurs trouvent le même bug plus d'une fois.


La grande idée de l'article : La règle de la « merveille unique »

Les auteurs, Carlos M. Hernández-Suárez et Karla Hernández-Cuevas, proposent un raccourci ingénieux. Ils suggèrent que pour deviner le risque qu'un utilisateur tombe sur un bug caché, vous n'avez pas besoin de connaître le nombre total de bugs, la façon dont le logiciel est construit, ni même combien de personnes l'utilisent. Vous avez juste besoin d'examiner vos rapports de bugs et de compter quelque chose de très spécifique : les bugs qui ont été signalés exactement une seule fois.

Utilisons une analogie. Imaginez que vous êtes un détective essayant de découvrir combien de types différents d'espèces extraterrestres visitent votre ville. Vous avez un registre de signalements.

  • Si vous voyez « Zog » 50 fois, vous savez que Zog est un extraterrestre commun.
  • Si vous voyez « Xyl » 3 fois, Xyl est un peu plus rare.
  • Mais si vous voyez « Blorp » exactement une fois, et jamais plus, qu'est-ce que cela vous dit ?

L'article soutient que ces « Blorps » — les bugs vus exactement une fois — sont la clé. Ils appellent la fraction de ces signalements uniques (ss) divisée par le nombre total de signalements (nn) une « borne supérieure conservatrice ». En langage clair : Le pourcentage de bugs qui ont été signalés exactement une fois est une estimation prudente, du « pire cas », du pourcentage d'utilisateurs qui seront confrontés à un nouveau bug jamais vu.

Pourquoi cela fonctionne (La logique de la « porte fermée »)

Vous pourriez vous demander : « Et s'il y avait des bugs cachés derrière d'autres bugs ? Comme une pièce secrète derrière une porte verrouillée ? » Les auteurs abordent cela avec un raisonnement brillant.

Imaginez que le logiciel est un immense manoir avec de nombreuses pièces. Certains bugs sont dans le couloir (faciles à trouver). Certains sont dans une pièce secrète derrière une porte verrouillée (difficiles à trouver).

  • Si un utilisateur frappe la porte verrouillée (un bug), il ne peut pas accéder à la pièce secrète située derrière.
  • Par conséquent, le nombre de personnes pouvant atteindre la pièce secrète est toujours inférieur ou égal au nombre de personnes qui frappent la porte verrouillée.

Les auteurs démontrent qu'en raison de cette structure « imbriquée », vous n'avez pas besoin de vous soucier des pièces cachées. Les bugs à « signalement unique » que vous avez trouvés tiennent déjà compte du risque des bugs cachés. Si un bug est signalé une fois, il agit comme une « porte » qui limite le risque de tout ce qui se trouve derrière lui. Ainsi, compter les signalements uniques suffit à couvrir toute la maison.

Ce qu'ils ont fait et ce qu'ils ont trouvé

Les auteurs ne se sont pas contentés de deviner ; ils ont construit un modèle mathématique appelé la « Forme Canonique » (imaginez cela comme un type spécial d'urne ou de bocal rempli de balles colorées). Ils ont prouvé mathématiquement que si vous traitez vos rapports de bugs comme des tirages de balles dans ce bocal, la fraction des balles qui apparaissent une seule fois (s/ns/n) est l'estimation exacte du maximum de vraisemblance pour la « masse manquante » (les bugs invisibles).

Crucialement, ils ont montré que cette estimation est conservatrice. Cela signifie qu'elle a tendance à surestimer le risque plutôt qu'à le sous-estimer.

  • Pourquoi c'est une bonne chose : Si vous êtes un développeur décidant de sortir un logiciel, vous voulez être prudent. Si les mathématiques disent « Il y a 5 % de chances d'un bug », et que la chance réelle est de 3 %, vous êtes en sécurité. Si les mathématiques disaient 3 % et que la chance réelle était de 5 %, vous seriez en difficulté. Cette méthode garantit que vous êtes toujours du bon côté, en privilégiant la prudence.

Ils ont testé cette idée à l'aide de simulations informatiques (création de populations de bugs fictives avec des réponses connues).

  • Dans un test portant sur 20 bugs, ils ont constaté qu'en augmentant le nombre d'utilisateurs testés (augmentant la taille de l'échantillon de 25 à 400), leur estimation (s/ns/n) était toujours supérieure ou égale au nombre réel de bugs invisibles.
  • Par exemple, avec 100 utilisateurs de test, le risque invisible réel était de 0,0059, et leur estimation était de 0,0063. L'estimation était légèrement trop élevée (conservatrice), mais jamais trop basse.

Ce que ce n'est PAS (Les règles du jeu)

L'article est très clair sur ce que cette méthode ne peut pas faire, et il est important de bien comprendre cela :

  1. Ce n'est PAS pour compter les bugs. Cela ne vous dit pas « Il reste 50 bugs ». Cela vous dit « Il y a 2 % de chances qu'un utilisateur rencontre un bug ».
  2. Ce n'est PAS pour les listes de bugs publiques. Les auteurs excluent explicitement l'utilisation de cette méthode sur les bases de données de bugs standards (comme celles sur Internet). Pourquoi ? Parce que dans ces listes, un bug est généralement signalé une fois par une personne, même si 1 000 personnes l'ont trouvé. Le « compte » est perdu. Pour utiliser cette méthode, vous avez besoin de données indiquant : « Ce bug a été rencontré par 50 utilisateurs différents », et non pas seulement « Ce bug a été signalé ».
  3. Ce n'EST PAS une boule de cristal magique pour le futur. Cela donne un instantané du risque en ce moment même. Si vous réparez les bugs et testez à nouveau, vous devez recalculer.

L'essentiel

Cet article offre une réponse directe et sans détour à la décision de mise en production. Il dit : « Ne vous inquiétez pas de savoir combien de bugs se cachent dans l'obscurité. Regardez simplement combien de bugs vos testeurs ont trouvés exactement une seule fois. Ce nombre, divisé par votre nombre total de tests, est votre estimation prudente de la limite supérieure de la probabilité qu'un utilisateur reste bloqué sur un bug que vous avez manqué. »

C'est un outil qui transforme une incertitude complexe et effrayante en un chiffre simple et sûr, garantissant que lorsque le logiciel est livré, les développeurs ont une vision claire et conservatrice du risque pour leurs utilisateurs.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →