Devrais-je enregistrer un bogue que j'ai découvert et corrigé?

68

Je suppose que c'est une situation courante: je teste du code, découvre un bogue, le corrige et valide le correctif dans le référentiel. En supposant que de nombreuses personnes travaillent sur ce projet, devrais-je d'abord créer un rapport de bogue, me l'assigner moi-même et le référencer dans le message de validation (par exemple, "Corriger le bogue #XYZ. Le bogue était dû à X et Y. Corrigé par Q et R ")? Alternativement, je peux ignorer le rapport de bogue et commettre avec un message tel que "Un bogue qui causait A quand B a été corrigé. Le bogue était dû à X et Y. Il a été corrigé par Q et R".

Qu'est-ce qui est considéré comme une meilleure pratique?

David D
la source
4
Dépend de la taille de votre entreprise et de votre équipe, ainsi que des caractéristiques du bogue. Cela n’est pas nécessaire pour les petites équipes rapides, car vous pouvez communiquer avec vos collègues développeurs en leur criant dessus. Sur les grandes équipes, les grandes entreprises et les environnements de développement distribués, il est bon de consigner votre travail, mais c'est également un temps système qui ralentira votre niveau de production si vous travaillez sur plusieurs petits bogues. Sauf s'il s'agit d'un bug sérieux, il est toujours agréable de le documenter, de le tester à l'unité pour éviter la régression et de le fermer.
Machado
15
N'oubliez pas que certains bogues ne restent pas fixes - ils se réincarnent spontanément si vous les ignorez pendant un moment. Savoir comment quelqu'un a tenté de le réparer la dernière fois peut être utile. À tout le moins, il devrait exister une documentation indiquant ce que vous avez fait au code et pourquoi, même s'il ne s'agit que de commentaires dans le code.
alephzero
5
En plus des commentaires précédents, cela dépend également du fait que le bogue soit entré dans la nature, mais que vous ayez eu la chance de ne pas en rencontrer de client, ou s'il a été introduit et corrigé au cours d'un cycle de publication.
Whatsisname
3
En cas de doute, criez-le. Pour moi, ouvrir et fermer un rapport de bogue n'a jamais fait de mal. Dans certaines circonstances, il est bon que de telles choses soient documentées et officielles.
Phresnel
1
En lien avec le commentaire de @ alephzero, quelque chose m'est arrivé récemment: la correction d'un bogue dans une partie du code a révélé des bogues ailleurs. Ils s'étaient annulés involontairement dans la partie que je n'avais pas touchée, et le premier instinct du mainteneur était de défaire mon correctif.
Izkata

Réponses:

71

Cela dépend de l'audience d'un rapport de bogue.

Si les développeurs le consultent uniquement en interne pour savoir ce qui doit être corrigé, alors ne vous inquiétez pas. C'est juste du bruit à ce point.

Liste non exhaustive de raisons pour vous connecter quand même:

  • Les notes de publication incluent des informations sur les bogues corrigés (jusqu'à un certain seuil que ce bogue rencontre) - en particulier s'il existe une vulnérabilité exposée par ce bogue.
  • La direction souhaite une notion de "temps passé à corriger les bogues" / "nombre de bogues détectés", etc.
  • Les clients peuvent voir l'état actuel du bugtracker (pour voir si leur problème est connu, etc.)
  • Les testeurs obtiennent des informations sur une modification à tester.
Caleth
la source
56
L'endroit le plus susceptible de provoquer un bogue est celui où un bogue s'est déjà produit. Je recommanderais de l'enregistrer dans pratiquement tous les scénarios.
CorsiKa
18
# 4: Les testeurs utilisent le traqueur de bogues pour guider leurs tests. Ils vérifieront que le correctif fonctionne et qu'il n'a pas provoqué de nouveaux bogues ou régressions.
Jpmc26
2
@corsiKa Quand le médicament est pire que la maladie? ;-)
hBy2Py
1
@ hBy2Py Trouvez un nouveau médecin, puis enregistrez-le.
CorsiKa
2
@ BradThomas pour reformuler ce que vous avez cité: "Le bugtracker est utilisé comme une liste TODO, et rien de plus" + "Bug corrigé" -> "pas de TODO". Je suis d'accord dans presque toutes les autres situations, vous voulez un record
Caleth
52

