Research Article

PreventativeTestPro: Um Framework de Testes Híbridos Escalável que utiliza observabilidade e IA generativa para engenharia proativa de qualidade de software

DOI:

10.3791/69316

March 24th, 2026

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

PreventativeTestPro é uma estrutura de testes impulsionada por IA que utiliza dados de observabilidade e grandes modelos de linguagem para automatizar análise de causa raiz, geração de testes e validação contínua, com o objetivo de melhorar a confiabilidade do software e otimizar a garantia de qualidade tanto para sistemas frontend quanto backend, facilitando um gerenciamento de tickets de suporte mais eficiente.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Este artigo apresenta um sistema de testes sofisticado e escalável que integra automação orientada por observabilidade com engenharia proativa de qualidade aumentada por IA para enfrentar dificuldades contemporâneas de entrega de software. O sistema sugerido aprimora o PreventativeTestPro, uma plataforma de testes híbrida e de código aberto que combina metodologias black-box e white-box, incorporando uma camada inovadora de orquestração de testes baseada em observabilidade. A plataforma utiliza logs, métricas, eventos e rastreamentos junto com o monitoramento do navegador e do lado do servidor para identificar rapidamente anomalias, aprimorar a seleção de casos de teste e automatizar a criação de suítes de testes funcionais, de desempenho e de segurança. Uma característica distintiva é a incorporação de grandes modelos de linguagem (LLMs) para fornecer insights sobre a causa raiz e construir de forma autônoma novos casos de teste com base em comportamentos de produção e anormalidades identificadas, proporcionando assim cobertura de regressão adaptativa e remediação inteligente.

O sistema facilita a execução simultânea de testes com análise instantânea de logs impulsionada por IA, promovendo um ciclo contínuo de feedback entre operações e testes. Ele foi validado em vários cenários empresariais, incluindo plataformas SaaS baseadas em microsserviços e ecossistemas SAP BTP. Resultados empíricos de quatro implantações em produção e um grupo beta de 49 engenheiros indicam uma diminuição de até 30% no tempo médio até a resolução, mais de 95% de conformidade com SLAs e melhorias substanciais tanto na cobertura de testes quanto na rastreabilidade de defeitos. A conexão fácil com ferramentas padrão da indústria ilustra sua capacidade plug-and-play.

Esta pesquisa apresenta uma metodologia de engenharia de qualidade abrangente, independente de ferramentas e voltada para o futuro, consistente com os princípios ágeis e DevOps. Empreendimentos futuros incluem classificação dinâmica de anomalias por meio de aprendizado de máquina, extensão para sistemas móveis e orientados à experiência do usuário, e ampliação das capacidades de grandes modelos de linguagem para desenvolvimento de testes específicos de domínio e previsão de falhas.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

A crescente popularidade do paradigma ágil nos negócios de software levou a um interesse crescente em ambientes de integração contínua. As vantagens desses sistemas incluem a integração perfeita de modificações regulares de programas, resultando em uma evolução acelerada e econômica do software. Consequentemente, gerenciará eficientemente tarefas como procedimentos de construção, execução de testes e relatórios de resultados de testes. Testes de software são implementados desde o início da engenharia de software. A prática de testes de software foi implementada para avaliar a qualidade do software1. Os testes abrangem uma série de ações destinadas a detectar e resolver quaisquer possíveis erros no software antes de sua implantação para os usuários finais. Testes de software são uma etapa cara no processode desenvolvimento 2. O custo dos testes e depuração de software representa mais de 50% do custo total dedesenvolvimento 3,4. O custo associado aos testes de regressão depende da complexidade da aplicação e da magnitude do conjunto de testes5.

A metodologia ágil leva à implementação de mudanças rápidas em produção, o que, por sua vez, resulta em um grande número de problemas de suporte devido ao feedback. Gerenciar dificuldades de suporte é uma responsabilidade muito significativa e crítica, como evidenciado pelo fato de que 68% dos consumidores expressam disposição para pagar um valor premium por produtos e serviços de uma empresa renomada por oferecer um excelente atendimentoao cliente 6. De acordo com um estudo, 86% dos clientes que recebem um atendimento excepcional têm mais chances de se tornarem defensores leais do negócio a longoprazo 7. De acordo com um estudo, 89% dos compradores estão mais inclinados a fazer compras repetidas se tiveram uma experiência de atendimento ao clientefavorável 8. De acordo com um estudo, 93% dos clientes tendem a fazer compras repetidas em empresas que oferecem um atendimento excepcional9. Para oferecer um excelente atendimento ao cliente, é essencial resolver os pedidos de suporte de forma rápida e eficaz com alto nível de qualidade. O elemento de qualidade é crucial ao buscar uma entrega mais rápida, já que o custo para resolver problemas de suporte aumenta com o tempo e o nívelde escalonamento 10.

Para obter alta qualidade, é necessário localizar e resolver problemas de suporte, garantindo cobertura abrangente de testes para testes de regressão no ticket. Essa função é complexa e resultou em um aumento das dificuldades operacionais, principalmente na rápida detecção e resolução de problemas de apoio. Dificuldades de suporte, que abrangem uma grande variedade de problemas como desempenho reduzido do sistema ou falhas imprevistas, frequentemente surgem durante a fase operacional dos sistemas de software. Se essas dificuldades não forem rapidamente descobertas e corrigidas, podem resultar em períodos significativos de inatividade, descontentamento dos consumidores e reveses financeiros. Os métodos atuais de utilização das informações de observabilidade para as necessidades de teste são frequentemente limitados por procedimentos manuais, táticas responsivas em vez de proativas, e uma deficiência na integração da detecção de anomalias com a execução dos testes. Há uma clara falta na detecção proativa de problemas de suporte usando dados de observabilidade em tempo real e na execução automática de casos de teste apropriados para evitar prováveis falhas antecipadamente.

