De tempos em tempos, todo software desenvolvido necessita se atualizar: adicionando melhorias e ajustando falhas. E com o módulo Gerencial da SMAR não é diferente. Percebeu-se a oportunidade de utilizar o módulo Gerencial em sistemas operacionais com kernel Linux e de agregar tecnologias mais atuais ao processamento dos dados (back-end) deste módulo, trazendo maior velocidade e ganho de performance.
É uma boa prática no desenvolvimento de software que as novas versões de um sistema recém-lançado passem pelo teste de retrocompatibilidade. O teste de retrocompatibilidade visa garantir que a aplicação funcione corretamente para usuários que possuem diferentes versões do sistema, mesmo havendo alterações no código desta aplicação.
Aplicando em nosso contexto, um dos modos de verificarmos a retrocompatibilidade do módulo Gerencial é através de sua API (Application Programming Interface, ou Interface de Programação de Aplicação), analisando o seu comportamento entre as suas diferentes versões. Para interagirmos com os serviços oferecidos por uma API, os métodos HTTP (Hypertext Transfer Protocol, ou Protocolo de Transferência de Hipertexto) mais utilizados são:
As interações são denominadas requisições, sendo que cada método é um tipo diferente de ação que realizamos na API. Para cada tipo de requisição esperamos um comportamento diferente por parte da API e, para compreendermos se tudo ocorreu como esperado, existem famílias de respostas padronizadas de código de status, seguindo-se o seguinte padrão:
A conversão do módulo Gerencial foi realizada no setor P&D eo time Quebec, foi o responsável por testar e garantir a qualidade da API do novo Gerencial. Foram então definimos alguns pontos importantes:
Após este planejamento, partiu-se para a execução dos testes da API verificando determinados aspectos estruturais e de conteúdo de cada endpoint, analisando se o novo Gerencial estava retrocompatível com o antigo.
Como alguns requisitos foram alterados devido ao tempo transcorrido entre a conversão feita até a realização efetiva dos testes no Gerencial, foi necessária a revisão do código pelos desenvolvedores do time antes da passagem de cada User Story para os analistas de qualidade.
Utilizando principalmente a ferramenta Postman, avaliamos se mesmo reescrevendo o código da API com uma nova tecnologia, seriam mantidas as entradas e saídas do antigo. A seguir temos um detalhamento sobre os testes efetuados no Postman para cada um dos endpoints do novo Gerencial:
A reta final dos testes contou com o auxílio do time Echo. Tendo todos os processos de testes consolidados e validados pelo time Quebec, o apoio de outra equipe pôde ser feito de forma veloz e com enorme entrega de valor.
Após a finalização dos testes de conversão dos 359 endpoints do Gerencial, divididos em 93 User Stories, podemos garantir a qualidade na entrega de um módulo renovado e com maior eficiência, além da certeza de que este modelo de trabalho pode ser facilmente replicado em futuros projetos da SMAR.
Referências bibliográficas: