Tous les aspects involontaires ou indésirables du comportement du logiciel ne sont pas tous des bogues. Ce qui est important, c'est de s'assurer que le logiciel dispose d'une gamme de conditions utiles et documentées dans lesquelles il peut être utilisé pour fonctionner de manière utile. Considérons, par exemple, un programme qui est censé accepter deux nombres, les multiplier et produire les résultats, et qui génère un faux numéro si le résultat est supérieur à 9,95 mais inférieur à 10,00, supérieur à 99,95 mais inférieur à 100,00, etc. Si le programme a été écrit dans le but de traiter des numéros dont le produit est compris entre 3 et 7, et ne sera jamais appelé à en traiter d'autres, la correction de son comportement avec 9,95 ne le rendrait pas plus utile pour son objectif. Cela pourrait cependant rendre le programme plus adapté à d'autres fins.
Dans une situation comme celle ci-dessus, il y aurait deux solutions raisonnables:
Résolvez le problème, si cela est possible.
Spécifiez les plages dans lesquelles la sortie du programme serait fiable et indiquez que le programme ne peut être utilisé que sur des données connues pour produire des valeurs dans des plages valides.
L'approche n ° 1 éliminerait le bogue. L'approche n ° 2 pourrait rendre la progression moins appropriée à certaines fins qu'elle ne le serait autrement, mais s'il n'y a pas besoin de programmes pour gérer les valeurs problématiques, cela pourrait ne pas être un problème.
Même si l'incapacité à gérer correctement les valeurs 99,95 à 100,0 est le résultat d'une erreur de programmation [par exemple, décider de sortir deux chiffres à gauche de la virgule décimale avant d'arrondir à un endroit après, ce qui donne donc 00,00], cela ne doit être considéré que comme un bug si le programme était spécifié autrement comme produisant une sortie significative dans de tels cas. [Par ailleurs, le problème susmentionné s'est produit dans le code d'impression Turbo C 2.00; dans ce contexte, c'est clairement un bogue, mais le code qui appelle le printf défectueux ne serait bogué que s'il pouvait produire des sorties dans les plages problématiques].