A ausência de uma solução abrangente e unificada resulta em muitas consequências prejudiciais para a manutenção e confiabilidade do software. Esses fatores incluem períodos prolongados de inatividade do sistema causados pela identificação tardia de problemas, aumento do trabalho manual na localização de casos de teste pertinentes e diminuição da confiança na confiabilidade do sistema. Além disso, a falha em associar com precisão as anomalias identificadas aos casos de teste leva a deficiências na cobertura dos testes, o que pode resultar em problemas importantes não resolvidos.

A razão fundamental para essa disparidade pode ser atribuída à estrutura fragmentada dos sistemas existentes de monitoramento e teste. Muitos sistemas atuais não têm capacidade para integrar de forma fluida a análise de dados de observabilidade com a execução de casos de teste pertinentes. Além disso, a dependência de regulamentos fixos e procedimentos humanos para associar irregularidades a casos de teste dificulta a capacidade de resolver novos problemas de forma rápida e precisa.

Para obter uma visão sobre como a indústria lida com questões de suporte e realiza testes preventivos, realizamos um estudo descritivo entrevistando profissionais daárea 11. Com base nos dados das entrevistas, foi enfatizado que o maior obstáculo encontrado durante a implementação de qualquer solução é o tempo insuficiente para garantir a qualidade. Durante a entrevista, várias preocupações foram apontadas, incluindo aprimoramento de habilidades individuais, custos de manutenção, baixo retorno sobre investimento e seleção e integraçãode ferramentas 11. Essas informações também foram verificadas no "Relatório sobre o Estado da Qualidade 2024" da Katalon12.12.. Antes de fornecer quaisquer soluções para os problemas mencionados nas entrevistas, realizamos uma avaliação comparativa das ferramentas para verificar se existem ferramentas ou algoritmos existentes que abordem as preocupaçõesmencionadas 13,14. Agora não temos as ferramentas ou algoritmos necessários especificamente projetados para enfrentar as dificuldades discutidas nas entrevistas.

Este trabalho introduz um método inovador que utiliza dados de observabilidade para detectar problemas de suporte em estágio inicial (mesmo antes de serem reportados) e realizar casos de teste apropriados, melhorando assim a confiabilidade e robustez dos sistemas de software. Essa estratégia baseia-se na utilização de dados de observabilidade para identificar anormalidades, estabelecer conexões com problemas prováveis e iniciar a execução de casos de teste direcionados que têm alta probabilidade de revelar a causa subjacente do problema. A solução sugerida pretende reduzir a barreira entre operações de software e testes, permitindo uma resposta proativa e rápida às preocupações do suporte. A solução proposta permite a criação de novos casos de teste se os casos de teste estiverem ausentes do conjunto, melhorando assim a cobertura dos testes. A estratégia sugerida também visa abordar as preocupações levantadas nas entrevistas e no relatório dos Katalon11, 12, 13 e 14.

Observabilidade, no contexto da teoria do controle, refere-se à medida em que os estados internos de um sistema podem ser deduzidos a partir de suas saídas externas. No campo da engenharia de software, a ideia de observabilidade refere-se à capacidade de monitorar e compreender a condição de um sistema de software utilizando resultados como logs, métricas, rastreios e eventos 15,16,17. Nossa análise bibliográfica inclui um exame da observabilidade e seu uso em testes de software. No entanto, encontramos literatura disponível limitada sobre esse tema. Por isso, também incluímos discussões sobre testes preventivos inovadores e pesquisas relacionadas. Nossa revisão bibliográfica é ainda categorizada em 3 grupos diferentes.

Bogatinovski et al.18 apresentam CLog, uma técnica de rede neural e clustering consciente do contexto projetada para lidar com dados de log instáveis e cobertura insuficiente de falhas, identificando subprocessos significativos e detectando falhas em meio a transições súbitas de contexto. Busby et al.19 propõem uma metodologia baseada em log para gerar casos de teste anonimizados, prevendo sequências de usuários para replicação sem dados pessoais; no entanto, a concorrência e as variações no nível do desmatador persistem como restrições significativas. Lee eKang 20 sugerem implementar uma arquitetura de teste para testes de linhas de produtos de software para melhorar a observabilidade e o controle na presença de mecanismos de variabilidade. O modeloQEX 21 combina dados de diferentes fontes de teste para fornecer informações claras e úteis durante os testes em andamento. Lal eKumar, 22 anos, enfatizam a importância de poder ver e controlar testes inteligentes. Eles sugerem o uso de automação baseada em IA para tornar os testes mais rápidos, eficientes e completos. Briand et al.23 ilustram a aplicação da programação orientada a aspectos em Java para a instrumentação eficaz de contratos e invariantes, enquanto Baral e Offutt24 enfatizam o problema das afirmações de teste erradas que resultam em "testes cegos", que não identificam comportamentos incorretos.

