Testando o Imprevisível: Estratégias para Aplicações Infundidas com IA


Testando o Imprevisível: Estratégias para Aplicações Infundidas com IATestando o Imprevisível: Estratégias para Aplicações Infundidas com IA

A ascensão de aplicações baseadas em IA, especialmente aquelas que utilizam Massive Language Fashions (LLMs), introduziu um grande desafio aos testes de software program tradicionais: o não determinismo. Ao contrário das aplicações convencionais que produzem resultados fixos e previsíveis, os sistemas baseados em IA podem gerar respostas variadas, mas igualmente corretas, para a mesma entrada. Essa imprevisibilidade faz com que garantir a confiabilidade e a estabilidade dos testes seja uma tarefa difícil.

Um recente Tempos SD ao vivo! Supercastapresentando o evangelista da Parasoft Arthur Hicken e o Diretor Sênior de Desenvolvimento Nathan Jakubiak, lança luz sobre soluções práticas para estabilizar o ambiente de teste para essas aplicações dinâmicas. A sua abordagem centra-se numa combinação de virtualização de serviços e técnicas de validação baseadas em IA de próxima geração.

Estabilizando o Caos do LLM com Virtualização

O problema central decorre do que Hicken chamou de capricho do LLM, que pode fazer com que os testes sejam barulhentos e falhem consistentemente devido a pequenas variações na linguagem descritiva ou no fraseado. A solução proposta é isolar o comportamento não determinístico do LLM usando um proxy e virtualização de serviços.

“Uma das coisas que gostamos de recomendar às pessoas é primeiro estabilizar o ambiente de teste, virtualizando os comportamentos não determinísticos dos serviços nele contidos”, explicou Hicken. “Então, da maneira como fazemos isso, temos um aplicativo em teste e, obviamente, por ser um aplicativo infundido por IA, obtemos variações nas respostas. Não sabemos necessariamente qual resposta obteremos ou se está correta. Então, o que fazemos é pegar seu aplicativo e colocar o proxy virtualizado da Parasoft entre você e o LLM. E então podemos capturar o tráfego de tempo que está acontecendo entre você e o LLM, e podemos criar automaticamente serviços virtuais dessa forma, para que possamos isolamos você do sistema. E o authorized é que também aprendemos com isso para que, se suas respostas começarem a mudar ou suas perguntas começarem a mudar, possamos adaptar os serviços virtuais no que chamamos de nosso modo de aprendizagem.”

Hicken disse que a técnica da Parasoft envolve colocar um proxy virtualizado entre o aplicativo em teste e o LLM. Este proxy pode capturar um par solicitação-resposta. Uma vez aprendido, o proxy fornece essa resposta fixa sempre que a solicitação exata é feita. Ao cortar o LLM ativo do circuito e substituí-lo por um serviço digital, o ambiente de teste é estabilizado instantaneamente.

Essa estabilização é essential porque permite que os testadores voltem a usar afirmações fixas tradicionais, disse ele. Se a saída de texto do LLM for confiávelmente a mesma, os testadores poderão validar com segurança que um componente secundário, como um servidor Mannequin Context Protocol (MCP), exibe seus dados no native correto e com o estilo adequado. Esse isolamento garante que uma afirmação fixa no show seja confiável e rápida.

Controlando fluxos de trabalho agentes com virtualização MCP

Além do próprio LLM, os aplicativos modernos de IA geralmente dependem de componentes intermediários, como servidores MCP, para interações e fluxos de trabalho de agentes – lidando com tarefas como verificações de inventário ou compras em um aplicativo de demonstração. O desafio aqui é duplo: testar a interação do aplicativo com o servidor MCP e testar o próprio servidor MCP.

A virtualização de serviços também se estende a esta camada. Ao fragmentar o servidor MCP ativo com um serviço digital, os testadores podem controlar as saídas exatas, incluindo condições de erro, casos extremos ou até mesmo simular um ambiente indisponível. Essa capacidade de controlar com precisão o comportamento de back-end permite testes abrangentes e isolados da lógica do aplicativo principal. “Temos muito mais controle sobre o que está acontecendo, então podemos garantir que todo o sistema esteja agindo de forma que possamos antecipar e testar de maneira racional, permitindo a estabilização complete do seu ambiente de testes, mesmo quando você estiver usando MCPs.”

No Supercast, Jakubiak demonstrou a reserva de equipamentos de acampamento por meio de um aplicativo de loja de acampamento.

Este aplicativo depende de dois componentes externos: um LLM para processar as consultas em linguagem pure e responder, e um servidor MCP, que é responsável por coisas como fornecer estoque disponível ou informações do produto ou realmente realizar a compra.

“Digamos que eu queira fazer uma viagem de mochila às costas e por isso preciso de uma barraca de mochila às costas. Então peço à loja que avalie as opções disponíveis e sugira uma para mim”, disse Jakubiak. O servidor MCP encontra barracas disponíveis para compra e o LLM fornece sugestões, como uma barraca leve para duas pessoas para esta viagem. Mas, disse ele, “como este é um aplicativo baseado em LLM, se eu executar esta consulta novamente, obterei um resultado um pouco diferente”.

Ele observou que, como o LLM é não determinístico, usar uma abordagem tradicional de validação de asserção fixa não funcionará, e é aí que entra a virtualização de serviço. “Porque se eu puder usar a virtualização de serviço para simular o LLM e fornecer uma resposta fixa para esta consulta, posso validar que essa resposta fixa aparece corretamente, está formatada corretamente, está no native certo. E agora posso usar minhas asserções fixas para validar se o aplicativo exibe isso corretamente.”

Tendo mostrado como a IA pode ser usada no teste de aplicações complexas, Hicken garantiu que os humanos continuarão a ter um papel importante. “Talvez você não esteja criando scripts de teste e gastando muito tempo criando esses casos de teste. Mas a validação disso, garantindo que tudo esteja funcionando como deveria e, claro, com toda a complexidade incorporada em todas essas coisas, monitorando constantemente para garantir que os testes estejam acompanhando quando há alterações no aplicativo ou nos cenários.”

Em algum nível, afirmou ele, os testadores sempre estarão envolvidos porque alguém precisa examinar o aplicativo para ver se ele atende ao caso de negócios e satisfaz o usuário. “O que estamos dizendo é: adote a IA como um par, um parceiro, e fique de olho nela e estabeleça barreiras de proteção que lhe permitam obter uma boa avaliação de que as coisas estão indo, como deveriam ser. E isso deve ajudá-lo a fazer um desenvolvimento muito melhor e aplicações melhores para pessoas que são mais fáceis de usar.”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *