

A IA generativa tem o potencial de ter um impacto positivo no desenvolvimento de software program e na produtividade, mas com esse aumento de produtividade vem uma pressão maior sobre os testes de software program.
Se você consegue gerar cinco ou até dez vezes mais código do que antes, isso também significa cinco a dez vezes mais código que precisa ser testado.
“Muitos CFOs agora estão olhando para US$ 30 por mês por desenvolvedor para ir buscar um GitHub Copilot ou produto comparable”, disse Jim Scheibmeir, analista diretor sênior da Gartner. “E eu sinto que nós meio que esquecemos que frequentemente um gargalo no desenvolvimento de software program não é a escrita de código, mas o teste de código. Nós vamos tornar os desenvolvedores muito mais produtivos, o que inclui torná-los mais produtivos na escrita de defeitos.”
Ao contrário das ferramentas de desenvolvimento assistidas por IA, onde os desenvolvedores querem escrever mais código, o objetivo com as ferramentas de teste assistidas por IA é permitir menos testes. Por exemplo, de acordo com Scheibmeir, coisas como ferramentas de análise de impacto de teste podem criar uma estratégia de teste que seja adequadamente dimensionada para a mudança de código actual que está sendo enviada, de modo que apenas os testes que precisam ser executados sejam executados, em vez de apenas executar todos os testes que você tem para cada mudança.
“Essas ferramentas fornecem foco para os testadores”, ele disse. “E é muito difícil dar foco aos testadores hoje em dia. Há esse sentimento de que precisamos testar todas as coisas e, ainda assim, estamos sempre com pouco tempo.”
Arthur Hicken, evangelista chefe da Parasoft, concorda que já chegamos a um ponto em que os conjuntos de testes estão levando horas, ou até mesmo dias, para serem concluídos, e usar IA generativa para ajudar a otimizar a cobertura de testes pode ajudar com isso. “Você pode montar com IA hoje em dia uma estimativa muito boa do que precisa fazer para validar uma mudança”, disse ele.
IA generativa auxiliando na geração de testes, gerenciamento e muito mais
Além de ajudar os testadores a testar menos, a IA está se infiltrando em outros aspectos do processo para torná-lo mais eficiente de ponta a ponta. Por exemplo, Madhup Mishra, SVP na SmartBear, diz que a IA generativa agora pode ser usada para criar os próprios testes. “O testador pode realmente expressar seu teste de software program em inglês simples, e a IA pode realmente criar o teste automatizado em seu nome”, disse ele.
“Nos bastidores, a GenAI deve entender o contexto do teste, entender o que está acontecendo na tela e pode realmente criar um teste recomendado que realmente resolva o problema do usuário sem que ele exact fazer muito mais”, disse ele.
Scheibmeir explicou que a ideia de facilitar a geração de testes já havia sido explorada por ferramentas de baixo código e sem código com suas interfaces intuitivas de arrastar e soltar, e a IA generativa agora está levando isso para o próximo nível.
E de acordo com Eli Lopian, CEO da Typemock, a IA é realmente boa em explorar casos extremos e pode criar cenários que um desenvolvedor pode ter perdido. Ele acredita que ela pode entender interações complexas na base de código que o testador pode não ver, o que pode resultar em melhor cobertura.
A IA também pode ajudar na geração de dados de teste, como nomes de usuário, endereços, códigos PIN, números de telefone, and so on. De acordo com Mishra, gerar dados de teste pode ser um processo longo e demorado porque os testadores precisam pensar em todas as variações possíveis, como os caracteres que podem aparecer em um nome ou os códigos de país que vêm antes dos números de telefone.
“A IA generativa pode criar todas as diferentes combinações de dados de teste que você pode usar para testar todos os casos extremos”, explicou Mishra.
Outra oportunidade potencial é usar IA no gerenciamento de testes. As empresas geralmente têm um repositório de todos os diferentes testes que criaram, e a IA pode classificar tudo isso e fazer sugestões sobre qual usar. Isso permite que os testadores utilizem o que já criaram e liberem mais tempo para criar novos testes de que precisam, explicou Mishra.
Hicken, da Parasoft, acrescentou que a IA poderia classificar testes mais antigos e validar se eles ainda funcionariam. Por exemplo, se um teste está capturando a knowledge de hoje, então esse teste não funcionará amanhã.
A IA pode tornar os testes mais acessíveis, mas não eliminará a necessidade deles
Juntos, todos esses aprimoramentos de IA estão ajudando as organizações a assumirem mais responsabilidade pela qualidade do software program, onde no passado elas terceirizavam os testes, disse Scheibmeir.
Semelhante ao movimento de desenvolvedores cidadãos, os recursos de teste que estão disponíveis agora tornam mais fácil para qualquer pessoa executar um teste, de modo que não são necessárias habilidades tão especializadas como antes.
“O entusiasmo e as capacidades que a IA generativa está oferecendo trouxeram algumas dessas organizações de volta à mesa de discussão sobre se deveríamos possuir mais desses testes, mais dessa automação de testes”, disse Scheibmeir.
No entanto, ainda é importante ter em mente que a IA tem suas desvantagens. De acordo com Lopian, uma das maiores desvantagens é que a IA não entende a emoção que o software program supostamente lhe dá.
“A IA vai achar difícil entender quando você está testando algo e quer ver se o botão está no lugar certo para que o fluxo seja bom? Não acho que a IA seria tão boa quanto os humanos nesse tipo de área”, disse ele.
Também é importante lembrar que a IA não substituirá os testadores, e os testadores ainda precisarão ficar de olho nela por enquanto para garantir que toda a cobertura certa e os testes certos estejam acontecendo. Lopian comparou isso a um “estagiário inteligente” que você ainda precisa ficar de olho para ter certeza de que ele está fazendo as coisas corretamente.
O impacto da IA nas habilidades de desenvolvimento levará a necessidade de qualidade a mudar ainda mais para a esquerda
Outra consideração importante é o potencial de que, se os desenvolvedores dependerem muito da IA generativa, suas habilidades de desenvolvimento podem atrofiar, alertou Mishra.
“Quantas vezes você pegou um Uber e percebeu que o motorista do Uber não sabe nada sobre para onde você está indo, ele está apenas seguindo cegamente a direção do GPS, certo? Então isso vai acontecer com o desenvolvimento, e o QA precisa meio que se atualizar para garantir que a qualidade esteja incorporada desde a fase de design, até como o código do aplicativo se comportará na produção e observá-lo”, disse ele.
Hicken concorda, comparando isso ao fato de que ninguém mais memoriza números de telefone porque nossos telefones podem armazenar tudo.
“Se eu fosse um jovem querendo ter uma boa carreira a longo prazo, eu teria cuidado para não me apoiar muito nessa muleta”, disse ele.
Isso não quer dizer que os desenvolvedores esquecerão completamente como fazer seu trabalho e que em 20, 30 anos ninguém saberá como criar software program sem a ajuda da IA, mas sim que surgirá uma nova classe de “desenvolvedores casuais”, que serão diferentes dos desenvolvedores cidadãos.
Hicken acredita que isso levará a uma comunidade de desenvolvedores mais estratificada, onde você terá os “codificadores OG”, que sabem como o computador funciona e como falar com ele, e também desenvolvedores casuais que sabem como fazer perguntas ao computador — engenheiros rápidos.
“Acho que teremos que definir melhor as pessoas que estão criando e gerenciando nosso software program, com funções e títulos que nos ajudem a entender do que elas são capazes”, ele disse. “Porque se você disser apenas engenheiro de software program, essa pessoa precisa realmente entender o computador. E se você disser desenvolvedor, pode ser que ela não exact entender o computador.”
Você pode gostar…
A evolução e o futuro dos testes baseados em IA: garantindo a qualidade e abordando o preconceito