Différence entre un défaut et un bogue dans les tests?


35

Quelle est la différence entre un défaut et un bug?


2
Lisez teststandards.co.uk/bs_7925-1_online.htm pour plus d'informations
StuperUser

1
Il y a des bogues qui indiquent réellement qu'il manque quelque chose, ce qui signifie qu'ils sont une demande de fonctionnalité et non des bogues.
m3th0dman

La réponse dépend du but pour lequel vous demandez.
max630

Recherchez l'étymologie du mot défaut. De = pas, un. Facere = do. Par conséquent, ne fait pas (comme prévu), ne pas effectuer, est cassé, kaput. Considérant que "bogue" signifie "quelque chose en construction entrave la performance". À la fin de la journée, vous devrez réparer quelque chose, donc tout est académique. J'ai voté pour la fermeture, n'avez-vous pas des bugs à corriger?!
Martin Maat

Réponses:


59
  • Un bug est le résultat d'une erreur de code

  • Un défaut est un écart par rapport aux exigences

C'est-à-dire qu'un défaut ne signifie pas nécessairement qu'il y a un bogue dans le code , il peut s'agir d'une fonction qui n'a pas été implémentée mais définie dans les exigences du logiciel.


De la page Wikipedia sur les tests de logiciels :

Tous les défauts logiciels ne sont pas causés par des erreurs de codage. Une source commune de défauts coûteux est causée par des lacunes dans les exigences, par exemple des exigences non reconnues, qui entraînent des erreurs d'omission par le concepteur du programme. [14] Les exigences non fonctionnelles telles que la testabilité, l'évolutivité, la maintenabilité, la convivialité, les performances et la sécurité sont une source commune de lacunes dans les exigences.


15
Les deux sont des "déviations des exigences" comme je le vois.
Martin Wickman

2
Un défaut ne doit pas nécessairement être un bug. En outre, un bogue ne signifie pas forcément qu'une exigence n'était pas remplie et qu'il ne s'agit donc pas d'un «écart par rapport à l'exigence»
Dan McGrath le

5
Vous semblez manquer le point @Martin. Oui, un bug peut être un défaut. Oui, un défaut peut être un bug. Mais ce n'est pas nécessairement toujours vrai. Ce n'est pas parce qu'ils se chevauchent qu'ils sont identiques! Diagramme de Venn d'un bug ou d'un défaut -> (())
Dan McGrath le

8
@ Dan McGrath: ce que vous avez fait ici est essentiellement votre propre définition d'un bogue. Mais en général, il n'y a pas de sens défini, c'est juste un jargon d'ingénierie!
Mai

3
@DanMcGrath: Votre diagramme de Venn est inutile. Cela pourrait signifier soit ({}) ou ({)} . Je suppose que vous vouliez dire le second.
Brian

21

Citant Ilene Burnstein de l'ouvrage Practical Software Testing (recommandé) qui se démarque de la définition figurant dans "IEEE Standards Collection for Software Engineering" (1994) et "Glossaire standard IEEE de la terminologie du génie logiciel" (norme 610.12, 1990):

Erreur

Une erreur est une erreur, une idée fausse ou un malentendu de la part d'un développeur de logiciels.

Dans la catégorie des développeurs, nous incluons des ingénieurs en logiciel, des programmeurs, des analystes et des testeurs. Par exemple, un développeur peut mal comprendre une notation de conception ou un programmeur peut taper un nom de variable de manière incorrecte.

Défauts

Un défaut (défaut) est introduit dans le logiciel à la suite d'une erreur. Une anomalie dans le logiciel peut entraîner un comportement incorrect de celui-ci, et non selon ses spécifications.

Les défauts ou les défauts sont parfois appelés "bugs". L'utilisation de ce dernier terme banalise l'impact des défauts sur la qualité du logiciel. L'utilisation du terme «défaut» est également associée à des artefacts logiciels tels que des exigences et des documents de conception. Les défauts survenant dans ces artefacts sont également causés par des erreurs et sont généralement détectés dans le processus de révision.