O Rott25 discute que as análises e visualizações modernas dentro do Teamscale enfatizam o processo de testes de software ao permitir que os testadores acessem os artefatos processados específicos para as questões e situações necessárias. Collins eLucena 26 enfatizam a importância de realizar muitos testes no pipeline de CI antes de serem implantados em produção. Eles dizem que testes em camadas são uma boa forma de garantir que o produto seja de alta qualidade e reduzir problemas de suporte.

O BugSwarm27 oferece um método para examinar falhas nos testes de CI correlacionando as causas raiz com suas respectivas soluções. Dudila eLetia 28 examinam metodologias de testes de caixa branca e caixa-preta, sugerindo uma estratégia coesa para mitigar os esforços de depuração durante o processo de desenvolvimento. Fushihara et al.29 investigaram "cheiros de teste" em aplicações Python, analisando sua progressão por meio de modificações de código para aprimorar a gestão do código de teste. SUPERNOVA30 é um sistema para selecionar testes e prevenir falhas que utilizam dados, automação e aprendizado de máquina para melhorar a garantia de qualidade. Araujo31 propõe uma estratégia de manutenção focada no envelhecimento do software. Essa estratégia utiliza manutenção corretiva quando mudanças de código são possíveis e estratégias preventivas quando mudanças podem causar inatividade do sistema, o que reduz o número de falhas de serviço. Andrew et al.32 investigam o teste de mutação paralelizada, um processo no qual classes são repetidamente mutadas, testadas e recarregadas até que todas as variantes sejam avaliadas. Dunn et al.33 propõem métricas de vulnerabilidade de segurança que atribuem pesos aos componentes para enfatizar a importância de testes minuciosos. Por fim, Huo et al.34 usam um índice sequencial de conjunto para encontrar localizações de defeitos e confirmar problemas. Isso mostra que as causas raiz frequentemente estão ligadas à maioria dos casos de teste fracassados em aplicações de software.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Arquitetura do sistema e resumo do protótipo:

Esta pesquisa apresenta um sistema protótipo aprimorado e adaptável, o PreventivtativeTestPro, que exemplifica uma abordagem proativa de engenharia de qualidade utilizando dados de observabilidade e grandes modelos de linguagem (LLMs) para melhorar ainda mais a resolução de problemas de suporte. O sistema busca enfrentar problemas modernos de entrega de software, automatizando a detecção de anomalias, análise de causa raiz e a execução e desenvolvimento inteligentes de casos de teste para cobertura não abordada, utilizando monitoramento sintético, dados de observabilidade e integração GenAI. A arquitetura é modular e compreende três componentes principais: Coletor e Analisador de Dados de Observabilidade, Camada de Inteligência Orientada por GenAI e Motor de Orquestração e Execução de Testes, conforme especificado detalhadamente na Figura 1.

figure-protocol-1
Figura 1: A entrada-saída do sistema proposto. Dados de observabilidade, juntamente com a saída do observador, repositório de testes e regras de mapeamento, são fornecidos como entrada junto com os bancos de teste BHRAMI, que constroem bancos de teste impulsionados por IA para aumentar a robustez dos casos de teste. O sistema proposto gera instrumentação de anomalias, recomendações geradas por IA, execução de casos de teste pertinentes, documentação e relatórios, bem como a identificação e criação de casos de teste ausentes. Por favor, clique aqui para ver uma versão ampliada desta figura.

A Figura 2 mostra a arquitetura da abordagem sugerida. A figura ilustra a entrada, processamento e saída do sistema. Também fornece uma descrição abrangente do sistema, que é então traduzida em uma explicação para aprimorar a compreensão das características subjacentes.

figure-protocol-2
Figura 2: Arquitetura do sistema proposto com coletor e analisador de dados de observabilidade, camada de inteligência orientada por GenAI e motor de orquestração e execução de testes. Esta figura ilustra a arquitetura interna do sistema PreventativeTestPro, segmentada em três camadas: A Camada Coletora de Observabilidade agrega dados de múltiplas fontes, incluindo eventos do navegador, logs, arquivos HAR, logs backend, métricas e traços. A Camada de Inteligência de IA Generativa utiliza esses dados para realizar análises de causa raiz, priorizar anomalias e criar de forma autônoma casos de teste (UI, API, manual) e documentação por meio do uso de LLMs. O módulo BHARAMARI também estabelece novos bancos de teste. O Motor de Orquestração e Execução de Testes mapeia discrepâncias para casos de teste, executa testes simultaneamente, avalia resultados e informa equipes de engenharia, sistemas de tickets e dashboards para supervisão em tempo real e monitoramento de resolução. Por favor, clique aqui para ver uma versão ampliada desta figura.

O módulo Observability Data Collector and Analyzer serve como um sistema sensorial da plataforma, coletando continuamente dados da aplicação em avaliação em grande escala, com múltiplos aspectos. No caso do monitoramento frontend, agentes sintéticos de monitoramento são implantados para monitorar eventos do lado do navegador, como estruturas do Modelo de Objetos de Documento (DOM), ações do usuário, como cliques, hovers e entradas, e arquivos HAR capturando informações de rede e resposta de rede e API. O PreventativeTestPro também está incorporado ao OBSERVER para aumentar a capacidade dos navegadores. O monitoramento backend mira a análise de logs, na qual informações de observabilidade do lado do servidor são solicitadas e processadas, incluindo logs de aplicação, mensagens de erro, informações e depuração, logs de rastreamento de pilha e exceções, métricas de desempenho como tempos de resposta e rastreamento usando tecnologias como OpenTelemetry ou New Relic. O sistema funcionará com agentes sintéticos que simulam tráfego e interação dos usuários, e coletores de logs condensam dados em tempo real recebidos. Os dados coletados são então normalizados em formatos estruturados e entregues a outras unidades de processamento para análise posterior.

A essência do PreventativeTestPro é uma Camada de Inteligência Orientada por GenAI que utiliza Grandes Modelos de Linguagem (LLMs), como o GPT, para ler e analisar dados de observabilidade e contextualizar e gerar respostas. O módulo realiza a análise da causa raiz: o processo de interpretar logs e traços da causa raiz para explicar falhas técnicas em termos que possam ser compreendidos, como uma NullPointerException em uma linha de código específica e a causa assumida do problema, como uma variável não inicializada. Na geração de casos de teste, o sistema utiliza auto-testes gerados pela conversão de padrões de exceção ou uma sequência de eventos em scripts de teste executáveis, por exemplo, testes de Selenium ou API, mas também produz procedimentos de teste legíveis por humanos que a equipe de Garantia de Qualidade pode executar. Os testes de API evoluíram por meio da transformação de HAR e logs de traços em uma sequência de requisições de API com as asserções esperadas, e todos os casos de teste gerados são ainda mais aprimorados com bancos de teste eficazes ao se integrarem ao BHRAMARI. Melhorias adicionais, aprimoramentos na cobertura de testes e oportunidades de integração CI/CD são sugeridos no sistema de recomendação, dependendo do comportamento do sistema analisado. A Engine de IA utiliza dados estruturados de observabilidade via engenharia de prompts e enriquecimento de contexto para apresentar o contexto do log com templates de prompts que encaminham consultas estruturadas para o LLM, e finalmente gera saída em forma funcional, como trechos de código, especificações de casos de teste e documentação em linguagem natural.

O módulo Test Orchestration and Execution Engine gerencia prioridade de teste, escalonamento e execução, permitindo validação automatizada baseada em detalhes de cobertura de alterações de código, tags e mapeamento de anomalias. O mapeamento e a seleção do teste envolvem associar anomalias em mapas ou padrões de instrumentação com casos de teste conhecidos usando um Motor de Regras de Mapeamento, e então executar os casos de teste de acordo com o mapeamento estabelecido. As funcionalidades da execução concorrente de testes permitem executar diversos tipos de testes simultaneamente, como testes funcionais, de desempenho ou de segurança em diferentes ambientes, além de coordenar o uso de Selenium, JMeter e ZAP como instrumentos nos pipelines de automação. A implementação do ciclo de feedback garante que os resultados das execuções sejam registrados e, em caso de falha no teste, as alterações são comunicadas aos sistemas de suporte, incluindo Jira e Azure DevOps, para rastreá-las e resolvê-las.

Hipótese:

H1 (Eficiência Operacional): Postula-se que a fusão de dados de observabilidade e inteligência impulsionada por IA aprimorará as métricas operacionais, especialmente ao diminuir o tempo médio para resolver (H1a), o tempo médio para analisar (H1b), o tempo médio para detectar problemas de produção (H1c) e o tempo médio para implantar correções em produção (H1d). Essas mudanças devem facilitar o cumprimento dos requisitos do Acordo de Nível de Serviço (SLA) (H1e), acelerando a detecção, análise e implantação, mantendo o tempo de inatividade do sistema ao mínimo.

H2 (Eficácia dos Testes): Também se acredita que a eficácia dos testes de software melhorará com mais cobertura de teste (H2a), execução de casos de teste em paralelo (H2b) e priorização inteligente de testes (H2c). Recomendações geradas por IA (H2d) também devem ajudar tanto nos testes quanto nos fluxos de trabalho operacionais. Isso ajudará a identificar bugs mais rapidamente, acelerar os ciclos de feedback e apoiar práticas preventivas e duradouras de garantia de qualidade.

Escopo e público:

Este protótipo mostra o design geral do sistema, a ideia principal e como configurar e rodar o framework PreventivatTestPro passo a passo. Também detalha como configurar os bancos de teste/entradas de amostra corretos e dá dicas de como resolver problemas. O conteúdo é para engenheiros de qualidade de software que já conhecem o básico do Java e querem aprender a usar testes preventivos para tornar o software mais confiável e eficiente.

Configuração do ambiente:

O Arquivo Suplementar 1 contém uma descrição passo a passo e um programa necessários para se comunicar com o PreventivatTestPro. Isso inclui instruções para instalar o ambiente necessário, como iniciar e parar os serviços da ferramenta, e uma explicação clara do uso fundamental da ferramenta. Para obter uma documentação mais detalhada, juntamente com instruções sobre como usar ferramentas avançadas, instruções de configuração e outros detalhes organizacionais, consulte as fontes oficiais do GitHub dedicadas ao projeto: a página específica da Wiki no local do https://github.com/sohambpatel/PreventativeTests/wiki e o principal README na https://github.com/sohambpatel/PreventativeTests?tab=readme-ov-file/readme.

Exemplos de entradas:

Os arquivos de entrada de exemplo podem ser encontrados no repositório do GitHub: https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/Inputs. O framework pode executar os casos de teste pré-definidos desses arquivos e conjuntos de dados imediatamente. Eles são usados como entradas de referência para verificar a configuração do ambiente e obter os mesmos resultados descritos neste protocolo.

Exemplos de saídas:

