QA, não tenha medo do backend!

Testar o backend é um mundo novo para muitos QAs. E como tudo que é desconhecido, dá um certo frio na barriga e criam-se um monte de questionamentos.

Será que eu consigo? Mas como vou testar sem olhar para a interface? Mas eu não tenho muita habilidade em programação, como vou olhar para o código?

Calma! Não tenha medo, ninguém nasce sabendo! Tudo o que você sabe hoje um dia já foi terreno desconhecido para você, concorda?

Eu posso te garantir, por experiência própria, que mergulhar no backend vai te empoderar muito como QA. Vai te tornar muito mais técnico e valorizado pelo seu time. Vai dar aquele up na autoestima :)

Empodere-se, QA! Você consegue!

Porém, como a vida nunca é fácil, esta será uma longa caminhada. E onde essa jornada começa? Entendendo por que iniciá-la é tão importante!

Mas por que é importante testar também no backend?

Testar apenas no frontend é mais fácil pelo fato de interagirmos com uma interface gráfica, assim como um usuário faria. É assim que muitos QAs iniciam na carreira.

Dessa forma, não entender muito de programação e não conhecer a arquitetura do sistema não é um impeditivo para testar nesta camada (embora esses conhecimentos sejam muito importantes, como veremos ao longo deste post).

Mas essa facilidade toda traz dois sérios problemas:

Problema 1: Redução da capacidade de investigação

Quando você encontra um comportamento inesperado na aplicação, a sua capacidade de investigação fica muito restrita, porque você não sabe como as coisas funcionam “por debaixo dos panos”. Dessa forma, você acaba sendo aquele QA que só reporta que algo estranho aconteceu, sem conseguir trazer informações mais detalhadas e precisas.

Ou seja, você é o QA que só traz o problema, sem conseguir propor uma solução ou trazer ideias para chegar a ela. Além disso, existe a chance de defeitos passarem despercebidos justamente pelo fato de o QA não entender completamente o funcionamento da aplicação.

Problema 2: Impossibilidade de antecipar testes

Enquanto o frontend não estiver pronto, não há o que testar se o QA não souber testar no backend. E se o frontend ficar pronto primeiro, o QA acaba tendo que esperar o backend também ficar pronto para conseguir testar, já que ele não entende como funciona o fluxo de informações dentro do aplicativo, inviabilizando a criação de mocks. Isso acarreta em descoberta tardia de defeitos e correria no final da sprint para corrigi-los.

Resumindo: testar também o backend possibilita antecipar a descoberta de defeitos e permite que a aplicação seja testada de forma mais profunda, porque o QA compreende como o backend funciona e como ele se comunica com o frontend, aumentando seu poder de descoberta de defeitos.

Além disso, em aplicações onde existe um backend que é consumido por mais de um frontend (por exemplo, existe uma interface web e uma mobile), a descoberta de defeitos já no backend evita a duplicidade de reports de defeitos que seriam detectados em cada um dos frontends, mas que a causa está no backend.

Ok, entendi que é importante. Mas por onde começo? O que eu preciso aprender?

Tempos atrás iniciei a minha jornada para me tornar capaz de testar também o backend. Posso dizer que tem sido um período de muito aprendizado e crescimento. Tenho estudado muito e aprendido muito com os devs do meu time e isso tem sido transformador para mim.

Isso me motivou a escrever este post para dar algumas dicas para quem está no início da jornada e se sente um pouco perdido. Aqui listo pontos que tem me ajudado muito nessa caminhada. Essas dicas são totalmente baseadas na minha experiência pessoal. Se você tem experiência em testes no backend e quiser contribuir com mais dicas nos comentários, fique à vontade.

Dica 1: Entenda como o backend funciona

É fundamental que você entenda de que forma o backend funciona para que você consiga planejar de forma adequada os seus testes. Se você não entende o que você está testando, a chance de deixar algo passar é grande.

