Às vezes, minha equipe de controle de qualidade relata erros, mas nem eu nem eles temos alguma idéia de como reproduzi-los. Isso leva a sessões de depuração muito longas e frustrantes que às vezes nem produzem resultados.
Meu software está fortemente vinculado a hardware proprietário, para que os erros possam vir de várias direções ao mesmo tempo.
Devo esperar mais deles do que "seu software travou quando eu apertei um botão" ou devo imaginar o que aconteceu?
EDITAR:
Um colega de trabalho apontou que provavelmente somos todos desenvolvedores aqui, portanto os resultados podem sofrer um pequeno viés
Respostas:
O controle de qualidade deve sempre tentar tornar os bugs o mais fácil possível de reproduzir e a descrição do bug deve conter as etapas executadas.
No entanto, se eles não conseguirem reproduzir facilmente os bugs, eles ainda devem ser inseridos no banco de dados de bugs com títulos / títulos adequados e uma descrição completa do que fizeram para causar o bug. A descrição do bug deve indicar claramente que eles não podem reproduzi-lo (talvez com algum comentário parecido com "tentei cinco vezes, aconteceu uma vez"). Dessa forma, se outra pessoa vir o mesmo bug, ela poderá adicionar ao banco de dados de bugs com suas descobertas e você obterá o máximo de informações possível, o que pode ser vital para poupar seu tempo, rastreando o problema.
Além disso, você pode filtrar as informações - pode haver muitos bugs em sistemas diferentes que você sabe que estão todos vinculados a (por exemplo) uma área do código - se o controle de qualidade não reportar nada (pois eles não podem reproduzi-los) ), essas informações não chegam a você.
fonte
... a full description of what they did to cause the bug
. Como isso é diferente de um repositório?The software crashed
vsThe software crashed editing foowidgets
vsThe software crashes when viewing a foowidget and toggling the frobulator 10 times followed by pressing this key sequence (stack trace attached)
. O último detalhe pode não ser óbvio, mas ter a segunda descrição em vez da primeira é certamente útil.Parece que seu departamento de controle de qualidade está fazendo muitos testes exploratórios (ou seja, eles não têm um bom plano de teste).
O teste exploratório é bom e identifica áreas problemáticas, mas a partir daí eles devem definir casos de teste reproduzíveis (ou seja, um plano de teste) para executar, revelando erros específicos.
Há várias razões pelas quais uma reprodução correta é necessária (não apenas boa, mas necessária):
Assim, como SteveCzetty observa: Feche-o como não reproduzido e volte ao trabalho.
fonte
Se o bug não puder ser reproduzido de forma consistente, como o controle de qualidade saberá se foi corrigido?
fonte
Sim, você deve esperar mais deles. Eles devem ser capazes de dizer:
Se tudo o que eles dizem é "caiu", não são muito bons. Mesmo que as etapas acima não sejam 100% reproduzíveis, uma amostra grande o suficiente dessas falhas pode ajudar a diminuir a causa, assim que um padrão for detectado.
fonte
Meu conselho é ler esses bugs e dar a eles um bom pensamento antigo. Se você não conseguir descobrir uma causa potencial, esqueça-a por enquanto.
O controle de qualidade deve documentar todos os problemas encontrados, mesmo que eles não tenham idéia de como isso aconteceu. O trabalho do controle de qualidade é tentar reproduzir os problemas, mas, realisticamente, isso nem sempre é possível. Às vezes, isso não tem nada a ver com o que eles fizeram nos últimos 10 minutos. Algo entrou em um estado inválido há um dia e ficou aparente por causa de uma das últimas 10 etapas.
Com esses erros "1 em 1000", o controle de qualidade deve tentar reproduzi-los um pouco. Se eles não obtiverem sucesso, devem documentar o bug e tentar um pouco mais.
A razão pela qual eles devem inserir o bug com bastante antecedência é que o programador conhece o código muito melhor que o controle de qualidade e pode saber imediatamente o problema. Pode ser o código que eles refatoraram. Poderia ser a função que eles implementaram pela metade e depois esqueceram. Eles podem não ter idéia, mas não faz sentido o testador desperdiçar algumas horas tentando reproduzir um problema que é óbvio para a pessoa que o codificou. O testador sempre pode adicionar mais detalhes ao bug posteriormente.
O bug deve incluir o máximo de informações possível. Tudo o que o testador puder lembrar sobre a preparação para o problema deve ser anotado com detalhes dolorosos. Quaisquer logs de falhas, instantâneos de banco de dados ou capturas de tela relevantes também devem ser anexados.
Se o bug nunca for reproduzido, ótimo! Não faz mal tê-lo no banco de dados. Se o programa for lançado e um usuário relatar um erro semelhante posteriormente, você poderá comparar a experiência deles com o que está no relatório e procurar outras similaridades.
Na minha experiência, os erros mais interessantes não são encontrados nos planos de teste a seguir. Às vezes, você precisa deixar as coisas cozer por algumas semanas para alinhar a lua e as estrelas, causando um erro desagradável. Se o controle de qualidade puder fazer algum trabalho de detetive e encontrar algumas causas possíveis, dê um tapinha nas costas. Mas, às vezes, quem sabe o que aconteceu?
fonte
Muitos bugs não são reproduzíveis até você saber como corrigi-los. Isso não significa que eles não precisam ser consertados. Corrigi um bug no ano passado que ainda não sei como reproduzir. Requer alguma combinação bizarra de um erro de transmissão com tempo preciso, juntamente com dados de lixo muito específicos em um determinado local de memória na pilha. Infelizmente, um de nossos clientes tem a "sorte" de entrar nessa condição o tempo todo.
Portanto, incentive o controle de qualidade a incluir etapas de reprodutibilidade sempre que possível, mas não as culpe se não puderem. Às vezes, ajudará você a saber onde adicionar o log. Às vezes, tudo o que faz é dizer o que não causa o erro, mas um relatório de erro é sempre útil.
fonte
Se você quer dizer que o controle de qualidade deve incluir as etapas para reproduzir o erro, se puderem, a resposta é sim. Se você quer dizer que eles devem apenas gravar bugs, eles são capazes de se reproduzir, absolutamente não. Bugs são bugs, se eles só acontecem à meia-noite na lua cheia ou toda vez que você olha para ele. Alguns erros são não determinísticos (o exemplo clássico é uma variável não inicializada, onde o valor captado é semi-aleatório), o que não significa que eles não devam ser registrados, investigados e, se possível, corrigidos.
Bugs não reproduzíveis geralmente devem ter uma baixa prioridade, mas definitivamente devem ser registrados.
fonte
OMI, você deveria. O controle de qualidade não fará o trabalho deles se não puderem dar a você nenhuma etapa de reprodução. Não perca seu tempo tentando reproduzir algo que não pode, basta fechá-lo como "Não é possível reproduzir" e seguir em frente.
Seu tempo é muito mais valioso que isso.
fonte
Um relatório de erro deve conter:
Por exemplo:
DELETE * FROM tSuppliers
), abri a caixa de diálogo do fornecedor e cliquei na lista suspensa Fornecedor.GUPOS ERROR #0000000: SOMETHING WENT WRONG!
. Quando cliquei na mensagem, o aplicativo desapareceu da tela e do Gerenciador de tarefas.Então, sim - deve conter as etapas para reproduzir. O fato de eles não sentirem a necessidade de incluir isso parece indicar que eles acham que seu trabalho é "interromper o software", em vez de identificar falhas.
fonte
O controle de qualidade deve poder reproduzir os erros com base nas etapas inseridas. Se eles tentaram muito, ainda não conseguiram se reproduzir, ainda assim devem inserir os erros com os detalhes que possuem com o registro de data e hora, para que os desenvolvedores possam dar uma olhada no aplicativo e nos logs de depuração para obter mais detalhes.
fonte
O dinheiro está em jogo aqui. Por que qualquer membro da equipe deveria ser capaz de criar uma tarefa mal definida e com poucas chances de sucesso que sobrecarrega um desenvolvedor (com sorte) altamente remunerado?
Não se trata de hierarquia, hierarquia, arrogância, nós vs. eles ou algo assim. Trata-se apenas de investir em atividades que agregam valor ao produto.
Quando for possível demonstrar que um problema afeta negativamente e de forma mensurável o valor do produto, ele deve ser investigado, reproduzido e corrigido. Corrija o pipeline de defeitos do produto para filtrar o ruído.
fonte
sua equipe de controle de qualidade é uma merda
Vá até eles e peça para lerem um documento que qualquer testador profissional deve ter impresso bem dentro de seus cérebros (eu fui testador uma vez e ainda o tenho no meu cérebro): Como relatar erros de maneira eficaz .
Particularmente, aponte-os para a seção "Mostre-me como me mostrar" :
Se eles começarem a gritar com você, reclamando que "os bugs podem vir de várias direções ao mesmo tempo" , diga a eles que eles sugam ainda mais do que você pensava antes. Diga a eles que a testabilidade é um recurso que eles devem avaliar entre outros recursos do projeto e devem investir esforços para obter esse recurso corretamente.
fonte