O repositório GitHub (https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/SampleOutputs) contém amostras concretas dos dados de saída do framework de teste preventivo em formato bruto. Por meio desses arquivos, os usuários podem visualizar diretamente o layout e os detalhes dos relatórios e métricas gerados, demonstrando os resultados alcançados pela ferramenta durante seu funcionamento. Este guia é relevante para conhecer o pipeline de dados e confirmar o comportamento previsto do framework na recriação do processo experimental.

Protótipo de execução:

Esta seção oferece um guia detalhado passo a passo sobre como usar o framework PreventivatTestPro. Para ajudar os usuários a reproduzir o fluxo de trabalho, cada etapa é descrita em ordem. Esta seção apresenta as etapas de execução em um formato estruturado para facilitar a reprodução dos resultados, apontar pontos de verificação importantes e garantir que o framework PreventivatTestPro possa ser usado de forma consistente em diferentes ambientes experimentais ou operacionais.

Nessa etapa, a interface gráfica do PreventivtativeTestPro pode ser usada para escolher o melhor fluxo de trabalho de testes preventivos. A Figura 3 mostra cinco opções, cada uma representando uma etapa diferente no processo de testes: executar testes em paralelo, criar o conjunto de testes a partir do monitoramento da saída priorizando casos de teste existentes, criar casos de teste manuais, criar casos de teste automatizados e encontrar a causa raiz. Quando o usuário faz uma escolha, o fluxo de trabalho designado começa. Depois disso, modos adicionais (como geração de casos de teste impulsionada por IA ou análise de causa raiz) podem ser adicionados em estágios posteriores. Essa interface bem organizada oferece uma forma de realizar estudos de testes preventivos que podem ser repetidos e divididos em partes menores.

figure-protocol-3
Figura 3: Interface do usuário 1 do sistema. Esta figura mostra a interface do usuário PreventivaTestPro, que permite escolher entre cinco maneiras diferentes de realizar testes preventivos: 1. Teste Preventivo, Execução Paralela: Início do Teste, 2. Teste Preventivo, Finalização do Conjunto de Testes Baseado em Monitoramento de Aplicativos Sintéticos, 3. Teste Preventivo, Gerando Casos de Teste Manuais usando GenAI, 4. Teste Preventivo, Gerando Casos de Teste Automatizados usando GenAI, 5. Teste Preventivo, Análise de Causa Raiz usando GenAI. Apenas uma opção pode ser escolhida por vez. O design modular facilita a realização de testes preventivos e adiciona a criação e diagnóstico de testes com IA. Por favor, clique aqui para ver uma versão ampliada desta figura.

A Figura 4 mostra a interface de Execução Paralela do framework. Nessa etapa, o usuário insere a URL do aplicativo que deseja testar e o caminho absoluto até o arquivo de propriedades que contém as configurações de configuração. Após os inputs serem definidos, o usuário pode começar a executar testes ao mesmo tempo clicando no botão Iniciar Testes, que também monitora o site em teste e gera os logs de segurança, desempenho, console e JavaScript. É possível interromper a execução em andamento clicando no botão Parar o Teste. O botão Obter Recomendação permite obter insights baseados em IA a partir dos registros registrados. Esse design garante que múltiplas categorias de teste (funcionais, de desempenho e de segurança) rodem ao mesmo tempo, o que facilita a identificação de problemas mais rapidamente.

figure-protocol-4
Figura 4: Interface do usuário 2 do sistema. Esta figura mostra o modo de Execução Paralela do framework PreventivatTestPro. O usuário especifica a URL da aplicação de destino e o caminho para um arquivo de propriedades contendo detalhes de configuração. As opções incluem Start Testing (para executar testes funcionais, de segurança e de desempenho em paralelo e registrar os logs), Stop Testing (para interromper a execução) e Get Recommendation (para obter insights baseados em IA a partir de logs e métricas). Por favor, clique aqui para ver uma versão ampliada desta figura.

A Figura 5 mostra a interface de Finalização de Testes baseada em Monitoramento do framework PreventivTestPro. Nessa etapa, o usuário define o caminho para o arquivo de saída de monitoramento, a consulta do caminho JSON para obter nós de erro ou exceção, e o caminho do repositório de teste para salvar os casos criados. Depois que as entradas são definidas, o usuário pode primeiro obter os nomes da classe e do método que as acompanham e então ordenar os casos de teste do pull de teste com base na classe e método encontrados. Essa etapa de priorização mostra como usar os dados de monitoramento para classificar os casos de teste de forma eficaz.

figure-protocol-5
Figura 5: Interface do usuário 3 do sistema. Esta figura mostra como priorizar um conjunto de testes no framework PreventivatTestPro usando resultados sintéticos de monitoramento. O usuário digita o caminho para o arquivo de saída de monitoramento, o caminho JSON para obter exceções/erros e o caminho para o repositório de teste (offline). As opções Get Class/Method Name e Get Test Cases podem ser usadas para transformar anomalias de mapeamento em casos de teste que podem ser executados. Isso garante que problemas em tempo de execução estejam incluídos no processo de teste. Por favor, clique aqui para ver uma versão ampliada desta figura.