Je dirais que cela dépend si votre produit a été publié avec le bogue ou non.

S'il est publié avec le bogue que vous avez trouvé, alors oui, créez un rapport de bogue. Les cycles de publication peuvent souvent être longs et vous ne voulez pas que votre bogue soit signalé comme un nouveau problème tant que vous l'avez déjà corrigé.

Si votre bogue n'a pas encore été expédié, je ne suivrais pas le même chemin. Vous allez maintenant avoir des gens qui essaient de recréer votre bogue, ce qu'ils ne peuvent pas car ils ne sont pas encore dans une version, ils perdent essentiellement leur temps.

Pieter B
la source
2
De plus, si vous contrôlez le code par rapport à des éléments de travail, envisagez d’intégrer le correctif de bogue par rapport à l’élément de travail d’origine lorsque vous corrigez des bogues qui n’ont pas été intégrés à une version du produit.
wablab
24

Vous devriez le faire s'il s'agit d'un bogue qui aurait pu être signalé par un client. Pire cas: vous corrigez le bogue, mais personne ne le sait. Le client rapporte le bogue. Votre collègue essaie de corriger le bogue, mais ne peut le reproduire (car vous l'avez déjà corrigé). C'est pourquoi vous voulez un enregistrement du bogue.

C'est également utile si vous effectuez des révisions de code, où le code est généralement écrit pour une tâche, puis révisé. Dans ce cas, il est préférable d’isoler ce correctif, ce qui peut nécessiter d’inscrire quelque chose dans votre liste de tâches, puis de faire tout le travail.

gnasher729
la source
9

Cela dépend de plusieurs facteurs.

Pieter B et Caleth en citent tous deux dans leurs réponses:

  • Le bug fait-il partie d'une version officielle?
  • Le nombre de bugs / le temps passé sur eux est-il suivi spécifiquement?

Il peut également y avoir des procédures internes à suivre, souvent étayées par les exigences d’une certification. Pour certains certificats, il est impératif que chaque modification de code soit décelable dans un enregistrement dans un outil de suivi des problèmes.

De plus, parfois même les corrections de bogues d'aspect trivial ne sont pas aussi triviales et innocentes qu'elles ne le paraissent en premier. Si vous associez en silence un correctif de ce type à la livraison d'un problème non lié et que ce correctif s'avère ultérieurement problématique, il sera beaucoup plus difficile de rechercher, et encore moins d'isoler ou de revenir en arrière.

Rétablir Monica
la source
2
Bien sûr, vous devriez mentionner le correctif dans le message de validation, et de préférence effectuer une validation distincte pour la modification qui corrige le bogue. (Et peut-être une demande d'extraction séparée ou une série de correctifs, s'il s'agit d'un changement autonome). La seule exception à cela serait si le bogue était corrigé en tant qu'effet secondaire de la modification de quelque chose pour une raison différente (tout en le mentionnant dans le message de validation). La seule question qui se pose est de savoir s’il faut se préoccuper du suivi des bogues et ne pas regrouper les modifications avec d’autres éléments dans un seul commit!
Peter Cordes
3

Seul le responsable de votre projet ou le responsable du "processus de billetterie" peut répondre à cette question.

Mais laissez-moi vous poser la question suivante: pourquoi n'enregistreriez- vous pas un bogue que vous avez corrigé?

La seule raison insondable que je vois, c’est que l’effort de classement, de fermeture et de fermeture du rapport de bogue est beaucoup plus important que le temps nécessaire pour le résoudre.

Dans ce cas, le problème n'est pas que le bogue est si facile à corriger, mais que la paperasserie prend trop de temps. Cela ne devrait vraiment pas. Pour moi, le temps système nécessaire pour créer un ticket Jira consiste à appuyer sur c, puis à saisir un court résumé sur une ligne, puis à appuyer sur Enter. La description n’est même pas trop onéreuse, car je peux couper et coller cela dans le message de validation, avec le numéro de problème. À la fin, . c <Enter>et le problème est fermé. Cela se résume à 5 touches au-dessus de votre tête.

Je ne sais pas pour vous, mais c'est assez peu pour en faire une politique même dans les petits projets pour enregistrer chaque correction de bogue de cette façon.

L’avantage est évident: peu de personnes peuvent facilement travailler avec un système de ticket comme Jira, mais pas avec le code source; il existe également des rapports générés à partir du système de ticket, mais pas à partir de la source. Vous voulez absolument que vos correctifs de bogues y soient, afin de vous informer sur les développements possibles, comme un afflux croissant de petites corrections de bogues sur une ligne, qui pourraient vous donner un aperçu des problèmes de processus, etc. Par exemple, pourquoi devez-vous souvent résoudre de telles corrections de bugs (en supposant que cela se produise souvent)? Est-ce que vos tests ne sont pas assez bons? La correction de bogue était-elle un changement de domaine ou une erreur de code? Etc.

AnoE
la source
2

La règle que je suis est que si la section sur laquelle vous travaillez n’a jamais été publiée, si elle ne s’exécute pas encore et si aucun utilisateur ne l’a jamais vue, corrigez rapidement chaque petit bogue que vous voyez et avancez. Une fois que le logiciel a été publié et est en production et qu'un utilisateur l’a vu, chaque bogue que vous voyez reçoit un rapport de bogue et est examiné.

J'ai trouvé que ce que je pense être un bug est une fonctionnalité pour quelqu'un d'autre. En corrigeant les bogues sans les examiner, il est possible que je crée un bogue au lieu de le corriger. Indiquez dans le rapport de bogue quelles lignes vous souhaitez modifier pour résoudre le bogue et votre plan pour le corriger.

En résumé: Si ce module n'a jamais été en production, corrigez rapidement tous les bugs que vous voyez et suivez les spécifications. Si le module est déjà en production, signalez chaque bogue en tant que rapport de bogue à examiner avant la résolution.

Russell Hankins
la source
1

Oui .


Certaines réponses exposent déjà des situations dans lesquelles il est utile de créer un rapport de bogue. Quelques réponses. Et ils diffèrent.

La seule réponse est que personne ne le sait. Différentes personnes, à différents moments , auront des opinions différentes sur le sujet.

Alors maintenant, quand vous rencontrez un bogue, vous avez deux solutions:

  • demandez-vous s'il vaut la peine d'ouvrir un rapport de bogue ou non, demandez peut-être l'avis d'un collègue ... et plus tard, dans certains cas, regrettez que vous ne l'ayez pas fait parce que quelqu'un vous le demande et si vous aviez déjà le rapport, vous pourriez il suffit de leur indiquer que
  • il suffit de créer le rapport

La création du rapport est plus rapide et si ce n'est pas ... automatisez-le.


Comment l'automatiser? En supposant que votre suivi gère les scripts, créez simplement un script que vous pouvez appeler et qui utilisera le message de validation (titre et corps) pour soumettre un rapport de bogue et le fermera comme "implémenté" immédiatement, avec la révision de validation associée au suivi.

Matthieu M.
la source
0

Je suis d'accord pour dire que les autres réponses offrent toutes de bonnes règles empiriques et que plusieurs abordent même ce point, mais je pense qu'il n'y a qu'une réponse vraiment sûre ici.

Demandez à votre responsable . Eh bien, votre responsable ou votre chef de projet ou scrum master, etc., en fonction de la structure de votre groupe.

Il existe de nombreux systèmes de bonnes et de mauvaises pratiques, mais le seul moyen de savoir que vous faites le bon choix pour votre équipe est de le demander.

Une conversation d’une minute dans le couloir conviendrait parfaitement: "Hé (patron), si je corrige un bogue mineur qui ne prend que quelques minutes, est-il utile de faire un ticket pour celui-ci ou devrais-je simplement le mentionner dans mon message de validation? " et vous saurez à coup sûr. Toutes les bonnes pratiques du monde sont inutiles si cette méthode agace votre équipe et votre manager.

Vality
la source