Reabertura de bug vs. novo

55

Um erro foi aberto, corrigido, verificado e fechado. Um mês depois, ele apareceu novamente em uma versão subsequente após várias iterações sem nenhuma regressão.

Desde que as características do bug sejam as mesmas, você reabriria o ID do bug existente ou abriria um novo com um link para o bug fechado?

KMoraz
fonte

Respostas:

86

Características não são iguais a causas. O novo bug pode ter um motivo subjacente diferente, embora pareça ser o mesmo. Portanto, abra um novo bug e aponte-o para o antigo para ajudar o desenvolvedor.

Dibbeke
fonte
23
+1 há muitos differnt doenças com diferentes tratamentos que compartilham comuns sintomas.
FrustratedWithFormsDesigner #
Seria justo deduzir que, se o bug provou ter a mesma causa, você o reabriu?
KMoraz 28/03/12
@KMoraz: Acho que sim, mas isso é apenas algo a ser considerado após a investigação provar que é exatamente a mesma causa. Como os sintomas desapareceram por um tempo, é improvável que seja exatamente o mesmo bug, embora possa ser um bug introduzido em uma parte diferente do sistema, mas codificado da mesma maneira que o bug original foi codificado, causando sintomas semelhantes.
FrustratedWithFormsDesigner #:
11
@KMoraz eu diria que não. Suponha que ele foi corrigido no 1.0, 1.1 não o tenha, mas reapareceu no 1.2. A menos que o rastreador de problemas permita associá-lo a lançamentos de servidor de uma só vez, você perderá o histórico que foi encontrado e corrigido na 1.0. Basta abrir um novo bug.
289 Andy
11
@Andy não acho que isso muda alguma coisa, mas talvez 1.1 tinha e ninguém notou ...
joshuahedlund
35

Se foi verificado e fechado, funcionou por um tempo e depois apareceu novamente depois que algo foi alterado, então não é o mesmo bug. Pode se manifestar da mesma forma que o bug antigo, mas sua causa pode muito bem ser diferente. Portanto, não é o mesmo bug. Então, eu abriria um novo, com um link para o bug fechado.

Joonas Pulakka
fonte
16

Abra um novo bug, sempre. Por quê? Suponha que ele seja idêntico ao bug anterior e você lançou a correção para o bug anterior. Suas notas de versão documentarão que "Corrigir bug XXX". Do ponto de vista do rastreamento de problemas e da clarificação das notas de versão, é preferível consultar o novo bug "Corrigir bug XXX + 1 (que era semelhante em causa e efeito ao Bug XXX)" em vez de "Corrigir bug XXX (novamente) "ou algo semelhante.

James McLeod
fonte
2
Citar IDs de bug em notas de atualização é simplesmente muito hostil.
Thomas Bonini
3
@krelp É útil quando você está trabalhando com um fornecedor para corrigir um problema e pode rastrear o ID do bug que recebeu com um ID de bug nas notas de versão.
Darryl Braaten 28/03
11
@ Krelp Eu me perguntei por que isso é uma má idéia, então eu perguntei aqui: programmers.stackexchange.com/questions/142258/… Talvez você tenha alguma opinião sobre isso? :)
Travis Northcutt
Este é um ponto bom
KMoraz
4

De um modo geral, abra um novo bug.

No entanto, se você puder fazer alguma investigação primeiro, eu verificaria seu histórico no código-fonte .

Se você trabalha em um ambiente de equipe, alguém pode ter um código antigo em seu sistema (ou seja, eles não fizeram o Get Latest após o check-in da correção original), fizeram alterações e fizeram o check-in sem fazer uma comparação. Má prática, claro, mas acontece "o tempo todo".

Examinar o histórico do (s) arquivo (s) em que o erro foi corrigido rapidamente confirmará ou eliminará isso como uma possibilidade.

Wonko, o são
fonte
11
"(ou seja, eles não fizeram o Get Latest após o check-in da correção original), fizeram alterações e depois fizeram o check-in sem fazer uma diferença" ... se isso acontecer, seu sistema de controle de origem está quebrado
JoelFan
@ JoelFan - não necessariamente. Às vezes, a mesclagem automática não funciona corretamente, e às vezes a mesclagem manual também não. Ou, pode ser que eles tenham perdido a alteração quando fizeram a diferença, etc. Tudo o que estou dizendo é que isso cheira a erro humano, e uma verificação de 2 minutos no histórico de controle de origem pode economizar muito. aborrecimento.
Wonko the Sane
11
Verificando o histórico vale a pena de qualquer maneira ... porque se o seu sistema de controle de fonte estiver quebrado, você quer saber disso.
Mjfgates
2
Se isso acontecer all the time, não é o SCM que está quebrado, é a sua equipe de desenvolvimento ...
Daenyth
1

Concordo com a sugestão dos pôsteres anteriores de abrir um novo bug, pois ele pode não acabar sendo a mesma causa raiz.

Minha recomendação adicional seria garantir que você sempre adicionasse testes de unidade e integração que cobrem o bug, para que em versões futuras você consiga detectar o problema imediatamente antes que ele seja enviado aos seus clientes. Nada parece pior para um cliente do que ver o mesmo bug voltar.

Mike Parkhill
fonte
1

Não é a melhor analogia - apenas porque os sintomas de duas pessoas são os mesmos, isso não significa que a doença / causa da doença seja a mesma.

Da wikipedia:

Um bug de software é um erro, falha, falha ou falha em um programa ou sistema de computador que faz com que produza um resultado incorreto ou inesperado ou se comporte de maneiras não intencionais. A maioria dos erros surgem de .....

Um bug é uma falha no código e apresenta sintomas / efeitos. Um bug não é o sintoma. Um bug é o erro no código. Só porque os sintomas são os mesmos, isso não significa necessariamente que a mesma falha está causando os sintomas.

Meu entendimento é que você deve reabrir um bug quando tiver certeza de que um bug foi causado devido ao mesmo pedaço de código. Isso pode acontecer quando o código se comporta corretamente em todos os cenários / casos de teste, mas não em um novo caso de teste ou caso de teste em que você não pensou antes. Esse tipo de cenário pode não ser comum.

O outro cenário é que os mesmos sintomas são causados ​​por novas falhas, ou seja, novos erros em outras partes do mesmo código ou mesmo em outros sistemas que afetam esse código.

Portanto, a aposta mais segura é abrir um novo bug quando os mesmos sintomas ocorrerem. Se você perceber que o mesmo código antigo é responsável pelo bug, feche o novo bug e abra novamente o bug antigo. Caso contrário, deixe o novo bug permanecer e vincule-o ao antigo.

BugBot
fonte