A Figura 6 mostra a interface Manual de Geração de Casos de Teste do PreventivatTestPro. Nessa etapa, o usuário informa ao programa onde encontrar o arquivo de rastreamento de pilha que mostra a anomalia, fornecendo o caminho absoluto para o arquivo de traço de pilha e o caminho para o arquivo de propriedades de configuração. Uma vez que as entradas são definidas, pode-se executar a opção Generar Casos de Teste, que transformará a anomalia em casos de teste manuais estruturados. Isso garante que erros de execução que já ocorreram antes estejam sempre incluídos no processo de teste. O framework facilita a criação de casos de teste ao automatizar o processo. Isso reduz o trabalho manual, melhora a cobertura dos testes e torna os testes mais confiáveis, além de evitar que o mesmo problema volte a acontecer. Essa etapa é um elo muito importante entre encontrar problemas e garantir que a qualidade seja boa antes que isso aconteça.

figure-protocol-6
Figura 6: interface do usuário 3 do sistema. Esta figura mostra a interface de geração de casos de teste do PreventivatTestPro. Ele transforma rastreamentos de pilha de anomalias em casos de teste manuais no Desenvolvimento Orientado por Comportamento (BDD) que podem ser usados. O usuário fornece os caminhos para o arquivo de rastreamento da pilha e o arquivo de propriedades e então clica em "Gerar Casos de Teste" para criar automaticamente casos que correspondem à falha encontrada. Isso garante que problemas em tempo de execução sejam sempre transformados em testes de regressão que podem ser repetidos. Por favor, clique aqui para ver uma versão ampliada desta figura.

A Figura 7 mostra a interface automatizada de geração de casos de teste do PreventivatTestPro. Nessa etapa, o usuário fornece o caminho absoluto para o arquivo de saída JSON de observabilidade e o caminho para o arquivo de configuração da propriedade. Quando o botão Generar Casos de Teste Automatizados é clicado, o sistema processa os dados de monitoramento e cria casos de teste que podem ser executados para mostrar os mesmos problemas que foram vistos.

figure-protocol-7
Figura 7: Interface do usuário 4 do sistema. Esta figura mostra a interface automatizada de geração de casos de teste do PreventivatTestPro, que realiza testes que podem ser executados usando dados de observabilidade. O usuário fornece o caminho para o arquivo de propriedades e para o arquivo de saída JSON de observabilidade. Depois, eles clicam em "Gerar Casos de Teste Automatizados" para criar scripts que podem ser executados (nos formatos Selenium e TestNG). Por favor, clique aqui para ver uma versão ampliada desta figura.

figure-protocol-8
Figura 8: Interface do usuário 5 do sistema. Esta figura mostra a interface de instrumentação de anomalias do PreventivoTestPro para Análise da Causa Raiz (RCA). O usuário fornece o caminho para o arquivo de propriedades e para o arquivo de traço da pilha, então escolhe o RCA para iniciar a análise conduzida por IA. Essa etapa transforma anomalias detectadas em insights diagnósticos estruturados, garantindo que falhas possam ser corrigidas de forma repetida e específica para o problema. Por favor, clique aqui para ver uma versão ampliada desta figura.

Solução de Problemas:

A Tabela 1 mostra os pontos de solução de problemas mais importantes que se referem apenas ao código da aplicação. Esses pontos são uma forma rápida de lembrar como corrigir problemas em nível de código que surgem ao executar o framework PreventivTestPro. A documentação do projeto fornece mais informações e instruções passo a passo para leitores que desejam mais ajuda para solucionar problemas que afetam a funcionalidade geral da aplicação. O recurso completo pode ser obtido no link: https://github.com/sohambpatel/PreventativeTests/wiki/How-to-use%3F. Essa referência extra garante que os usuários não apenas corrigam problemas de programação, mas também aprendam a diagnosticar funções, permitindo que utilizem o framework de forma mais eficaz.

Comportamento de ErroCausa RaizComo consertar?
A inscrição não está começandoO caminho do Java não está definidoNa variável Ambiente, defina a JAVA_HOME
Servidor falha na inicializaçãoPorta 8080/9090 em uso (especificamente durante o uso do Docker)Atualizar o mapeamento de portas do Docker
O conteúdo do GenAI é nuloO token pode ter expiradoGerar o token e atualizar o config.properties antes de fornecer isso como entrada
A instância do navegador gerada pelo framework não está conectando à redeOu o servidor ZAP não está rodando ou as credenciais ZAP estão incorretasLigue o ZAP antes de rodar o aplicativo, caso ele esteja rodando e o problema ainda persista, atualize as credenciais ZAP no config.properties antes de fornecer isso como entrada

Tabela 1: Erros comuns de sistema propostos e correções rápidas. Esta tabela mostra os erros comuns específicos de aplicação, solução de problemas e correções rápidas que podem ser aplicadas para corrigir os problemas.

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Inicialmente, compartilhamos os resultados derivados dos estudos de caso realizados em colaboração com várias indústrias em tempo real. Além disso, fornecemos os resultados derivados dos beta testers que utilizaram esse framework e algoritmo, juntamente com as observações finais sobre os potenciais riscos à validade dos resultados.

Resultados de estudos de caso da indústria:

Com base em nossa pesquisa, que foca em a...

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Esta pesquisa apresenta o PreventivtativeTestPro, uma plataforma abrangente de testes e observabilidade que integra monitoramento sintético, dados de observabilidade e automação impulsionada por IA generativa para melhorar a garantia de qualidade do software. O sistema consiste em três módulos fundamentais: um coletor e analisador de dados de observabilidade, uma camada de inteligência gerativa impulsionada por IA e um motor de orquestração e execução de testes. Coletivamente, esses comp...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Os autores afirmam que não possuem interesses financeiros concorrentes conhecidos ou relacionamentos pessoais que possam ter influenciado o trabalho relatado neste artigo. Afirmamos que Gêmeos só foi aplicado no polimento gramatical e na reformulação das frases para torná-las mais fáceis de ler. Para estar correto e eticamente correto, os autores revisaram cuidadosamente todas as mudanças sugeridas pela IA para preservar a conotação científica original.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

