A Engenharia de Software aborda diversas áreas nas quais compõe o processo de Desenvolvimento de…
Antecipação de Testes Automatizados para contextos de API
Primeiramente, o que são Testes Automatizados?
Para simplificar o que é um teste automatizado, pensamos no seguinte contexto:
“Imagine que toda semana o seu time libera uma nova versão do sistema, com todos os projetos já integrados. Porém, todas as vezes que uma nova versão é liberada, testes exploratórios precisam ser executados de forma manual a garantir que inconformidades não estejam acontecendo em um ambiente de produção. Visto que este processo precisa ser validado semanalmente e repetidamente, ou seja, todas as vezes a mesma coisa, o mesmo teste, o mesmo processo e a mesma técnica. O que gera um alto tempo demandado para garantir que a regressão e a integração das funcionalidades não tenham sofrido alterações indevidas, antes desta versão ser liberada para clientes em específicos.”
Diante deste cenário apresentado, podemos notar que uma demanda muito grande e exaustiva de testes repetitivos precisa ser executada semanalmente, o que gera tempo e custo. Todo este processo pode ser evitado com a implementação dos testes automatizados, que abordam um conjunto de ações predefinidas nas quais geram bons resultados e evitam que este processo de repetições e exaustividade em testar uma funcionalidade sejam exonerados. O teste automatizado possui diferentes abordagens, contextos e especificidades. Sendo elas:
- Demandas por Front-end.
- Demandas por Back-end.
- Na qual podemos exemplificar os testes de API.
- Demandas por Performance.
Dentre estes contextos, podemos abordar diversos outros. Porém o que nos traz a falar de automação de testes no post de hoje é o Teste de API e como podemos antecipar os testes Automatizados de uma API.
Primeiramente, precisamos entender a estrutura básica de uma API:
Como podemos observar, temos os conhecidos EndPoints cujo seus serviços fazem a comunicação entre aplicações. EndPoints possuem métodos HTTP que são conhecidos como PUT, POST, PATCH, DELETE e GET. Cada método possui sua determinada ação, uns utilizam de Json específicos em seu corpo bem como possuem retornos específicos para determinadas chamadas.
Quando falamos em testes de API, devemos sempre levar em consideração todos os métodos nos quais precisamos testar e como testá-los, utilizando de boas práticas e de técnicas específicas para o teste em questão, pois para cada cenário a ser executado dentro uma rotina de testes precisamos determinar uma técnica na qual mais se aproxima do resultado da qualidade esperada.
Estrategicamente podemos pensar em duas maneiras de testar uma API:
- Testes executados de forma manual, através de algumas ferramentas já prontas, como POSTMAN (Ferramenta de teste automatizado).
- Testes executados de forma automatizada, utilizando frameworks, bibliotecas e linguagens de programação específicas (Java Script, Python, C#, etc), para os projetos de testes a serem desenvolvidos.
Quando executado de forma manual:
Quando os testes são executados de forma manual, geram todos os problemas relatados acima, porém estes problemas afetam diretamente outros pontos:
- Demora na entrega do teste, pois sempre terá uma dependência por parte do desenvolvimento;
- Se um problema for encontrado e este for impeditivo, só prosseguimos com o teste após as correções, e perante este fato devemos repetir novamente todo o processo de teste;
- Quanto maior a alteração ou implementação realizada, mais testes precisam ser executados e a cobertura precisa ser a altura do planejado, porém nem sempre todos os pontos poderão ser validados, ou seja, nem todos os EndPoints são devidamente validados como o esperado;
- Não conseguimos garantir a regressão do processo;
- Não conseguimos garantir a integração dos componentes;
- Só conseguimos ver a estrutura da implementação realizada quando vamos testar. Ou seja, não participamos de todo o processo.
Quando executado de forma automatizada
Como podemos observar no mapa mental acima, são inúmeros os benefícios que temos ao adotar a técnica de automatizar os processos de testes nos quais são importantes para o cenário.
Vale sempre lembrar que cobertura de testes nunca é demais, porém testes desnecessários se tornam descartáveis dependendo da abordagem do teste que você irá utilizar.
Diante de todo este contexto, chegamos a seguinte dúvida:
“Por que devemos antecipar os nossos testes automatizados de API?”
Os benefícios da antecipação do teste automatizado em uma API
Conclusão:
A antecipação dos testes automatizados, seja de API ou dos diferentes outros contextos estabelecidos anteriormente, favorece uma melhor qualidade nas entregas, proporcionando o fator reduzido de Tempo X Custo. O que gera valor tanto para quem desenvolve, quanto para quem recebe este produto.
Sobre as autoras
Taynara Luana é formada em Análise e Desenvolvimento de Sistemas especialista em Engenharia de Software e Mestranda em Inovações Tecnológicas. Faz parte da equipe Anymarket, atuando como Analista de Testes.
Larissa Ceballos é formada em Análise e Desenvolvimento de Sistemas, pós graduanda em Gestão de Projetos e MBA sobre TrendsInnovation. Faz parte da equipe time Anymarket atuando como Analista de Teste.
Comments (0)