

Ao longo dos últimos 11 anos nesta indústria, aprendi que, enquanto verifica cada linha de código e escreve um plano de testes para encontrar bugs no seu código, a sua concorrência já lançou tipicamente duas ou três versões do seu software e recebeu feedback de utilizadores reais. Por exemplo, em maio de 2023, quando precisávamos de testar uma plataforma de cripto antes da sua listagem na Binance, tivemos de executar uma bateria de testes 48 horas antes da data de listagem. Como 5 Engenheiros de QA não conseguiam testar todos os casos de teste devido ao limite físico do que uma pessoa pode fazer em 48 horas, usámos um agente de IA para gerar casos de teste para um projeto tão grande pela primeira vez. Executámos 2800 testes durante a noite e encontrámos 47 bugs importantes que não teriam sido descobertos até 1 semana após o lançamento do nosso produto; portanto, os testes automatizados evoluíram de uma simples ferramenta de automação para um ativo estratégico.
À medida que a indústria de testes de software muda, as empresas que integram IA nos seus processos de QA estão a reduzir os ciclos de lançamento em 40-60% e a alcançar mais de 85% de cobertura de testes. A escrita manual tradicional de scripts para Selenium ou Playwright não consegue satisfazer as exigências das tecnologias Agile em rápida mudança, e as empresas estão a adotar rapidamente a IA devido a estes dois fatores:

No desenvolvimento de criptomoedas, onde o tempo é crítico para o sucesso do projeto; se houver atrasos ou erros na conclusão de todos os testes necessários para a produção, perderá dinheiro. Durante a queda repentina da Solana DEX em outubro de 2024, a nossa IA completou os testes de regressão de todos os módulos principais em 12 minutos e não identificou defeitos relacionados com os nossos sistemas, onde uma verificação manual de uma pessoa teria demorado 4 a 6 horas, altura em que a confiança do utilizador teria sido perdida.
A IA difere da automação de testes tradicional porque não é um conjunto de regras "se X então Y"; a IA utiliza redes neuronais para aprender a reconhecer e identificar padrões e anomalias e recomendar a ação adequada. Transicionámos de "executores robóticos" para "analistas robóticos", onde os robôs podem avaliar de forma impactante uma determinada tarefa usando os seus cérebros eletrónicos.
O teste automatizado é um tipo de automação que permite que uma aplicação de software teste outra aplicação de software; estes testes são tipicamente realizados com scripts, que incluem ações que o teste automatizado irá realizar, como iniciar uma aplicação web, inserir o ID e a palavra-passe do utilizador, clicar em botões e garantir que o utilizador é levado para a página inicial após o login. Todos estes tipos de testes poupam uma quantidade considerável de tempo em comparação com a realização manual.
A IA fornece um elemento de inteligência. O sistema adapta-se e faz mais do que executar ações pré-escritas ou operar com ações conhecidas. Um teste padrão (que usa um componente de UI) falhará se o botão "Login" na aplicação for alterado para "Sign in", enquanto uma solução de IA será capaz de encontrar o mesmo elemento com base no contexto. Para o processo de geração de autotestes, a rede neuronal serve três funções:
Existem duas abordagens principais para automatizar com IA:
As soluções híbridas incorporam testes baseados em regras e gerados por IA, onde haverá uma combinação de testes escritos manualmente e, em seguida, testes automáticos de IA para o equilíbrio.
O exemplo seguinte demonstra o uso de Playwright e GPT-4 IA em ASCN.AI para testar APIs de blockchain. O sistema gera dados positivos e negativos para pedidos feitos a um endpoint de API, analisa a resposta e captura registos. Testar novos endpoints requer menos de 30 segundos, com os programadores a realizar apenas a verificação e execução após o teste.
É importante perceber que o testador não é substituído pela IA, mas sim, a IA remove atividades mundanas e garante resultados consistentes. O foco do trabalho de QA é agora identificar uma estratégia, prioridades e avaliar o risco para o negócio.
Primeiro, realizaremos uma auditoria manual dos testes e processos que são maioritariamente realizados manualmente, que seriam geralmente testes de regressão — verificar se todas as funções que funcionavam anteriormente ainda funcionam como esperado. Tipicamente, é aqui que obterá o maior benefício através da automação.
Os passos a seguir são os seguintes:
Com a IA, pode ter ainda mais facilidade em alcançar a automação de testes. Basta escrever os seus requisitos em termos humanos quotidianos e o GPT gerará automaticamente o código necessário para o teste. Além disso, pode ter 20 a 30 casos de teste simples gerados em menos de uma hora, em oposição a vários dias para executar manualmente todos os testes.
Como exemplo, na ASCN.AI usámos recentemente este método para construir um Arbitrage Trading Scanner, onde as entradas de câmbio são alteradas a cada vez devido a atualizações frequentes de API por essas bolsas. Ao usar um agente de IA para ler a documentação, criar um pedido de API e verificar a resposta da API com base nas expectativas antes de fazer o pedido, conseguimos diminuir o número de falhas críticas de 12 por mês para 2 por mês.
Também vale a pena notar que os testes exploratórios são feitos manualmente para encontrar defeitos ocultos, que podem incluir coisas como abrir ou fechar 50 separadores do navegador ou inserir um emoji num campo de entrada numérica. Embora a IA seja capaz de identificar exemplos comuns, os humanos continuarão a testar falhas fora dos parâmetros esperados.
De acordo com a pirâmide de testes do Google, os níveis recomendados de cobertura de testes incluem 60% de unidade, 30% de integração e 10% de testes de ponta a ponta.
Quando se trata de frameworks de automação de navegador, o Selenium é provavelmente o mais popular e histórico. Existe há muito tempo, funciona em todos os principais navegadores (Chrome, Firefox, Safari, Edge) e suporta várias linguagens de programação. O Selenium permite imitar ações do utilizador, como clicar, digitar texto, verificar texto, etc.
Uma das razões pelas quais o Selenium pode ser tão frágil, ou seja, os testes podem falhar facilmente, é que quando uma alteração é feita no DOM HTML, os "localizadores" usados para identificar objetos na página devem ser atualizados, o que pode tornar-se uma tarefa árdua de acompanhar. O uso de IA ajudará no desenvolvimento de "localizadores inteligentes". Em vez de precisar de depender de um link exato para o ID de um botão, poderia deixar a IA encontrar um objeto por contexto; analisando logicamente o tipo de objeto, onde está localizado na página e qualquer texto contido nele ou à sua volta. O uso de localizadores inteligentes diminuirá a fragilidade dos testes do Selenium e reduzirá o esforço de manutenção necessário. Um exemplo de quão bem o Selenium e o GPT (Generative Pre-training) podem trabalhar juntos é gerar código a partir de uma descrição de texto simples para verificar se um endereço de email está num formulário; uma tarefa que pode demorar aproximadamente 5 a 7 vezes mais quando feita manualmente.
Na ASCN.AI, conseguimos concluir testes de fumo para mais de 200 páginas de um painel de administração de uma bolsa de criptomoedas em apenas 3 dias, enquanto os testes manuais teriam demorado um mês a serem concluídos. Infelizmente, o Selenium não consegue automatizar os testes de certas tecnologias web; como Canvas, WebGL e aplicações de página única (SPAs) complexas. Nesses casos, recomenda-se o uso do Playwright.
Playwright é uma nova ferramenta desenvolvida pela Microsoft especificamente para trabalhar com SPAs. Oferece excelente estabilidade, sessões multi-separador e espera automática por elementos. Em termos de velocidade e fiabilidade, na maioria das situações, é mais rápido e fiável do que o Selenium.
A combinação do framework Playwright que inclui as funcionalidades da plataforma GPT permite que os testes sejam gerados automaticamente. Após o estudo da página, o agente de IA cria os cenários, como adicionar ao Carrinho de Compras e fazer um pedido num teste.
Por exemplo, usando o GPT, um teste Playwright foi gerado para verificar a colocação de pedidos num website em 15 segundos. Mais de 150 testes são executados diariamente para uma aplicação React com componentes assíncronos usando Playwright.
Se tiver documentação Swagger/OpenAPI, pode pedir ao GPT para gerar testes para verificar os códigos de estado e respostas apropriados para todos os pedidos, o que poderia poupar uma semana de esforço manual. Limitações: atualmente, o Playwright AI não oferece testes para aplicações móveis nativas. Em alguns casos, os seletores precisarão de ser ajustados manualmente para uso com componentes personalizados.
O teste automatizado é uma prática de trabalho em que todos os testes são executados automaticamente após cada commit. Se os testes falharem, o código não será implementado em produção. O trabalho que está a ser realizado é aprimorado com a "inteligência" fornecida pela IA.
Na ASCN.AI, o GitLab CI é utilizado para executar linters, executar testes unitários e, em seguida, lançar agentes de regressão de IA com Playwright, configurando-o para executar mais de 200 testes durante um período de seis meses. Isso permitiu à ASCN.AI prevenir mais de 14 bugs críticos. No entanto, é vital que a infraestrutura seja mantida adequadamente em termos de execução paralela e fornecimento de novas tentativas para testes instáveis. Se não for feito, o risco é que os testes falhem, as expectativas não sejam cumpridas e qualquer economia de tempo seja anulada, pois estará a gastar recursos para reparar os testes.
A IA reconhece os requisitos muito bem. A IA analisará o código para gerar automaticamente um conjunto de cenários de teste para cada requisito. Por exemplo, a IA geraria cenários para testar uma função de redefinição de palavra-passe de email com base nos requisitos para verificar a "correção" de um email, o tempo de validade de um link de email e a reutilização de um link de email, etc.
Quando a ASCN.AI estava a monitorizar as taxas de financiamento, a IA conseguiu gerar mais de 80 casos de teste em 2 horas, em comparação com a 1 semana que uma pessoa demorou para gerar os mesmos casos de teste manualmente! A IA tem o benefício de reconhecer gargalos comuns e motivos de segurança (por exemplo, SQL Injection e XSS), mas não tem uma compreensão completa da lógica de negócio, o que significa que ainda precisará de adicionar casos de limite específicos manualmente.
A automação de IA pode ajudar em muitos dos processos de planeamento, análise de registos, criação de relatórios e gestão de dados de teste, além da execução de testes:
A utilização de conjuntos de dados sintéticos sobre um tamanho de amostra representativo (10.000 tokens) com uma distribuição de padrões permitiu-nos identificar potenciais problemas de desempenho antes do lançamento. Para facilitar o uso produtivo da tecnologia de IA, é necessário estabelecer uma referência histórica que consiste em aproximadamente 3 a 6 meses de esforço colaborativo entre humanos e computadores. Embora os modelos de aprendizagem automática pré-treinados possam ser imediatamente empregados para gerar casos de teste relativamente simples e alcançar a cobertura desejada.
As redes neuronais são capazes de alcançar três objetivos principais no que diz respeito aos testes automatizados:
Na ASCN.AI, os algoritmos de rede neuronal podem realizar as seguintes funções: refatorar mais de 300 testes automatizados legados em menos de 3 dias; remover 47 testes automatizados duplicados; eliminar um mês de esforço manual na realização de manutenção em testes automatizados legados. No entanto, é importante notar que as redes neuronais não possuem qualquer compreensão das regras de negócio; portanto, é essencial que os requisitos sejam claros.
| Ferramenta | Tipo | Prós | Contras | Preço | Melhor Caso de Uso |
|---|---|---|---|---|---|
| Testim.io | Plataforma de Testes de UI | Testes dinâmicos e capacidade de acomodar diferentes frameworks como React, Angular e Vue | Custo mensal elevado (450€+) e capacidades limitadas para testes de API | 450€+ por mês | eCommerce e SaaS |
| Mabl | Plataforma NoCode | O utilizador pode criar testes sem código e pode integrar com CI/CD | Capacidade limitada de personalização | A partir de 99€/mês | Utilizadores que precisam de ganhar experiência com automação |
| Applitools | Testes Visuais | Análise de contorno visual incrível, independentemente da pilha tecnológica | Muito caro e complexo para iniciantes | A partir de 1.000€/mês | Aplicações onde a aparência visual é crítica |
| Selenium | Suite de Automação | Plataforma de código aberto gratuita e completa | Curva de aprendizagem acentuada, falta de ferramentas de visualização | Gratuito | Equipas que desejam automatizar toda a pilha |
| ASCN.AI NoCode | Plataforma NoCode | Integração de Agente de IA com Telegram/CRM/API | Produto jovem, a construir a base de dados de conectores | A partir de 29€/mês | Automação de QA e processos de negócio |
| GitHub Copilot | Assistente de Código | Funcionalidade de preenchimento automático dentro de IDEs | Não executará os testes por si | 10€/mês | Acelerar a criação de testes unitários |
Existem quatro fases no processo:
Usar algum tipo de prompt executado para gerar casos de teste através de uma autenticação de dois fatores via SMS gerará todos os cenários que poderiam ser executados, incluindo ser bloqueado devido à inserção de um código incorreto ou ao tempo limite do processo. O Jira tem inteligência artificial (IA) incorporada e, portanto, pode gerar novos casos de teste em tempo real quase imediatamente usando IA. A duração entre a indicação de tarefas e a produção de casos de teste foi reduzida de alguns dias para apenas alguns minutos.
O próximo passo é uma forma impulsionada por IA de analisar a eficiência dos testes e otimizar os testes. A IA pode detetar testes ineficazes através de:
Desde o uso de IA na ferramenta de testes ASCN.AI, eliminámos com sucesso redundâncias e testes obsoletos da suite de testes e reduzimos o tempo de teste de 45 minutos para 18 minutos sem sacrificar a fiabilidade.
O uso de IA nos processos de QA não é apenas uma tendência, mas também uma necessidade, especialmente à medida que as empresas crescem rapidamente e precisam de produzir produtos mais rapidamente. No entanto, existem alguns prós e contras associados ao emprego de IA.
Benefícios de Usar IA em Testes Automatizados:
Restrições/Limitações:
Caso 1: Testes de Regressão Automatizados para um Site de E-Commerce
Uma plataforma vende 50.000 SKUs com dois lançamentos por semana. Usando testes de regressão manuais, demoraria 3 dias para que a regressão fosse completamente testada. Enquanto a cidade dorme — à noite, o GPT e o Playwright entram, revisam e analisam o código, e produzem casos de teste para o código modificado. Consequentemente, a cobertura total expandiu de 30% para 82%, o tempo de testes de regressão reduziu de 3 dias para 4 horas, e descobrimos 27 bugs antes do lançamento.
Caso 2: Geração de Testes Unitários de Microsserviços de Tecnologia Financeira
20 microsserviços em Node.js sem qualquer teste. Usado hook de pré-commit com GPT para geração de testes unitários, verificação de cobertura e bloqueio de commits se os testes forem inadequados. Após 3 meses de uso desses processos, 78% de cobertura foi alcançada; incidentes de produção caíram 65%. Agora a equipa gasta 10% do tempo em testes em comparação com nenhum anteriormente.
Caso 3: Teste ASCN.AI Durante uma Queda de 10% do Bitcoin no Mercado de Criptomoedas
O Bitcoin caiu 10% em 11 de outubro de 2024. Um agente de IA gerou 50 cenários em 12 minutos para contabilizar a alta volatilidade; testes paralelos mostraram que o sistema continuou a funcionar normalmente, permitindo que os utilizadores tivessem ganhos de arbitragem durante a crise.
Caso 4: Testes de IA num Sistema Bancário Legado
Um Banco Europeu usa um sistema legado COBOL e um frontend web moderno. A tarefa de geração de testes de regressão foi dada ao modelo para analisar dependências atuais e potenciais; o Selenium forneceu automação para execução. Nos testes iniciais, os resultados mostraram que o tempo de teste foi reduzido de 6 semanas para 2 semanas; a frequência de lançamento aumentou três vezes e 14 incidentes foram prevenidos anualmente.
Caso 5: Testes de IA para Cenários Virtuais na Indústria Automóvel
Um fabricante de veículos elétricos produz modelos em condições de estrada extremas. O GPT gera casos de limite com base em leituras de sensores reais; um simulador avalia como o piloto automático reage ao caso. Estima-se que 89 defeitos críticos foram encontrados antes de realizar testes ao vivo com os veículos. Isso economizará 2 milhões de dólares e aproximadamente 70% do tempo.
Os autotestes tradicionais baseiam-se em scripts rígidos e lógicos que exigirão modificação manual sempre que os elementos testados forem alterados na aplicação. Os autotestes baseados em IA são adaptativos; eles modificar-se-ão (se possível) para contabilizar a UI e serão gerados automaticamente, incluindo casos de limite (minimizando o tempo gasto a escrever e manter, aumentando a cobertura e diminuindo a fragilidade). Além disso, cenários básicos e críticos geralmente continuarão a ser escritos manualmente.
As informações contidas neste artigo são de natureza geral e não substituem aconselhamento de investimento, legal ou de segurança. A utilização de assistentes de IA requer uma abordagem consciente e uma compreensão das características de plataformas específicas.