Quelle est la différence entre un défaut et un bug?
Quelle est la différence entre un défaut et un bug?
Réponses:
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.
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):
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.
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.
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 .
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é".
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.
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.
La réponse de Dan McGrath a bien fonctionné.
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.
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.
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.
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.
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.
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.