A StackSpot AI está transformando a abordagem do desenvolvimento de software de devs e empresas, acelerando processos complexos com o poder da Inteligência Artificial. Neste artigo, vamos explorar como a plataforma facilitou a criação de teste automatizado em legado em .Net Framework.
Neste caso, o time precisava elevar a cobertura de testes de 0% para no mínimo 80% em uma aplicação complexa com tecnologia legada. Para isso, a equipe adotou a StackSpot AI e Jupyter Notebook, resultando em:
- uma redução do tempo de criação de testes unitários de duas horas para três minutos;
- uma cobertura de testes de até 85%, superando a meta.
Essa sinergia não apenas acelerou o desenvolvimento, mas também aumentou a qualidade e confiabilidade da aplicação. Confira a solução no artigo!
Como a StackSpot AI devolve tempo para os times de desenvolvimento
Com o avanço das tecnologias de Inteligência Artificial, a StackSpot AI se posiciona como uma ferramenta essencial para otimizar processos, aumentar a eficiência e reduzir o tempo de desenvolvimento.
Nos últimos anos, a inteligência artificial tem se destacado como uma das principais tendências tecnológicas, impactando diversos setores. Desde a automação de tarefas repetitivas até a análise de grandes volumes de dados, a IA está redefinindo o que é possível no mundo digital.
A StackSpot AI se insere nesse contexto como uma solução que aproveita o poder da IA para oferecer suporte inteligente e personalizado às pessoas desenvolvedoras.
Além disso, a StackSpot AI se diferencia por sua capacidade de integrar-se perfeitamente ao fluxo de trabalho de devs – inclusive oferecendo extensões para as principais IDEs do mercado, indicar sugestões contextuais, exemplos de código e soluções para problemas comuns.
Isso não apenas acelera o processo de desenvolvimento, mas também melhora a qualidade do código produzido. Além disso, a plataforma é projetada para aprender e evoluir com o tempo, tornando-se cada vez mais eficaz à medida que é utilizada.
Quick Command: automatização para simplificar o fluxo de trabalho
Criar um Quick Command (QC) na StackSpot AI é uma estratégia eficiente para automatizar tarefas repetitivas, processos e simplificar o fluxo de trabalho de desenvolvimento. Antes de iniciar o processo de criação, é essencial definir claramente o propósito do Quick Command.
As vantagens de criar um QC são inúmeras. Primeiramente, ele permite a automação de tarefas repetitivas, reduzindo o tempo gasto em atividades manuais e minimizando erros humanos. Além disso, promove a consistência nos processos, garantindo que as tarefas sejam executadas de maneira padronizada, independentemente de quem as realize.
A eficiência também é um benefício significativo, já que as pessoas desenvolvedoras podem executar tarefas complexas com um único comando, liberando tempo para atividades de maior valor.
Inclusive, antes de disponibilizar o Quick Command para uso geral, é fundamental testá-lo para garantir que ele funcione conforme o esperado. Essa etapa de validação é crucial para evitar problemas futuros e assegurar que o comando seja confiável.
Estudo de caso: teste automatizado em legado em .Net com a StackSpot AI
A modernização de sistemas legados com mais de 200 mil linhas de código apresenta desafios significativos, especialmente no que diz respeito à criação de testes unitários.
Para abordar essa questão, foi utilizada uma combinação de ferramentas que otimizam a curadoria de prompts e a execução de testes automatizados: StackSpot AI (especialmente seu recurso Remote Quick Command) e o Jupyter Notebook.
A seguir vamos mergulhar neste caso de criação de testes automatizados em legado em .Net com a StackSpot AI.
Desafio do legado
A maior dor enfrentada foi a necessidade de atingir uma cobertura de 80% da aplicação dentro de um prazo apertado, para uma aplicação que não possuía nenhuma cobertura.
A aplicação, extremamente complexa, é composta por mais de 450 serviços, incluindo controladores, transações diversas, comunicações com mainframe com conectores (como CICs e IMS), integrações com sistemas de telefonia e barra de mídia, com mais de 200.000 linhas de código acumuladas ao longo de mais de 10 anos.
Dada essa complexidade, estimava-se que o trabalho exigiria mais de 11 meses de esforço contínuo da equipe.
Adoção da solução de IA
Para solucionar esse desafio, o time adotou a StackSpot AI, utilizando seus recursos de Remote Quick Command, além de Quick Command e Knowledge Sources, e o Jupyter Notebook.
A seguir, vamos entender melhor como esse case foi arquitetado.


Por meio de scripts no Jupyter Notebook, é extraído os arquivos fontes da aplicação legada por meio do uso de Quick Command e Knowledge Source, criados testes para a aplicação.
StackSpot AI
A StackSpot AI foi empregada para analisar e padronizar o código legado .Net, permitindo a geração de testes unitários com base em padrões previamente definidos na Knowledge Source.
Essa abordagem foi essencial para lidar com a repetitividade e similaridade de trechos de código, reduzindo o esforço manual e garantindo consistência nos testes gerados. A curadoria de prompts desempenhou um papel central nesse processo, sendo ajustada e refinada para melhorar a qualidade dos testes criados.
Remote Quick Command (RQC)
A integração com o Remote Quick Command da StackSpot AI complementou o fluxo de trabalho ao permitir o envio automatizado de arquivos de código para execução remota dos testes gerados.
Essa funcionalidade possibilitou a realização de uma grande quantidade de testes de forma eficiente, com os resultados sendo retornados rapidamente para ajustes imediatos nos prompts e nos scripts gerados.
O envio em lotes de arquivos de código para o Remote Quick Command garantiu que os testes fossem executados em ambientes controlados, aumentando a confiabilidade dos resultados.
Jupyter Notebook
O Jupyter Notebook foi utilizado como ferramenta de orquestração para a curadoria de prompts. Sua interface interativa permitiu ajustes contínuos nos prompts enviados à StackSpot AI, enquanto sua capacidade de executar código em células independentes possibilitou um fluxo de trabalho modular e organizado.
Essa modularidade foi crucial para dividir o código legado em partes menores e mais gerenciáveis, otimizando o processo de geração de testes.
Instalação do Python
Antes de começar, é essencial ter o Python instalado em seu sistema. Após a instalação, é importante verificar se o Python está funcionando corretamente por meio do terminal com o comando python –version.
Configuração do Ambiente Virtual
Para garantir um ambiente isolado e organizado, recomenda-se criar um ambiente virtual. Isso permite gerenciar diferentes dependências e versões de pacotes sem interferir no sistema global.
Após ativar o ambiente virtual, o nome do ambiente será exibido no terminal, indicando que está ativo. É possível alternar entre diferentes ambientes conforme necessário.
Instalação do Jupyter Notebook
Com o ambiente virtual configurado, o próximo passo é instalar o Jupyter Notebook, que pode ser instalado por meio do pip em seu ambiente virtual. Para mais informações sobre o Jupyter Notebook, consulte o site.
Ele será utilizado como ferramenta de orquestração para facilitar a execução de células e a organização de código.
Integração com o VSCode
Para utilizar o Jupyter Notebook no VSCode, é necessário instalar extensões específicas, como a de Jupyter, que permite executar células diretamente no editor; e a extensão Python, que oferece suporte ao kernel Python e integração com ambientes virtuais.
Após configurar o kernel para utilizar o ambiente virtual criado, você poderá executar e depurar células diretamente no editor, aproveitando os recursos avançados de integração e automação.
Solução para teste automatizado em legado
Utilizar Jupyter Notebooks com a StackSpot AI, contando com a integração do Remote Quick Command (RQC), trouxe diversos benefícios para o processo de criação de teste automatizado em legado em .Net.
As vantagens que obtemos são: interatividade, documentação integrada e visualização de dados.
Interatividade
- Benefício: a interatividade dos Jupyter Notebooks permite que devs experimentem e iterem rapidamente sobre o código. Isso é especialmente útil quando se está ajustando prompts ou testando diferentes abordagens para interagir com a StackSpot AI.
- Facilitação da Curadoria: com a capacidade de executar células de código individualmente, devs podem ajustar e testar prompts em tempo real, observando imediatamente como a LLM responde. Isso facilita a curadoria de prompts de Quick Commands mais eficazes e ajustados às necessidades específicas do projeto.
Documentação Integrada
- Benefício: a capacidade de combinar código, texto explicativo e visualizações em um único documento torna os Jupyter Notebooks uma ferramenta poderosa para a documentação.
- Facilitação da Curadoria: ao documentar o processo de criação e ajuste de prompts dentro do notebook, devs podem manter um registro claro e compreensível das decisões tomadas. Isso não só ajuda na curadoria de prompts, mas também na transferência de conhecimento para outras pessoas da equipe ou para futuras iterações do projeto.
Visualização de Dados
- Benefício: a visualização de dados é crucial para entender como a LLM está processando e respondendo aos prompts.
- Facilitação da Curadoria: utilizando bibliotecas de visualização dentro dos notebooks, as pessoas desenvolvedoras podem criar gráficos e visualizações que mostram o desempenho dos prompts, ajudando a identificar padrões ou áreas que precisam de ajustes. Isso permite uma curadoria mais informada e baseada em dados, resultando em melhores retornos ao interagir com a LLM.
Resultados
A sinergia entre essas ferramentas resultou em uma cobertura de testes unitários significativamente alta para uma aplicação legada. A curadoria de prompts no Jupyter Notebook, aliada à automação do Remote Quick Command e à análise da StackSpot AI, criou um fluxo de trabalho robusto e eficiente.
Essa abordagem técnica demonstrou como a integração estratégica de ferramentas pode acelerar processos, melhorar a qualidade dos testes e reduzir o tempo necessário para modernizar sistemas legados.
Com esse estudo de caso de criação de teste automatizado em legado em .Net Framework, o time obteve resultados quantitativos e qualitativos.
Resultados quantitativos
- Redução do tempo de criação de testes unitários de duas horas para três minutos.
- Atingimento de até 85% de cobertura em testes unitários.
Resultados qualitativos
- Diminuição da carga cognitiva de desenvolvimento (realizando a tarefa com menor esforço).
- Aumento da velocidade de desenvolvimento de testes para sistemas legados.
- Aumento da qualidade e confiabilidade da aplicação, por conta da maior cobertura de testes.
Segunda etapa do Estudo de Caso: observabilidade e análise de dados
A segunda fase do projeto focou na geração automatizada de testes unitários com maior cobertura de testes, utilizando dados do Splunk como fonte de observabilidade.
O uso desses dados – com logs, capturados em ambientes de desenvolvimento e homologação – permitiu criar mocks mais precisos e representativos do ambiente real, o que possibilitou a organização de informações estruturadas.
Essa fase buscou elevar o nível de inteligência e autonomia do processo, porém aumentou a complexidade, especialmente em tarefas que exigem manipulação de dados para realizar testes mais alinhados com o ambiente.
Automação de operações fora do escopo da LLM
Embora a LLM seja altamente eficaz na geração de código e curadoria de prompts, há limitações quando se trata de operações que exigem lógica condicional mais complexa, transformação de dados e cálculos matemáticos específicos.
Para suprir essas limitações, o projeto passa a utilizar o Remote Quick Command como mecanismo para executar scripts externos — escritos em Python — diretamente em ambientes controlados. Esses scripts foram responsáveis por organizar, transformar e preparar os dados para serem utilizados nos testes, atuando de forma complementar à LLM.
Entre as bibliotecas empregadas, destaca-se o Pandas e Numpy, fundamentais para o tratamento e a análise de dados tabulares. Com eles, foi possível realizar desde a limpeza de dados (data cleansing) até a agregação, transformação e preparação de datasets simulados com alta fidelidade. Assim, as informações de transações que são complicadas de criar foram extraídas dos dados importados do Splunk.
Resultados da segunda etapa
Essa abordagem resultou em uma cobertura de testes unitários de até 94%, um resultado significativamente maior. No entanto, houve um aumento na complexidade e no tempo necessário para a execução dos testes.
Em contraste, os testes gerados apenas com prompts curados atingiram cerca de 75% de cobertura média, com menor esforço cognitivo e menor necessidade de manipulação de dados ou ajustes posteriores.
Aprendizados com a solução
Tanto os testes baseados em dados de observabilidade quanto os gerados por prompts exigiram poucas correções.
As principais falhas observadas foram referências inexistentes no código e alucinações ocasionais. Além disso, houve registros de testes inacabados, como classes mal formatadas, ausência de fechamento de aspas ou escopos e testes múltiplos sendo retornados de forma conjunta, comprometendo a estrutura esperada.
Em resumo, além dos ganhos em cobertura e qualidade dos testes, o projeto proporcionou uma valiosa experiência prática com o uso de IA generativa e prompts.
A utilização da StackSpot AI se mostrou intuitiva, enriquecedora e acelerou significativamente o processo de criação, especialmente na integração e construção de Remote Quick Commands.
Modernizando sistemas legados com IA: mais qualidade em menos tempo
Através da combinação inovadora de ferramentas como StackSpot AI e Jupyter Notebook, foi possível superar os desafios inerentes à modernização de sistemas legados em .Net.
Essa abordagem não só reduziu o tempo de desenvolvimento, mas também aumentou significativamente a cobertura de testes, garantindo maior qualidade e confiabilidade nos processos.
A implementação de soluções automatizadas, com o uso de Remote Quick Command, destacou-se por sua eficiência e capacidade de otimizar o fluxo de trabalho. Os resultados obtidos evidenciam a eficácia dessa estratégia, demonstrando o valor do uso de tecnologias avançadas na transformação digital de sistemas complexos.
Você também pode usar a StackSpot AI para criar suas soluções como fizemos com teste automatizado em legado, basta criar sua conta com o Google ou Github.
Agora, gostaria de saber sua opinião sobre esse estudo de caso de criação de testes automatizados para sistemas legados em .Net com a StackSpot AI. Deixe um comentário com suas impressões ou dúvidas.
- Conteúdo produzido por Estevan Louzada Souza e Edson Massao