Les échecs

Une défaillance est l'incapacité d'un système logiciel ou d'un composant à remplir ses fonctions requises dans les conditions de performances spécifiées.

Lors de l'exécution d'un composant logiciel ou d'un système, un testeur, un développeur ou un utilisateur constate qu'il ne produit pas les résultats escomptés. Dans certains cas, un type particulier d'inconduite indique qu'un certain type d'erreur est présent. Nous pouvons dire que le type de mauvaise conduite est un symptôme de la faute. Un développeur / testeur expérimenté disposera d'une base de connaissances sur les défaillances / symptômes / échecs (modèles de défaillances décrits au chapitre 3) stockés en mémoire. Un comportement incorrect peut inclure la production de valeurs incorrectes pour les variables de sortie, une réponse incorrecte de la part d'un périphérique ou une image incorrecte sur un écran. Les testeurs observent généralement les défaillances lors du développement, tandis que les développeurs localisent et réparent les défaillances.

Vous pouvez lire le chapitre complet dans Google Livres, ici .


12

Il existe différents termes liés aux bogues logiciels. Extrait d'un cours que j'ai suivi:

  • Erreur : Action humaine ou omission qui entraîne une faute.

  • Défaut : Le défaut est un défaut logiciel (étape, processus ou définition de données incorrect) qui provoque un échec.

  • Bug : Identique à Fault.

  • Échec : incapacité d'un logiciel à remplir ses fonctions requises dans les conditions de performances spécifiées.

Selon cela, il n'y a pas de différence entre un défaut et un bug. Cependant, certaines personnes avancent que ce bogue est une erreur trouvée avant la publication du logiciel, alors qu'un défaut est celui trouvé par le client.

Je n'ai pas pu résister à l'affichage du fameux "premier cas réel de bug trouvé".

texte alternatif



Ce n'est pas d'où je l'ai eu, mais ils peuvent avoir une source commune (ou celle-ci pourrait être la source).
Tamás Szelei

Oui, il y a de nombreuses années, j'ai passé un certain temps à essayer de corriger un bogue. J'ai eu quelques scintillements gênants dans une cellule de l'écran et cela n'avait aucun sens. Il s'est finalement envolé. (C'était à l'époque du texte en blanc sur un écran noir, l'endroit en question était assez éloigné vers la droite pour toujours être en noir pendant l'édition, donc je ne l'ai remarqué que lorsque le programme a mis du blanc derrière.)
Loren Pechtel

7

Oh cher.

À l'époque, le mauvais fonctionnement d'un ordinateur était dû à toutes sortes de choses, notamment des rats qui mâchaient le câblage et de vrais insectes (créatures) qui entraient dans les œuvres.

Le terme BUG est resté comme un terme qui signifie que quelque chose ne fonctionne pas comme prévu.

BUG doit être considéré comme un terme de jargon qui signifie un défaut.

Un défaut est un terme techniquement correct qui signifie que la chose ne fait pas ce qu’elle devrait.

Dans la mesure du possible, utiliser DEFECT au lieu de BUG implique en réalité que nous reconnaissons nos échecs (nos défauts, notre manque de compréhension des exigences des utilisateurs ou les choses que nous avons négligées dans la mise en œuvre) au lieu de le considérer comme le bogue le plus trivial. ".

Utilisez DEFAUT.

Essayez de ne pas utiliser le terme BUG. C'est idiot, sans importance, historique et banal.


2
Pourquoi voudriez-vous retirer de l'utilisation un terme technique bien compris? Je suis désolé ... oui, BUG est historique - mais si vous pensez que les programmeurs considèrent les bugs (génériques par opposition à spécifiques) comme triviaux simplement parce qu'ils sont appelés bugs ou que le terme n'est pas pertinent en raison de ses origines, je suis peur que je devienne grincheux à l’âge moyen est tout à fait justifié. Oh, et comme @Dan le fait remarquer, les bogues sont des défauts, mais les défauts ne sont pas nécessairement des bogues, ce qui suggère en outre que le terme a une valeur.
Murph

