Você é alguém que testa (tester) aplicações e já escutou a seguinte frase: “O analista de qualidade não pode ver código pois “vicia” para executar o teste.”; ou é um desenvolvedor e concorda com essa afirmação?
Em todos estes anos na área de testes, ouvi essa frase algumas vezes partindo de devs, gerentes e até colegas da profissão.
Neste artigo pretendo mostrar que quando estamos trabalhando num contexto ágil,revisar código traz benefícios.
O Analista de Qualidade trabalhando em um contexto ágil pode executar o teste com base na técnica de revisão de código, gerando benefícios para garantir a qualidade do código, e pode usar uma lista de verificação para guiar seus testes de revisão.
Técnica de Revisão de Código
Quando o QA não possui, por exemplo, acesso aos requisitos do software, ele pode utilizar várias técnicas e abordagens para iniciar os testes. Uma dessas técnicas é por revisão de código.
O próprio nome “revisão de código” deixa claro o objetivo da prática. A ideia é que o código escrito por um desenvolvedor, antes de ser promovido ao ambiente de produção, seja revisado por outro membro da equipe. O revisor anota todos os problemas encontrados e devolve ao autor original daquele código. O autor então avalia os comentários recebidos e eventualmente os propaga para o codigo-fonte.
Quais os benefícios?
→ Avaliar um software antes mesmo de ter uma versão para testes permite antecipar inconsistências.
→ Permite também o testador dizer como melhorar a cobertura de testes escritos pelos desenvolvedores.
→ Acontece disseminação de conhecimento entre os membros da equipe.
→ Redução de bugs, falhas.
→ Melhoria da qualidade interna.
Como revisar o código?
O revisor além de entender da parte técnica, é preciso que consiga ter uma perspectiva completa do que está revisando. É muito importante saber, o objetivo do desenvolvedor com essa solução, seja ela a correção de um bug ou a entrega de um novo processo no sistema.
Não utilize apenas os casos de teste que o desenvolvedor criou, tente pensar em novos cenários para analisar a cobertura de testes. Nesse momento, podem surgir novas ideias que não haviam sido consideradas em tempo de desenvolvimento.
Ah, usar uma lista de verificação auxilia na revisão de código.
Exemplo do check-list revisão de código fonte
– O código obedece às convenções acordadas pelo time?
– Há código morto?
– Há algum comentário desnecessário?
– Todos os laços tem um final alcançavel?
– Os testes contidos testam o que se propõe a testar?
QA, ainda está em dúvida se deve revisar o código?
Alguns exemplos reais:
- Em uma revisão de código foi percebido que os parâmetros da função não estavam sendo testados para null, logo caso o serviço rest retornasse algum valor nulo, ocorreria um erro em tempo de execução. Talvez esse erro nunca ocorresse, mas como era estava consumindo um serviço de terceiros, era melhor fazer a verificação para que o aplicativo não desse crash.
- Em outro cenário, o programador teria que codificar para exibir uma determinada mensagem que provinha de um arquivo de configurações, quando o tester abriu o PR já percebeu que a mensagem estava errada. Para validar essa mensagem depois da aplicação pronta, gastaria aproximadamente 30 minutos para criar massa de dados; analisando o código antecipou a inconsistência.
- Mais um exemplo, quando você revisa os testes unitários, analise se tem a devida cobertura de testes para aquele método.
- Ao fazer revisão em determinado código o analista de teste percebeu que a exibição de uma mensagem ao final do fluxo estava fixa como String Português, ao invés de invocar um arquivo que checa qual idioma do dispositivo para exibi-la.
Concluímos que é aceitável e possível o analista de teste revisar o código fonte, a técnica não serve só para melhorar a qualidade do código, mas também para disseminar conhecimento entre os membros da equipe, antecipar as inconsistências no ambiente de contexto iterativo, e existem ferramentas para auxiliar a revisão do código fonte, como o check list de verificação.
Ainda ficou com alguma dúvida no assunto? Me conta nos comentários se as dicas do conteúdo “Tester: Qual o seu papel na revisão de código?” foram úteis pra você.