Você encontra falha e tenta identificar o erro?

Daniel
beyondTest
Published in
3 min readMay 23, 2020

Gostaria de abordar aqui um tema que as vezes acabamos deixando de lado na área de qualidade. Quando você encontra uma falha, você tenta identificar o erro?

Introdução

Geralmente quando temos que realizar testes em algum sistema, ao encontrarmos uma falha reportamos alguns dados como:

  • Prioridade.
  • Versão do sistema.
  • Passos para reproduzir.
  • Resultado esperado.
  • Resultado obtido.

E com esses dados que informamos, normalmente quem for corrigir a falha pode seguir um desses caminhos:

  • Procurar nos logs qual erro apresentou essa falha.
  • Acompanhar novamente os passos para assim ver os logs.
  • Falar com o QA para ajudar a acompanhar a falha e assim ver os logs.

Nesse caso não seria melhor já passarmos todas as informações possíveis contemplando logs e informações da base de dados?

O que quero dizer com isso?

Vamos pensar no cenário que temos que testar o pagamento de um produto e ao informar os dados necessários e clicar em confirmar o front-end apresente a seguinte mensagem: Não foi possível completar sua solicitação. Apenas lendo essa mensagem, não temos idéia de qual foi o erro que ocasionou essa falha. Nesse caso poderíamos verificar diversas opções entre elas os logs e o banco de dados.

Olhando os logs temos como verificar qual a exception que foi lançada ao clicar no confirmar após informar os dados. Nesse caso vamos imaginar que a aplicação que esta sendo testada foi escrita em Java e olhando os logs vimos algo como: java.lang.NullPointerException: name can’t be null. Com essa linha extraída do log já podemos verificar que o atributo name tem o valor null e o sistema não permite isso.

Olhando o banco de dados, podemos realizar uma consulta dos dados que temos do usuário que apresentou a falha e verificar se o campo name esta null também. Se o campo estiver null já sabemos que existe uma falha na hora de gravar os dados na tabela.

Viram como apenas olhando os logs e banco de dados podemos informar dados mais precisos do que ocasionou o erro? Rastreabilidade de uma falha também faz parte da qualidade de um projeto.

Reforçando que tudo depende do contexto e da empresa onde esta sendo aplicado, não sendo uma regra. Já tive experiência de trabalhar em empresa onde o acesso a logs e banco de dados é restrito.

Quais os ganhos?

  • Mais cenários de teste: Olhando os logs e dados do banco temos um melhor entendimento da caixa branca do sistema, podendo assim ver um cenário não coberto e assim podemos pensar em mais testes desde o baixo nível(unitário) tanto de alto nível(E2E).
  • Rastreabilidade do erro: Se for difícil encontrar a causa raiz da falha, provavelmente os logs estão apresentando informações faltantes ou inconclusivas para o usuário e devem ser alterados para ser de fácil rastreamento.
  • Correção mais rápida: Encontrando a causa raiz do bug, podemos informar ao time não só a falha que recebemos mas exatamente onde o erro esta no sistema, dessa forma levando a uma correção mais rápida.

Conclusão

Algumas pessoas tem a idéia que simplesmente achar o bug e reportar já é o suficiente, mas quanto mais informações temos sobre o bug e mais vamos atrás de identificar a causa raiz, mais qualidade o projeto ganha. A qualidade de um projeto vai muito além disso que falamos, mas como vimos aqui, tentar identificar a causa raiz de um bug ajuda não só na qualidade do projeto mas na evolução do QA para se aproximar mais da caixa branca do sistema.

--

--