3
@Murph, un "bug" est un euphémisme pour une erreur de programmation. Inconsciemment, cela attire une sorte de gremlin sur lequel le développeur n'a aucun contrôle. Ce n'est pas correct - il est une erreur et en reconnaissant c'est un pas vers un comportement plus professionnel. (À
mon humble avis

1
Euh, je suis clairement en désaccord (-: je sais précisément qui est responsable des bugs - erreurs de codage et de logique - que j'ai dans mon code. (Je suis également capable d'identifier les défaillances dans le code des autres personnes.) Tous les programmeurs que je connais sont clairs sur ce que le terme signifie - qu'ils (bien certains programmeurs) et non une sorte de gremlin ont commis une erreur
Murph

2
Lorsque vous traitez avec vos clients, vous pouvez appeler ces choses des bugs ou des défauts. Bugs est du jargon. Les défauts sont une reconnaissance, en dehors du jargon, que ce n'est pas comme il se doit. "Défauts" est un terme qui encourage et favorise une communication claire - en dehors de la fraternité de programmation ainsi qu'à l'intérieur. (Je ne suis pas non plus d'accord sur le fait qu'il y a une différence entre un bogue et un défaut.)
Rapidement, le

Les défauts sont le terme approprié. Combien de programmes contenant des bogues ont été publiés et que nous acceptons tous? Mais combien de programmes sont publiés avec des défauts? Nous n'accepterions pas cela parce que le terme implique une plus grande sévérité et nous savons que c'est de notre faute à l'erreur, plutôt qu'un bug où nous pouvons blâmer le temps ou la météo.
Rudolf Olah

7

Extrait du glossaire standard IEEE de terminologie du génie logiciel, cité dans le corps de connaissances KA du génie logiciel pour les tests et la qualité des logiciels:

punaise. Voir: erreur; faute.


Erreur. (1) Différence entre une valeur ou une condition calculée, observée ou mesurée et la valeur ou la condition vraie, spécifiée ou théoriquement correcte. Par exemple, une différence de 30 mètres entre un résultat calculé et le résultat correct. (2) Une étape, un processus ou une définition de données incorrects. Par exemple, une instruction incorrecte dans un programme informatique. (3) Un résultat incorrect. Par exemple, un résultat calculé de 12 lorsque le résultat correct est 10. (4) Action humaine produisant un résultat incorrect. Par exemple, une action incorrecte de la part d'un programmeur ou d'un opérateur. Remarque: Bien que les quatre définitions soient couramment utilisées, une distinction attribue la définition 1 au mot «erreur», la définition 2 au mot «faute», la définition 3 au mot «défaillance» et la définition 4 au mot «erreur». Voir a2so: erreur dynamique; erreur fatale; erreur indigène; erreur sémantique; erreur syntaxique; erreur statique; erreur transitoire.


échec. L'incapacité d'un système ou d'un composant à remplir ses fonctions requises dans les conditions de performances spécifiées. Remarque: La discipline de tolérance aux pannes établit une distinction entre une action humaine (une erreur), sa manifestation (une défaillance matérielle ou logicielle), le résultat de la défaillance (une défaillance) et le montant de son erreur (erreur). Voir aussi: crash; échec dépendant; exception; mode de défaillance; taux d'échec; échec dur; échec naissant; échec indépendant; échec aléatoire; défaillance légère; échec bloqué.


faute. (1) un défaut dans un périphérique matériel ou un composant; par exemple, un court-circuit ou un fil cassé. (2) Une étape, un processus ou une définition de données incorrects dans un programme informatique. Remarque: cette définition est principalement utilisée par la discipline de tolérance aux pannes. Dans l'usage courant, les termes «erreur» et «bogue» sont utilisés pour exprimer ce sens. Voir aussi: défaut lié aux données; faute de programme sensible; défauts équivalents; masquage des fautes; faute intermittente.