O autor expressa gratidão pelo apoio significativo e colaboração proporcionados pelas seguintes organizações ao longo desta pesquisa. Os estudos de caso experimentais colaborativos com essas empresas foram cruciais para fundamentar a ferramenta e o método propostos. Agradecimento é estendido à GazonTech, Lopa Engineering, Afour Technologies, QJ Technologies e SecureLayer7 por concederem acesso a ambientes práticos, insights técnicos e contribuições valiosas durante a fase experimental. Seu envolvimento ativo aumentou muito a importância prática e a usabilidade dos achados da pesquisa. O autor expressa profunda gratidão pela disposição deles em participar de pesquisas acadêmicas e pela dedicação à inovação e ao aprimoramento contínuo nos campos da engenharia de software e da cibersegurança.

Access restricted. Please log in or start a trial to view this content.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Apache MavenFundação de Software Apache3.9.6Ferramenta de gerenciamento de dependências e projetos para projetos Java
ChatGPT (API GPT-3.5 Turbo)OpenAIhttps://platform.openai.com/api-keysPara gerar recomendações de teste baseadas em IA a partir de logs, gerar casos de teste manuais, gerar casos de teste automatizados e obter a análise de causa raiz
Computador (Máquina de Desenvolvimento/Teste)Desktop/Laptop Padrão-Usado para desenvolver, executar e testar o PreventivTestPro
Espaço em Disco--Pelo menos 10 GB de espaço livre em disco recomendados para logs, relatórios e artefatos de teste
DockerDocker Inc.27 (https://docs.docker.com/desktop/setup/install/windows-install/) Usado para conteinerização para garantir reprodutibilidade entre ambientes
Vai emboraGit SCMgit versão 2.45.2.windows.1Sistema de controle de versões usado para desenvolvimento e colaboração
Repositório GitHubGitHubhttps://github.com/sohambpatel/PreventativeTestsRepositório público contendo código-fonte, documentação, conjuntos de dados e exemplos
Google ChromeGoogle140.0.7339.128Navegador principal usado para monitoramento e testes sintéticos
JavaOracle / OpenJDK21.0.2Usado para desenvolvimento de software e execução do PreventivtativeTestPro
Sistema OperacionalPlataforma Independente-A ferramenta funciona em qualquer sistema operacional com Java e Maven instalados (Windows, Linux, macOS)
OWASP ZAPFundação OWASP2.14.0Ferramenta de varredura de segurança e detecção de vulnerabilidades
Processador--Intel i5 ou superior (ou equivalente) recomendado para execução paralela e processamento de IA
RAM--Mínimo de 8 GB de RAM recomendado para execução de testes e monitoramento baseado em navegador

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. A novel approach to multiple criteria based test case prioritization. Abid, R., Nadeem, A. 2017 13th International Conference on Emerging Technologies (ICET), Islamabad, Pakistan, , (2017).
  2. Khatibsyarbini, M., Isa, M. A., Jawawi, D. N., Tumeng, R. Test case prioritization approaches in regression testing: A systematic literature review. Inf Softw Technol. 93, 74-93 (2017).
  3. Enhanced weighted method for test case prioritization in regression testing using unique priority value. Ammar, A., Baharom, S., Ghani, A. A. A., Din, J. 2016 International Conference on Information Science and Security (ICISS), Pattaya, Thailand, , (1109).
  4. Using artificial bee colony for code coverage based test suite prioritization. Konsaard, P., Ramingwong, L. 2015 2nd International Conference on Information Science and Security (ICISS), Seoul, Korea, 10, Forthcoming.
  5. Rosero, R. H., Gómez, O. S., Rodríguez, G. Regression testing of database applications under an incremental software development setting. IEEE Access. 5, 18419-18428 (2017).
  6. Customer Service Expectations 2018. , Gladly. Available at: https://www.gladly.com/blog/2018-customer-service-expectations-survey/ (2018).
  7. Must-Know Customer Service Statistics. , Khoros. Available at: https://khoros.com/blog/must-know-customer-service-statistics (2025).
  8. State of the Connected Customer, 4th Ed. , Salesforce. Available at: https://c1.sfdcstatic.com/content/dam/web/en_us/www/documents/research/salesforce-state-of-the-connected-customer-4th-ed.pdf (2025).
  9. Customer Acquisition Study. , HubSpot. Available at: https://blog.hubspot.com/service/customer-acquisition-study (2025).
  10. IT Ticket Handling Best Practices. , Ivanti. Available at: https://www.ivanti.com/blog/it-ticket-handling-best-practices (2025).
  11. Patel, S., Patil, K., Chumchu, P. Quantitative data set on test prioritization and preventative tests. Mendeley Data. V2, (2023).
  12. State of Software Quality Report 2024. , Katalon. Available at: https://katalon.info/hubfs/download-content/ebook/State%20of%20Software%20Quality%20Report%202024.pdf (2025).
  13. Patel, S., Patil, K., Chumchu, P. OBSERVER: Observing Browser Synthetic Environments for Robotization, Verification, Efficiency, and Resilience. Softw Impacts. 24, 100752(2025).
  14. Patel, S., Patil, K., Chumchu, P. Comparative analysis of software solutions for preventative testing and test prioritization. Mendeley Data. V2, (2024).
  15. Intro to Synthetic Monitoring . , New Relic. Available at: https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/using-monitors/intro-synthetic-monitoring (2025).
  16. Observability Glossary. , SolarWinds. Available at: https://www.solarwinds.com/resources/it-glossary/observability (2025).
  17. Patel, S., Patil, K., Chumchu, P. BHRAMARI: Bug driven highly reusable automated model for automated test bed generation and integration. Softw Impacts. 21, 100687(2024).
  18. Failure identification from unstable log data using deep learning. Bogatinovski, J., Nedelkoski, S., Wu, L., Cardoso, J., Kao, O. 2022 22nd IEEE International Symposium on Cluster, Cloud and Internet Computing (CCGrid), Taormina, Italy, , (2022).
  19. Creating test cases for testing software using anonymized log data. U.S. Patent. , US11709764B2. USPTO (2023).
  20. Towards test architecture based software product line testing. Lee, J., Kang, S. 2014 IEEE 38th Annual Computer Software and Applications Conference (COMPSAC), Vasteras, Sweden, , (2014).
  21. QEX: Automated testing observability and QA developer experience framework. Locke, H. L., Ting Keshia, Y. K., Yu, J. C. K., Chua, H. Y. 2023 IEEE Conference on Software Testing, Verification and Validation (ICST), Dublin, Ireland, , (1109).
  22. Intelligent testing in software industry. Lal, A., Kumar, G. 2021 12th International Conference on Computing Communication and Networking Technologies (ICCCNT), Kharagpur, India, , (2021).
  23. Instrumenting contracts with aspect-oriented programming to increase observability and support debugging. Briand, L. C., Dzidek, W. J., Labiche, Y. 2005 21st IEEE International Conference on Software Maintenance (ICSM), Budapest, Hungary, , (1109).
  24. An empirical analysis of blind tests. Baral, K., Offutt, J. 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), Porto, Portugal, , (1109).
  25. Rott, J. Test intelligence: How modern analyses and visualizations in Teamscale support software testing. 2022 1st International Workshop on Visualization in Testing of Hardware, Software, and Manufacturing (TestVis), Oklahoma City, OK, USA, , (2022).
  26. Collins, E. F., de Lucena, V. F. Software test automation practices in agile development environment: An industry experience report. 2012 7th International Workshop on Automation of Software Test (AST), Zurich, Switzerland, , (2012).
  27. BugSwarm: Mining and continuously growing a dataset of reproducible failures and fixes. Tomassi, D. A., Dmeiri, N., Wang, Y., Bhowmick, A., Liu, Y. C., Devan, P. T. 2019 IEEE/ACM International Conference on Software Engineering (ICSE), Montreal, Canada, , (2019).
  28. Towards combining functional requirements tests and unit tests as a preventive practice against software defects. Dudila, R., Letia, I. A. 2013 International Conference on Control Systems and Computer Science (ICCP), Sinaia, Romania, , (2013).
  29. Fushihara, Y., Aman, H., Amasaki, S., Yokogawa, T., Kawahara, M. A trend analysis of test smells in Python test code over commit history. 2023 49th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Durres, Albania, , (2023).
  30. SUPERNOVA: Automating test selection and defect prevention in AAA video games using risk-based testing and machine learning. Senchenko, A., Patterson, N., Samuel, H., Ispir, D. 2022 IEEE Conference on Software Testing, Verification and Validation (ICST), Valencia, Spain, , (2022).
  31. A software maintenance methodology: An approach applied to software aging. Araujo, J., Melo, C., Oliveira, F., Pereira, P., Matos, R. 2021 IEEE International Systems Conference (SysCon), Vancouver, BC, Canada, , Forthcoming.
  32. Mutual Automobile Insurance Company. Mutation Testing in Parallel Threads. U.S. Patent. , US11163675B1. USPTO (2021).
  33. Machine learning-based decision-making for autonomous systems communication. U.S. Patent. , US11366748B1. USPTO (2022).
  34. Use sequential set index for root cause location and problem detection. U.S. Patent. Huo, Z. P., et al. , US11645142B1. USPTO (2023).
  35. Selenium WebDriver. , Selenium. https://www.selenium.dev (2025).
  36. The Katalon Platform. , Katalon. Available from: https://katalon.com (2025).
  37. Apache JMeter. , Apache Software Foundation. Available from: https://jmeter.apache.org (2024).
  38. OWASP ZAP (Zed Attack Proxy). , OWASP Foundation. Available from: https://www.zaproxy.org/ (2025).
  39. Xray by Xpand IT. Xray - Test Management for Jira. , Xray. Available from: https://www.getxray.app (2025).
  40. Tricentis Copilot. , Tricentis. Available from: https://www.tricentis.com/products/copilot/ (2025).
  41. SmartQ Tech Products. , SmartQ Technologies. Available from: https://www.thesmartq.com/smartq-tech-products/ (2025).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Hybrid TestingObservability AutomationGenerative AI TestingSoftware Quality EngineeringTest OrchestrationBlack Box TestingWhite Box TestingLog AnalysisRegression CoverageAnomaly Detection

Related Articles