Aqui o apoio dos devs do seu time é fundamental. Não tenha vergonha de perguntar uma, duas, três, quantas vezes for necessário. No início você terá muitas dúvidas, mas aos poucos tudo vai ficando mais claro.

Outro ponto importante aqui é se familiarizar com a linguagem de programação utilizada no backend. Não precisa ser um grande especialista, sabendo o básico já ajuda muito a conseguir ler e entender os códigos.

Quanto mais você entender como o software funciona por dentro, maior será o seu poder de descobrir defeitos.

Dica 2: Aprenda a usar as ferramentas de desenvolvedor de navegadores web

Os navegadores web costumam ter algumas ferramentas que auxiliam os desenvolvedores em várias tarefas, como inspeção de elementos da página e análise das requisições enviadas, por exemplo.

Eu uso muito as ferramentas de desenvolvedor do Firefox, principalmente para entender que requisições são enviadas quando eu clico em um determinado botão ou realizo alguma outra ação na interface web. Isso me ajuda a entender como o frontend conversa com o backend, além de auxiliar na investigação de problemas encontrados no software.

Segue um exemplo abaixo. Abri o navegador Firefox, acionei a tecla F12 (que abre as ferramentas do desenvolvedor), acessei o Google e comecei a digitar “automação de testes”.

Acessando a aba “Rede”, pude ver que várias requisições estavam sendo enviadas enquanto eu digitava! Ao clicar em uma delas, no quadro da direita são exibidos maiores detalhes, divididos em diversas abas. Muito legal, não é? Imagina a mão na roda que ferramentas desse tipo podem ser no seu dia a dia!

Exemplo de uso das ferramentas de desenvolvedor

Dica 3: Tenha o ambiente de desenvolvimento na sua máquina

Agora que você está se propondo a testar também o backend, não existirá a interface gráfica para você interagir, já que o objetivo é verificar se o backend funciona conforme o esperado, sem olhar para o frontend. Você terá que enviar requisições para a camada de serviços e verificar se a resposta está de acordo com o esperado.

Dessa forma, é muito importante que você tenha na sua máquina um ambiente idêntico ao que os devs usam. Isso também vai te ajudar na leitura dos códigos do backend.

Dica 4: Aprenda a usar ferramentas voltadas a testes no backend

Ao testar o backend, você enviará diretamente as requisições e irá verificar se a resposta recebida está de acordo com o esperado. Lembre-se: aqui não temos o frontend para interagir, nós é que estaremos mandando as requisições.

Então como mandar essas requisições e ver suas respostas se não temos a interface gráfica para fazer isso? Aí é que entram as ferramentas específicas para esse fim, como por exemplo o Insomnia e o Postman.

Abaixo mostro a interface do Postman, para exemplificar. À esquerda, são listadas as requisições que estão salvas. À direita, são mostradas as informações sobre a requisição (parte superior da tela) e sobre sua resposta (parte inferior da tela).

Interface do Postman

Conforme você for ganhando experiência e fluência nesta camada, será mais fácil automatizar testes no backend. Desta forma, também será necessário que você conheça ferramentas para este fim.

Dica 5: Nunca esqueça das técnicas de teste!

Muito provavelmente em seus testes no frontend, você usa alguma técnica de teste, correto? Seja partição de equivalência, tabela de decisão, teste exploratório, entre outras. No backend você também pode (e deve) usar! Elas serão fundamentais para que você encontre os bugs mais críticos e realize os seus testes de forma mais organizada e sistemática.

Depois de ler este post você deve estar pensando: mas é muita coisa para aprender! E é mesmo! Como eu disse no começo, será uma longa caminhada.

Mas essa jornada nos tornará QAs mais técnicos, pró-ativos e conscientes. Dê um passo de cada vez que você chega lá.

Isso eu te garanto :)

Colaboração e revisão: Vanessa Redes, Gabriel Santos, Bruno Pulis

--

--

Cristhiane Jacques
Revista eQAlizando (antiga Revista TSPI)

QA apaixonada por tecnologia e qualidade de software. Acredito no poder da colaboração para evolução contínua do produto e do time.