Je pense que la définition de l'échec est la plus pertinente. Tout commence par une erreur, que ce soit dans les exigences, la conception, la mise en œuvre ou le scénario / la procédure de test. Si cette erreur se manifeste dans un logiciel, cela devient une faute. Une défaillance est causée par l’existence d’un ou de plusieurs défauts logiciels.

Je ne suis cependant pas intéressé par la définition formelle de l'erreur. Je préfère de loin la définition fournie par dukeofgaming dans sa réponse ; toutefois, celle-ci est la définition standard d'erreur de l'IEEE.


3

La réponse de Dan McGrath a bien fonctionné.

  • Un bug est le résultat d'une erreur de code
  • Un défaut est un écart par rapport aux exigences

Peut-être qu'un exemple le rendrait plus clair.

Exemple: le client souhaitait que le formulaire Web puisse enregistrer et fermer la fenêtre.

Scénario 1: les formulaires Web ont un bouton de sauvegarde et un autre bouton de fermeture. Résultat: défaut car le client voulait que le bouton 1 enregistre et ferme la fenêtre. Développeur mal compris et créé séparément. Étant donné que les deux boutons remplissaient leurs exigences, il ne s'agissait pas d'un bogue, mais d'un défaut car il ne répondait pas aux exigences du client.

Scénario n ° 2: le formulaire Web comporte un bouton Enregistrer & Fermer, mais enregistre mais ne ferme pas. Résultat: Bug. Parce que le bouton ne fonctionne pas comme requis / prévu. Le développeur sait qu'il est supposé produire ce résultat, mais finalement il ne l'a pas fait. (peut-être une erreur de codage)

Je ne sais pas si cela rend les choses plus claires.

