Estudo de Caso & Engenharia de Qualidade

Além dos Testes Funcionais: Como criei um Framework de Auditoria Web com Java 17, Axe-Core e Google Gemini IA

Flaviana Pina Leitura: 5 min Java 17 • Playwright • Axe-Core • ExtentReports • Gemini 2.5

Na rotina de qualidade de software, é muito comum nos depararmos com esteiras de testes automatizados que cobrem apenas o caminho feliz funcional: "O usuário preencheu o formulário? O botão clicou? O redirecionamento aconteceu? Sucesso!".

Contudo, atuando na intersecção entre Análise de Negócios (BA) e Engenharia de Qualidade (QA), percebi que essa visão deixa de fora aspectos vitais para a saúde da aplicação:

  • Acessibilidade (A11y): Usuários com deficiência visual ou motora conseguem navegar sem barreiras?
  • DevSecOps: O cabeçalho HTTP protege contra sequestro de frames (Clickjacking) e injeção de scripts (XSS)?
  • Performance Real: O Time to First Byte (TTFB) e o First Contentful Paint (FCP) mantêm o usuário engajado?
  • SEO & Metadados: A aplicação é corretamente interpretada por robôs de busca e redes sociais?

Para resolver essa lacuna de ponta a ponta, desenvolvi o qa-audit-toolkit: um framework modular em Java 17 que audita qualquer aplicação web em 9 pilares críticos e utiliza um Agente de IA (Google Gemini 2.5 Flash) para fornecer diagnósticos consultivos automáticos com sugestões de código para correção imediata.

Objetivo Central do Projeto

Capacitar times de tecnologia a executar auditorias contínuas automatizadas em menos de 10 segundos, integrando relatórios interativos ricos (ExtentReports) no GitHub Pages e permitindo intervenção técnica proativa antes do deploy em produção.

1. A Arquitetura em 9 Pilares de Qualidade

O toolkit foi estruturado sobre a robustez do Playwright Java e do JUnit 5, garantindo execuções headless ultra velozes em navegadores baseados em Chromium, Firefox e WebKit:

1. Acessibilidade (Axe-Core)

Injeta a biblioteca Axe-Core no DOM para identificar violações WCAG 2.1 A/AA, categorizadas por impacto (Crítico, Sério, Moderado).

2. DevSecOps & Headers

Inspeciona os headers HTTP (CSP, HSTS, X-Content-Type-Options) e detecta links externos vulneráveis a Reverse Tabnabbing.

3. Performance & Web Vitals

Extrai métricas de tempo em tempo real (TTFB, DOM Interactive, Load Event) via window.performance.timing.

4. SEO & Canonical Tags

Garante integridade de tags Title, Meta Description, Links Canônicos e conformidade de Open Graph.

5. Regressão Visual

Captura screenshots automáticos da viewport para baseline e comparação visual entre sprints.

6. AI Quality Advisor

Serviço inteligente que consome os dados do escaneamento e gera o parecer técnico de remediação.

2. O Diferencial: Agente de IA com Google Gemini (AiAdvisorService)

Relatórios tradicionais de automação mostram apenas o que falhou, mas raramente auxiliam o desenvolvedor ou o analista de negócios a entender como resolver. No qa-audit-toolkit, criei a classe AiAdvisorService conectada à API REST do Google Gemini 2.5 Flash:

public class AiAdvisorService { private static final String GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent"; public String analyzeAuditResults(List<AuditViolation> violations, MetricsSummary metrics) { String prompt = """ Você é um Engenheiro de Qualidade Sênior e Especialista em DevSecOps e A11y. Analise as violações detectadas nesta auditoria web: - Violações WCAG: %s - Headers Ausentes: %s - TTFB: %d ms Gere um diagnóstico conciso contendo: 1. Resumo do impacto no negócio e no usuário; 2. Código exato (snippet) de remediação imediata. """.formatted(violations, metrics.missingHeaders(), metrics.ttfb()); // Chamada assíncrona com timeout e fallback nativo return client.call(prompt); } }

Com essa abordagem, quando uma violação de contraste ou falta de header CSP é detectada, o console e o relatório HTML já trazem a diretiva exata que deve ser aplicada no Nginx, Apache ou no código HTML.

3. Dogfooding na Prática: Auditando Meu Próprio Portfólio

Para comprovar a eficiência do framework, adotei o conceito de Dogfooding: utilizei o qa-audit-toolkit para auditar de forma contínua o meu próprio portfólio (https://flavianapina.com.br).

O resultado é mensurável:

  • Zero Violações Críticas WCAG 2.1 AA: O leitor de tela e as ferramentas assistivas conseguem navegar com 100% de clareza semântica;
  • DevSecOps Blindado: Meta tag CSP configurada, zero links externos com brecha de segurança e honeypot anti-spam funcional;
  • Core Web Vitals Otimizados: Carregamento inicial leve com tempos de resposta de servidor inferiores a 200ms.

4. Experimente a Execução em Tempo Real (Simulador Interativo)

Para ver na prática como o framework se comporta, você pode simular a execução dos testes funcionais com Playwright ou a auditoria completa com o parecer do Gemini IA diretamente aqui no terminal abaixo:

bash - mvn test -DtargetUrl="https://flavianapina.com.br"
[PRONTO]

// Clique em um dos botões acima para iniciar a simulação interativa da suíte...

5. CI/CD e Relatórios Vivos com ExtentReports no GitHub Pages

Nenhuma ferramenta de qualidade subsiste isolada. O toolkit foi desenhado para rodar nativamente em pipelines de CI/CD via GitHub Actions. A cada execução disparada por agendamento ou commit:

  1. A suíte roda o comando mvn test -DtargetUrl="https://flavianapina.com.br";
  2. O motor do ExtentReports compila gráficos interativos em formato HTML;
  3. A pipeline publica o relatório diretamente no GitHub Pages do repositório: flavianapina24.github.io/qa-audit-toolkit .

Conclusão: O Valor Estratégico da Qualidade Holística

Criar o qa-audit-toolkit consolidou a visão que defendo diariamente: qualidade não é apenas encontrar bugs em telas, é construir software acessível, seguro, veloz e focado no usuário.

Ao integrar automação em Java com a inteligência consultiva de Modelos de Linguagem (LLMs), conseguimos transformar relatórios frios de falha em verdadeiros planos de ação técnicos, acelerando a entrega contínua dos times de engenharia.

Experimente e Explore o Código

O projeto é totalmente de código aberto e documentado com instruções de execução via Maven e Docker.

Ver Código no GitHub Abrir Relatório Interativo Ir para o Portfólio Principal
Gostou do artigo? Compartilhar no LinkedIn Vamos Conversar