

A IA está transformando o cenário do software program, com muitas organizações integrando fluxos de trabalho orientados por IA diretamente em seus aplicativos ou expondo sua funcionalidade a recursos externos, Processos alimentados por IA. Esta evolução traz desafios novos e únicos para testes automatizados. Grandes modelos de linguagem (LLMs), por exemplo, produzem inerentemente resultados não determinísticos, o que complica os métodos de teste tradicionais que dependem de resultados previsíveis que correspondem a expectativas específicas. A verificação repetida de sistemas baseados em LLM leva a chamadas repetidas para esses modelos – e se o LLM for fornecido por terceiros, os custos podem aumentar rapidamente. Além disso, novos protocolos como MCP e Agent2Agent (A2A) estão sendo adotados, permitindo que os LLMs obtenham um contexto mais rico e executem ações, enquanto os sistemas agenticos podem coordenar entre diferentes agentes no ambiente. Que estratégias as equipes podem adotar para garantir testes confiáveis e eficazes desses novos aplicativos infundidos com IA diante de tamanha complexidade e imprevisibilidade?
Exemplos do mundo actual e desafios principais
Deixe-me compartilhar alguns exemplos reais de nosso trabalho na Parasoft que destacam os desafios de testar aplicativos com infusão de IA. Por exemplo, integramos um AI Assistant em Teste SOA e Virtualizarpermitindo que os usuários façam perguntas sobre a funcionalidade do produto ou criem cenários de teste e serviços virtuais usando linguagem pure. O AI Assistant depende de grandes modelos de linguagem externos (LLMs) acessados por meio de APIs REST compatíveis com OpenAI para gerar respostas e construir cenários, tudo dentro de uma interface baseada em chat que oferece suporte a instruções de acompanhamento dos usuários.
Ao desenvolver testes automatizados para esse recurso, encontramos um desafio significativo: o resultado do LLM period não determinístico. As respostas apresentadas na interface do chat variavam a cada vez, mesmo quando o significado subjacente period semelhante. Por exemplo, quando questionado sobre como usar um recurso específico do produto, o Assistente de IA fornecia respostas ligeiramente diferentes em cada ocasião, tornando impraticável a verificação da correspondência exata em testes automatizados.
Outro exemplo é o recurso CVE Match em Parasoft DTPque ajuda os usuários a priorizar quais violações de análise estática devem ser abordadas, comparando o código com as violações relatadas com o código com vulnerabilidades CVE conhecidas. Esta funcionalidade usa embeddings LLM para pontuar similaridade. O teste automatizado para esse recurso pode se tornar caro ao usar um LLM externo de terceiros, pois cada execução de teste aciona chamadas repetidas para o endpoint de incorporação.
Projetando testes automatizados para aplicativos baseados em LLM
Esses desafios podem ser enfrentados criando dois tipos distintos de cenários de teste:
- Cenários de teste focados na lógica principal do aplicativo
Os principais cenários de teste devem se concentrar na funcionalidade e no comportamento principais do aplicativo, em vez de depender da saída imprevisível dos LLMs. Virtualização de serviços é inestimável neste contexto. Simulações de serviço podem ser criadas para simular o comportamento do LLM, permitindo que o aplicativo se conecte ao serviço simulado LLM em vez do modelo ativo. Essas simulações podem ser configuradas com uma variedade de respostas esperadas para diferentes solicitações, garantindo que as execuções de teste permaneçam estáveis e repetíveis, mesmo quando uma ampla variedade de cenários é coberta.
No entanto, um novo desafio surge com esta abordagem: manter simulações de LLM pode tornar-se trabalhoso à medida que os cenários de aplicação e teste evoluem. Por exemplo, os prompts enviados ao LLM podem mudar quando o aplicativo é atualizado ou novos prompts podem precisar ser manipulados para cenários de teste adicionais. Um proxy de modo de aprendizagem de virtualização de serviço oferece uma solução eficaz. Esse proxy roteia solicitações para o serviço simulado ou para o LLM ativo, dependendo de ter encontrado a solicitação anteriormente. As solicitações conhecidas são enviadas diretamente para o serviço simulado, evitando chamadas LLM desnecessárias. Novas solicitações são encaminhadas ao LLM e a saída resultante é capturada e atualizada no serviço simulado para uso futuro. As equipes de desenvolvimento da Parasoft têm usado essa estratégia para estabilizar testes, criando respostas simuladas estáveis, mantendo as simulações atualizadas à medida que o aplicativo muda ou novos cenários de teste são adicionados e reduzindo o uso do LLM e os custos associados.
- Testes ponta a ponta que incluem o LLM
Embora os serviços simulados sejam valiosos para isolar a lógica de negócios, alcançar complete confiança em aplicativos infundidos com IA requer testes ponta a ponta que interajam com o LLM actual. O principal desafio aqui é a natureza não determinística dos resultados do LLM. Para resolver isso, as equipes podem usar um “juiz LLM” – uma ferramenta de teste baseada em LLM que avalia se a saída do aplicativo corresponde semanticamente ao resultado esperado. Essa abordagem envolve fornecer ao LLM que está realizando o teste tanto o resultado quanto uma descrição em linguagem pure do comportamento esperado, permitindo-lhe determinar se o conteúdo está correto, mesmo quando o texto varia. Os cenários de validação podem implementar isso enviando prompts para um LLM por meio de sua API REST ou usando ferramentas de teste especializadas, como o AI Assertor da SOAtest.
Teste de ponta a ponta Os cenários também enfrentam dificuldades ao extrair dados de resultados não determinísticos para uso em etapas de teste subsequentes. Extratores tradicionais, como XPath ou localizadores baseados em atributos, podem ter dificuldades com a alteração das estruturas de saída. Os LLMs também podem ser usados em cenários de teste: enviando prompts para uma API REST do LLM ou usando ferramentas baseadas em UI, como o AI Knowledge Financial institution da SOAtest, os cenários de teste podem identificar e armazenar com segurança os valores corretos, mesmo quando as saídas mudam.
Testes no cenário de IA em evolução: MCP e Agent2Agent
À medida que a IA evolui, novos protocolos como o Mannequin Context Protocol (MCP) estão surgindo. O MCP permite que os aplicativos forneçam dados e funcionalidades adicionais para grandes modelos de linguagem (LLMs), suportando fluxos de trabalho mais ricos, sejam eles orientados pelo usuário por meio de interfaces como GitHub Copilot ou autônomos por meio de agentes de IA. Os aplicativos podem oferecer ferramentas MCP para fluxos de trabalho externos para aproveitar ou contar com sistemas baseados em LLM que exigem ferramentas MCP. Os servidores MCP funcionam como APIs, aceitando argumentos e retornando resultados, e devem ser validados para garantir confiabilidade. Ferramentas de teste automatizadas, como o Parasoft SOAtest, ajudam a verificar os servidores MCP à medida que os aplicativos evoluem.
Quando os aplicativos e os cenários de teste dependem de servidores MCP externos, esses servidores podem estar indisponíveis, em desenvolvimento ou ter acesso caro. A virtualização de serviços é valiosa para simular servidores MCP, fornecendo ambientes de teste confiáveis e econômicos. Ferramentas como o Parasoft Virtualize oferecem suporte à criação dessas simulações, permitindo testes de fluxos de trabalho baseados em LLM que dependem de servidores MCP externos.
Para equipes que criam agentes de IA que interagem com outros agentes, o protocolo Agent2Agent (A2A) oferece uma maneira padronizada para os agentes se comunicarem e colaborarem. A2A suporta múltiplas ligações de protocolo (JSON-RPC, gRPC, HTTP+JSON/REST) e opera como uma API tradicional com entradas e saídas. Os aplicativos podem fornecer endpoints A2A ou interagir com agentes por meio de A2A, e todos os fluxos de trabalho relacionados exigem testes completos. Semelhante aos casos de uso do MCP, o Parasoft SOAtest pode testar o comportamento dos agentes em relação a várias entradas, enquanto o Parasoft Virtualize pode simular agentes de terceiros, garantindo controle e estabilidade em testes automatizados.
Conclusão
À medida que a IA continua a remodelar o cenário do software program, as estratégias de teste devem evoluir para enfrentar os desafios únicos dos fluxos de trabalho orientados por LLM e baseados em agentes. Ao combinar ferramentas de teste avançadas, virtualização de serviçosaprendendo proxies, técnicas para lidar com resultados não determinísticos e testes de endpoints MCP e A2A, as equipes podem garantir que seus aplicativos permaneçam robustos e confiáveis, mesmo quando os modelos e integrações de IA subjacentes mudam. A adoção dessas práticas modernas de testes não apenas estabiliza o desenvolvimento e reduz os riscos, mas também capacita as organizações a inovar com confiança em uma period em que a IA está migrando para o núcleo da funcionalidade dos aplicativos.