Existem alguns tipos de bugs que são muito difíceis de reproduzir, ocorrem muito raramente e aparentemente aleatoriamente. Pode acontecer que eu encontre uma causa possível, corrija-a, teste o programa e não consiga reproduzir o bug. No entanto, como era impossível reproduzir o bug de forma confiável e isso acontecia tão raramente, como posso indicar isso em um rastreador de erros? Qual é a maneira comum de fazer isso?
Se eu definir o status
fixo, e o solution
fixo, isso significaria algo completamente fixo, não é?
É prática comum definir status
como fixo e solution
abrir, para indicar aos testadores que "provavelmente está fixo, mas precisa de mais atenção para garantir"?
Edit: a maioria (se não todos) dos rastreadores de bugs tem duas propriedades para o status de um bug, talvez os nomes não sejam os mesmos. Por status
Quero dizer novo, atribuído fixo, fechado, etc. , e solution
eu quero dizer aberta (novo), fixa, insolúvel, não reproduzível, duplicar, não um bug , etc.
Respostas:
Comum ou não, esta é a coisa certa a ser feita de qualquer maneira, e você explicou por que você mesmo: não importa como, é uma boa abordagem para
indicam aos testadores que "provavelmente está consertado, mas precisa de mais atenção para garantir"
Nota lateral, mesmo que o rastreador de erros em particular não tenha um campo como o que você descreve
solution
, o desenvolvedor pode pelo menos adicionar um comentário de forma livre explicando acima.... e se o rastreador de erros não permitir adicionar comentários ao problema, ele deverá ser substituído por um que permita. A capacidade de adicionar esclarecimentos de forma livre é um recurso extremamente importante, pois os problemas variam muito para caber em alguma forma predefinida.
fonte
A equipe de teste decidirá se o problema foi resolvido e se pode ser fechado. Se houver mais regressões, efeitos colaterais da correção ou se a correção em si não for eficaz em outro cenário, o problema será reaberto. Mas se você já fez testes de desenvolvedor suficientes, é melhor marcá-lo como corrigido.
fonte
Na verdade, se eu não houver um cenário de teste reproduzível, nem tentarei consertar esse bug com antecedência. Se você quiser que o testador preste mais atenção, dê a eles a chance de criar um cenário reproduzível.
Por exemplo, digamos que você altere o programa, e um testador investe 1 hora na tentativa de reproduzir o bug, e o bug não aparece - foi uma hora suficiente? Ou está testando ainda mais uma perda de tempo porque o bug já foi corrigido?
Por outro lado, quando você não altera o programa e o erro não aparece em uma hora, provavelmente o testador deve investir outra hora na tentativa de coisas diferentes. E quando o testador investe um dia e não consegue mais reproduzir o erro - vale a pena tentar corrigi-lo?
Dito isso, você pode pensar em como modela esse processo no seu sistema de rastreamento de bugs: não tentar consertá-lo e entregá-lo aos testadores pode ser um status de bug como "aberto". Se os testadores não puderem reproduzi-lo, é obviamente "não reproduzível". Felizmente, isso não acontece, eles encontram um cenário reproduzível, você pode encontrar a causa raiz do seu bug, corrigi-lo e definir o status como "corrigido". Tente evitar entrar em algo como "não sei se está consertado".
fonte
Às vezes, a única evidência que você tem é puramente estatística, por exemplo, ocorre uma ou duas vezes por mês, mas aparentemente não está conectada a nada. No geral, esse é o pior tipo de bug para diagnosticar e resolver que já encontrei, porque você não pode dizer se suas correções têm algum efeito com certeza. A última delas que tive que resolver terminou com uma correção estatística: a frequência do sintoma caiu para 10% com a qual começamos. A peça final nunca foi encontrada, ou talvez tenha sido, mas ninguém tinha como dizer.
Dois conselhos que tenho são: (1) suponha que várias causas possam estar em vigor até que você saiba o contrário; e (2) faça uma hipótese de como os sintomas podem existir e, em seguida, destrua todas as linhas de lógica que estejam envolvidas remotamente. Às vezes, orientações profundas são o único meio para um fim satisfatório.
fonte