Já dizia a nossa mítica Lena d’Água:
«Olha o robot
É p’ró menino e p’rá menina (olha)…
Trabalha muito e gasta pouco (olha)…
‘Tá pronto a ser programado (olha)…»
E realmente, nos dias de hoje, temos inúmeros robots à nossa disposição, sendo alguns deles simples peças de software (se calhar não tão simples assim).
É o caso das ferramentas de Automação de Testes de Software que, apesar de todo o avanço tecnológico dos últimos anos, sinto não estarem ainda a ser usadas no seu completo potencial.
A Automação de Testes, assim como muitas outras tarefas e processos de uma empresa, é uma das componentes através da qual podemos beneficiar bastante da utilização de robots, que não são mais do que scripts e software que permitem realizar uma tarefa de forma repetida, com confiança e com muito maior rapidez, em comparação a uma interação manual. Ao automatizar as tarefas de teste, mesmo que em parte, estaremos também a economizar custos e esforço a longo prazo, podendo alocar os recursos humanos a outras tarefas mais interessantes.
Esta automação é também um elemento essencial nas práticas e processos de DevOps, onde os testes se poderão tornar um grande bottleneck do processo. É, por isso, fundamental que as equipas de desenvolvimento de software estejam sempre atentas às oportunidades de automação, identificando os pontos-chave onde será possível substituir o trabalho manual por processos automáticos. Para isso, é também essencial que tenham conhecimento, mesmo que superficial, do que existe no mercado a este nível.
As ferramentas mais populares de automação, tal como Robot Framework, Katalon, TestComplete, UFT One, Cypress, apenas para citar algumas, continuam a evoluir, acrescentando novas funcionalidades e até tirando partido das inovações ao nível da Inteligência Artificial. E a verdade é que, hoje em dia, temos à disposição ferramentas para todos os gostos e para todas as carteiras, tanto de projetos open-source, como de fornecedores de renome na área dos testes, com uma oferta de aplicações proprietárias muito completa.
Por esse motivo, muitas vezes a dificuldade maior está na escolha da ferramenta certa para o trabalho em questão, e essa decisão vai depender de vários fatores, muito além do preço, sendo um dos principais a facilidade de utilização da ferramenta e a curva de aprendizagem que a equipa irá necessitar para começar a produzir scripts e testes úteis.
Efetivamente, a aplicação de Machine Learning e Inteligência Artificial na abordagem aos testes de software já não é nova e muitos têm experimentado esse caminho ao longo dos anos. Contudo, os mais recentes avanços em IA, com uma enorme quantidade de dados igualmente disponível para a aprendizagem, vêm trazer também novas excelentes oportunidades na área dos Testes, ainda muito pouco exploradas. À medida que os algoritmos vão sendo desenvolvidos e melhorados, teremos aplicações capazes de criar casos de teste, scripts, dados para realização de testes, gerir os defeitos encontrados, e criar relatórios sumarizando todo o processo.
Os modelos preditivos podem também ajudar a tomar decisões mais acertadas e fundamentadas, sobre o que deve ser testado e quando pode ser testado, assim como o esforço envolvido.
Há ainda um grande caminho a percorrer, apesar de muitas empresas estarem já a apostar na Automação de Testes com ótimos resultados. Por isso, na próxima release da sua aplicação, pense se não será possível colocar o robot a trabalhar muito e a gastar pouco.
Hugo Apolónio é Senior Developer da Inetum Portugal