IA generativa: oportunidades e desafios

Como equalizar a eficiência dos processos de desenvolvimento e teste dentro do ciclo de SDLC na era da IA Generativa.

A Inteligência Artificial (IA) emergiu como uma força transformadora em várias indústrias nos últimos anos, porém mais especificamente desde o lançamento da IA Generativa da Open AI(ChatGPT) em novembro de 2022, o qual revelou um salto de inovação, onde os usuários puderam experimentar os recursos e ter contato direto com a tecnologia.

Com a IA generativa temos o potencial de revolucionar os processos de desenvolvimento e testes de softwares, aumentando a eficiência do ciclo, gerando um aumento de produtividade.

Falando um pouco mais sobre, e que já é uma realidade no nosso contexto onde podemos observar como as ferramentas de IA generativa já estão suportando o trabalho dos desenvolvedores de software, ferramentas como Copilot(Microsoft) ou ChatGPT(OpenAI), geram um aumento significativo de eficiência no processo de desenvolvimento de software.

Estas ferramentas entram como apoio ao desenvolvedor garantindo o aumento de produtividade, habilitando o desenvolvedor a entregar resultados com mais velocidade, tornando o desenvolvedor um estrategista de implementação do código.

O desenvolvedor focará em boas práticas, padrões, decidirá pela melhores abordagens de implementação  através das sugestões que as ferramentas oferecem durante o processo de desenvolvimento, como por exemplo o Copilot da Microsoft. E não para por ai, você observará a redução dos esforços de análise e desenvolvimento de algoritmos, realizações de pesquisas sobre implementação de código de frameworks específicos, esclarecimento de dúvidas sobre a sintaxe da linguagem, explicação de trechos de código já implementados no sistema legado, ou até mesmo criando testes de unidades, como por exemplo utilizando ChatGPT.

Este aumento de produtividade na etapa de desenvolvimento ira evidenciar um possível gargalo no processo de testes dentro do ciclo de desenvolvimento do software, pois teremos de um lado o desenvolvedor entregando mais, e o profissional de QA ou analista de testes do outro lado utilizando métodos tradicionais de testes, como abordagens de teste manual e automatizado com ferramentas sem suporte da IA generativa, que é como a maioria dos projetos de desenvolvimento acontecem hoje.

Para reduzir o impacto de eficiência entre os processos de desenvolvimento e testes, os profissionais de QA, poderão fazer uso similar das ferramentas de IA generativa para criar casos de testes, ou até mesmo criar código para automação de testes, aumentando sua eficiência, porém analisando mais profundamente as atividades de testes, percebemos que não terá o mesmo desempenho que o desenvolvedor, pois ele ainda terá que atuar de forma manual em muitas frentes, como: estratégia de testes, análise e mitigação de risco, construção do plano de teste e seus sub artefatos como as especificações dos casos de teste, afim de garantir a governança e documentação dos processos de controle de qualidade da aplicação.

No processo de automação de testes o suporte da IA generativa, será similar ao do desenvolvedor, o engenheiro de testes ou automatizador de testes podem utilizar a ferramenta de IA generativa como um assistente, gerando código para alimentar o processo de desenvolvimento dos testes automatizados.

Mesmo que a geração de código seja suportado pela IA generativa, ainda temos alguns pontos de ineficiência:

  • Mapeamento de localizadores de elementos(xpath, css….) de forma manual
  • A automação de testes só poderá ser iniciada quando a aplicação estiver pronta
  • Manutenção e evolução dos testes automatizados
  • Produtividade padrão devido a necessidade de escrita precisa do código, mesmo com suporte da IA generativa.

Portanto, mesmo que o engenheiro de teste tenha o suporte de uma ferramenta de IA para ser seu assistente, ainda assim teremos muitos processos que não apresentaram vantagens utilizando a mesma abordagem do desenvolvedor para o aumento de eficiência.

É nesse contexto que o time de especialistas da unidade de engenharia de qualidade de software tem trabalhado no desenvolvimento de uma solução única para solucionar esses problemas citados e aumentar a eficiência dos processos de automação de testes.

O objetivo da solução é prover testes automatizados através do uso de linguagem natural, a IA generativa será responsável por executar as especificações de ações e validações implementadas nos testes.

Essa abordagem apresenta muitas vantagens como:

  • Adaptabilidade
  • Fácil implementação
  • Resistência a modificações de UI(User Interface)
  • Aumenta a estabilidade dos resultados dos testes
  • Minimização da manutenção de código

Nossos estudos internos evidenciaram alguns benefícios quantitativos de eficiência em comparação com as técnicas de automação de testes tradicionais, como:

  • Aumento de 40% na produtividade do desenvolvimento de testes automatizados
  • Redução aproximada de 60% de linhas de código

Outras características qualitativas evidenciadas:

  • Elimina o uso de locators, as ações são determinadas pelo assistente de IA em tempo de execução.
  • Permite a criação rápida de testes usando instruções simples em texto para criar ações e validações automatizadas.
  • Torna mais simples cenários complexos, concentrando-se nos resultados esperados dos testes.
  • Possibilita a criação de testes simultaneamente ou antes do desenvolvimento da funcionalidade utilizando somente os protótipos de tela da aplicação.
  • A utilização da linguagem natural reduz a complexidade e documenta o teste criado.

Esta solução nos coloca no caminho das novas gerações de ferramentas de automação de testes, potencializadas pela IA generativa.

Portanto esta abordagem poderá equiparar ou minimizar a lacuna de eficiência entre as atividades de desenvolvimento e teste, ambos poderão ter sua eficiência potencializada através de recursos da IA generativa com abordagens diferentes dentro do ciclo de desenvolvimento de software.

Na minha visão, haverá um aumento de soluções integradas com IA generativa(como a solução comentada acima), que possibilitam resultados incríveis, aumentando a capacidade de automação dos processos e direcionando o profissional para uma visão mais estratégica com foco em resultados que contribuam para uma melhor eficiência e produtividade nas  organizações.

Eu acredito que os profissionais não serão substituídos nessa nova onda de evolução, geralmente debatidas pelos profissionais durante aquele momento do café com assuntos descontraídos, estaremos mais focado no novo, buscando novas soluções e estratégias para atender as necessidades dos negócios de nossos clientes, precisaremos como sempre, buscar conhecimento e trabalhar de forma colaborativa para inovar com novas abordagens para testes de software, criando um novo caminho a ser trilhado e estar hoje criando novas soluções que contribuam para essa evolução é além de gratificante, um grande evidência de inovação em diferentes aspectos que a GFT vem impulsionando com IA e IA Generativa para que a transformação digital ganhe cada vez mais um aspecto de eficiência de recursos e ajude a criar novos modelos de trabalhos com tecnologia..

As possibilidades e novas abordagens estão somente começando a surgir e a nossa intenção é trazer essa eficiência para nossos processos e assim poder levar novas soluções ao mercado e de fato que sejam aplicáveis para resolverem problemas e dilemas que o mercado enfrenta na longa jornada de transformação digital com qualidade.