A IA Vai Substituir os Testadores de Software?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

A IA vai transformar os testes de software, mas não tornará os testadores obsoletos (embora possa melhorar as suas capacidades). Como pode a IA automatizar tarefas repetitivas, definir prioridades nos testes e ajudar os testadores a tornar os processos de teste mais eficientes?

Estará a inteligência artificial a tornar os testadores de software obsoletos? Provavelmente não. É mais provável que a IA torne os programadores de software obsoletos. Mas não há dúvida de que a IA implica uma grande mudança nos testes de software. Esta publicação analisa algumas das mudanças que provavelmente veremos muito em breve.

Há muito tempo, a automatização de testes substituiu os testadores na execução do trabalho dos robôs, ou seja, na execução de testes concebidos por outra pessoa. Os testadores não desapareceram. O seu tempo ficou disponível para conceberem mais e melhores testes e, obviamente, para os automatizarem. Mais tarde, os métodos ágeis e o DevOps deveriam tornar o testador redundante, uma vez que os programadores testariam o seu código enquanto o desenvolviam. Acontece que a maioria dos programadores preferia escrever código a testá-lo. Também aprendemos que é necessário testar todo o processo empresarial através das fronteiras entre aplicações. Os testadores de software alargaram o seu âmbito aos testes exploratórios e aos testes de ponta a ponta.

Como irá a IA transformar os testes de software

A IA irá transformar o papel do testador ao tornar-se uma excelente ajuda em atividades que os testadores não desempenham muito bem. É provável que a IA molde todo o processo de testes, em vez de apenas melhorar tarefas individuais.

É característico do trabalho de um testador que as mesmas coisas sejam feitas várias vezes, com pouca variação e muita espera. Os testadores esperam por:

  • uma nova versão para testar.
  • a conclusão das execuções de testes automatizados.
  • uma correção para um erro que impede a continuação dos testes.
  • E assim por diante...

Os testadores também realizam tarefas que exigem muita atenção aos detalhes e podem não ser muito motivadoras, como analisar os resultados das execuções de testes automatizados, manter testes automatizados que falharam devido a alterações na aplicação ou calcular e comunicar o estado dos testes. Cada minuto que passam nestas tarefas importantes representa um minuto durante o qual outra pessoa está à espera dos resultados dos testes.

Testador de software humano a jogar xadrez com um testador de software robótico de IA
Esta imagem foi criada com um simples pedido utilizando uma ferramenta de IA

A maior parte do trabalho nos testes consiste na execução de testes. Esta é, em grande medida, automatizada, mas continua também a consumir esforço humano; e esse esforço humano está a atrasar todo o ciclo de testes. Continuamos a precisar de pessoas para automatizar os testes que serão executados por um robô, para manter esses testes quando a aplicação muda e para analisar os resultados dos testes. Já existem ferramentas de testes com IA que podem selecionar e ordenar testes com base na probabilidade de detetarem erros, corrigir automaticamente testes danificados ou preencher previamente relatórios de defeitos. 

O impacto imediato da IA nos profissionais de garantia da qualidade

Na próxima vaga de criação de testes automatizados, veremos ferramentas que geram testes diretamente a partir da descrição de um caso de utilização ou, de forma ainda mais direta, observando um testador humano a explorar a aplicação. Este é um grande passo dos testes automatizados para os testes autónomos. Porém, talvez ainda não estejamos exatamente nesse ponto. A maioria das aplicações e dos processos empresariais são proprietários, e os dados necessários para treinar a IA estão dispersos por diferentes ferramentas de testes de software. Por isso, é provável que vejamos primeiro testes supervisionados por humanos, em vez de testes totalmente autónomos.

A maioria das equipas de software tem poucos testes, e não demasiados. Com a utilização da IA, é provável que o volume de ativos de teste aumente. Embora a execução de testes automatizados seja, na prática, gratuita, a rapidez com que se obtêm os resultados dos testes continua a ser importante. Por isso, seria benéfico organizar as execuções de regressão de modo que os testes com maior probabilidade de detetar erros fossem executados primeiro. Se a IA compreender suficientemente bem os dados do ciclo de vida, poderá analisar as alterações ao código e os resultados de testes anteriores, determinar como organizar os testes e, assim, acelerar o ciclo de retorno.

Se a IA for capaz de selecionar testes com base na probabilidade de detetarem erros, também deverá ser capaz de prever onde é provável que os erros sejam encontrados. Um testador humano também poderá beneficiar desta informação, concentrando os esforços de testes exploratórios manuais nessas funcionalidades.

Para muitas pessoas, a IA é sinónimo das capacidades de geração de linguagem natural demonstradas pelo ChatGPT. Essas capacidades também têm o seu lugar nos testes. Se a IA sabe criar um caso de teste, também sabe descrever a execução do teste num relatório de defeito. É provável que um relatório de defeito gerado por IA seja mais fácil de compreender do que um relatório escrito à pressa por uma pessoa enquanto se apressa a verificar o caso de teste seguinte.

Para além dos relatórios de defeitos, os testes produzem muitos dados quantitativos sobre a qualidade do software e até sobre o processo de criação do software. O problema é que as pessoas ligadas aos testes, que compreendem os dados, não se preocupam em explicá-los àqueles que os deveriam compreender, e aqueles que os deveriam compreender podem não se preocupar em ouvir. A IA pode prestar um grande serviço a ambas as partes e aos seus líderes, transformando as estatísticas dos testes em perceções, conclusões e recomendações expressas em linguagem natural. 

Irá a IA substituir os profissionais de garantia da qualidade?

É tentador imaginar o que será mais fácil para a IA substituir: um testador ou um programador. É mais fácil gerar um teste do que gerar código. Por outro lado, gerar testes significativos exige mais imaginação. Afinal, a programação transforma um requisito em código que faz a aplicação funcionar, enquanto os testes devem transformar um requisito num ou mais testes que devem fazer a aplicação falhar. 

Em grande escala, porém, a conceção de testes é mais simples do que a programação. Criar um grande sistema de informação é muito mais desafiante do que escrever código para uma única função. Conceber testes para um grande sistema de informação não é muito mais difícil do que conceber testes para uma funcionalidade individual. Dá apenas mais trabalho. A configuração dos testes pode ser muito mais desafiante, no entanto. 

Por exemplo, configurar e verificar um teste que cria uma encomenda numa aplicação móvel, que é processada no Salesforce e depois encaminhada para o cumprimento no SAP, é uma tarefa muito complexa — embora o próprio cenário de teste seja bastante simples. Precisaremos tanto de humanos assistidos por IA como de IA assistida por humanos.

Mesmo estes pequenos exemplos provam que as coisas serão muito diferentes já num futuro próximo. A IA irá melhorar a velocidade e a produtividade do desenvolvimento de software, mas ainda não será capaz de criar software e garantir a sua qualidade de forma autónoma.

Se eu fosse hoje um testador de software a tempo inteiro, não me preocuparia com a possibilidade de a IA me tirar o emprego. Preocupar-me-ia com a forma como posso testar a IA.

Tem interesse em obter mais informações sobre IA e testes de software? Então subscreva a newsletter do CTO Club para conhecer todas as tendências mais recentes.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like