
Teste na arquitetura de Micros serviços
Hoje entramos no nosso quarto episódio de série de artigos mensais sobre teste de software e hoje vamos falar sobre o teste na arquitetura de micros serviços.
Antes de começar a explicar o que seria o teste no micro serviços, é necessário explicar esta arquitetura.

A arquitetura de micros serviços é uma forma de desenvolver um produto em pequenas partes, onde a responsabilidade de uma ação fica a cargo de um pequeno serviço. Cada um executa apenas o seu processo e caso seja necessária alguma informação de outro processo eles precisam se comunicar.
Como eu gosto muito de analogias, vamos pensar em uma conta bancária. A conta bancária precisa de exibir o saldo atual, efetuar pagamentos, transferência, exibir extrato, entre outros. No micro serviço cada funcionalidade é desenvolvida por um micro serviço, então teríamos um para o saldo da conta, outro para efetuar pagamento, outro para realizar transferência, outro para exibir o extrato e assim por diante.
Provavelmente você deve se perguntar, qual a vantagem disto? Afinal estas funcionalidades já existiam muito antes desta arquitetura de desenvolvimento. Está correto em partes. Sempre existiu estas funcionalidades, mas a pouco tempo atrás era necessário um desenvolvimento para cada objetivo. Para consultas pelo navegador, era necessário um desenvolvimento, para celular outro, para tablet outro. O que gerava desconforto em algumas situações pois a possibilidade de falha aumenta e a capacidade de teste em todos diminui.
Com o Micros serviço, todo a parte funcional passou para a arquitetura em questão, e apenas a casca ficou por conta dos produtos. E para garantir que as interfaces irão funcionar corretamente só precisamos garantir a que a saída dos micros serviços estão corretos. Em outras palavras, tanto celular, tablet, navegador ou qualquer outra forma de acessar os dados ficaram com a responsabilidade dos micros serviço e todo mundo utiliza eles, cada um com o seu layout.
E o teste, como seria o teste dos micros serviços? Bom sabendo que as regras de negócio não estão na camada de layout, podemos focar boa parte do teste onde estão estas regras. E para isto podemos utilizar de algumas técnicas.
São elas:
- Teste unitário
- Testes de Integração
- Testes de Componente
- Testes de Contrato
Estes testes são focados nas regras de negócio e o objetivo é encontrar o máximo de erros possíveis para corrigi-los. Para validar se o layout está correto devemos utilizar testes de interface que também está no artigo. Este teste já tem como objetivo validar se o funcionamento está conforme o esperado.
Quer saber um pouco mais sobre estes testes? Dá uma olhadinha no artigo “O que é teste e sua importância.
Para auxiliar nos testes existem algumas ferramentas que auxiliam na execução, como o JUnit, Hamcrest, Rest Assured, Rest Client, entre outros.
Pode-se dizer que o maior esforço dos testes estará nos micros serviços, já esta é a camada responsável por processar todos os dados e fornecer as informações necessárias e por isto pode ser uma atividade bastante complexa.
É necessário garantir que todos os processos executados no serviço em questão estão corretos, tanto pela integridade dos dados quanto a comunicação entre os outros.
Para exemplificar melhor a teoria, aguarde que na próxima semana vamos lançar um artigo com um excelente estudo de caso de teste executado em micros serviços do colaborador Raphael Ribeiro.
Grande abraço e até lá!