p / s: du point de vue du développeur (je l'étais une fois), les défauts et les bugs sont tout aussi importants. Nous allons toujours le réparer.

Nous avons même rencontré des anomalies étranges, que nous avons classées sous les bogues et nous essayons continuellement de comprendre quelle est la cause et comment le réparer. Le qualifier de bogues ne le rend pas trivial par rapport aux défauts.


Comment appelons-nous des exigences défectueuses?
gnasher729

@ gnasher729 si, par exigences fautives, vous vouliez dire que les programmeurs ont mal compris les exigences, alors je penserais que c'est un défaut. Mais si vous entendez des exigences erronées car l'utilisateur qui fournit de mauvaises exigences entraînant le travail final ne résout pas le problème initial, c'est un problème au-delà des bogues et des défauts car il s'agit d'un problème lié à la session de collecte des exigences plutôt qu'au développement.
tctham

0

La différence est que le terme "bug" semble magique. Comme si un programme pouvait avoir des bogues au hasard après la programmation. S'il y a des bogues aléatoires, cela signifie que vous ne vous êtes pas conformé aux spécifications et que votre programme est en erreur.

Un défaut signifie une erreur où le programme n'est pas conforme aux spécifications. Ceci est plus grave et dit fondamentalement, toute erreur est un énorme problème avec le programme et cela signifie que le programme n'est pas apte à être publié.

La différence réside dans l'attitude des programmeurs qui utilisent les termes. Des millions de programmes sont publiés avec des bogues et les gens acceptent cela, car ils acceptent pour une raison quelconque qu'un bogue est magique et aléatoire et que chaque programme contient au moins un bogue. Cependant, un programmeur qui utilise le terme "défaut" peut être mal à l'aise de publier un programme avec un défaut car ce terme implique une gravité plus grande.

Les implications de préférer un terme à l’autre nous affectent quotidiennement.


0

Selon la fiabilité: concepts de base et terminologie :

Une défaillance du système se produit lorsque le service fourni s'éloigne de la fonction système, cette dernière étant ce à quoi le système est destiné. Une erreur est la partie de l'état du système qui est susceptible d'entraîner une défaillance ultérieure: une erreur affectant le service indique qu'une défaillance est survenue ou s'est produite. La cause jugée ou supposée d'une erreur est une faute .

Je comprends le défaut simplement comme un autre nom pour faute.

Punaise est source de confusion et peut représenter une faute ou un échec selon le contexte.

Notez qu'il n'y a aucune mention de spécification: même une spécification peut être défectueuse.


0

En voici un que j'ai fait plus tôt pour mon employeur Q-LEAP basé sur le vocabulaire ISTQB et j'ai également vérifié le vocabulaire IEEE. Prendre plaisir.

Bug et défaut? Le même, même si on peut avoir une discussion sans fin à ce sujet. Nous avons vraiment d'autres choses à nous inquiéter, la vie est déjà assez compliquée, etc.

entrez la description de l'image ici

Un exemple de la façon dont le terme est utilisé à l’état sauvage, tiré de "Comment le logiciel de test Google" p. 113. Ouvrez un article de "IEEE Software" et utilisez-le de la même manière. En effet, on rencontre rarement le mot "défaut" dans la vie réelle.

La vie d'un insecte

Les bogues et les rapports de bogues sont ceux que tout testeur comprend. La recherche de bogues, le tri des bogues, la résolution des bogues et la régression des bogues constituent le cœur du processus et le flux de travail nécessaires à la qualité logicielle. C'est la partie de test la plus conventionnelle chez Google, mais il existe encore quelques écarts intéressants par rapport à la norme. Pour cette section, nous ignorons les bogues classés pour suivre les éléments de travail et utilisons le terme pour identifier le code réellement cassé. En tant que tels, les bogues représentent souvent le flux de travail heure par heure et quotidien pour les équipes d'ingénierie.

Un bug est né. Les bogues sont trouvés et classés par tout le monde chez Google. Les chefs de produit signalent des bogues quand ils détectent des problèmes dans les premières versions qui diffèrent de leurs spécifications / pensées. Les développeurs signalent des bogues lorsqu'ils réalisent qu'ils ont accidentellement vérifié un problème ou trouvent un problème ailleurs dans la base de code ou lors de la restauration de produits Google. Les bogues proviennent également du terrain, des testeurs en masse, des tests de fournisseurs externes et sont archivés par les gestionnaires de communauté surveillant les groupes Google spécifiques au produit. De nombreuses versions internes des applications disposent également de méthodes simples en un clic pour archiver les bogues, telles que Google Maps. Et, parfois, les logiciels créent des bogues via une API.


0

En dehors d'un bogue / d'une tâche / d'un ticket / d'un défaut / d'un problème / d'une quelconque instance du système de suivi, ces mots n'ont pas de signification exacte. Par conséquent, il est inutile de discuter des différences entre eux. Lorsque vous définissez votre flux de travail, vous devez définir la terminologie et fournir des descriptions.

Dans mon environnement actuel, un "défaut" est un élément de Jira. On dirait que Jira utilise elle-même le terme "problème". Nous en avons peut-être hérité d'un système antérieur. "Bug" est un type de problème lorsque quelque chose ne fonctionne pas comme prévu et décrit dans la documentation. "Demande de fonctionnalité" lorsque quelque chose fonctionne comme prévu mais que l'improvisation est souhaitée (cela peut être évident et important, mais si le comportement actuel est décrit, il s'agit toujours d'une demande de fonctionnalité). Il y a plus de types, mais ceux-ci sont utilisés par des personnes extérieures à l'équipe de développement pour demander quelque chose.

Si vous choisissez des noms pour les types de problème, "bug" et "défaut" sonnent de la même façon. La différence entre eux est stylistique. Comme l'anglais n'est pas ma langue maternelle, je ne peux pas vraiment en voir beaucoup et je ne sais pas si ce que je vois est correct.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.