Automação de Testes Web com Robot Framework
Suíte de testes de interface profissional e sustentável · Robot Framework 7 + SeleniumLibrary
Projeto didático e completo que demonstra, na prática, como estruturar uma suíte de testes de UI profissional e sustentável. Os testes rodam contra o SauceDemo, um e-commerce público amplamente usado para práticas de automação. O caminho é completo: do "Hello World" do teste de login até cenários avançados de ponta a ponta, sempre aplicando boas práticas de organização, reaproveitamento de código e validações que de fato agregam valor ao negócio.
Estudo de caso
Mostrar, na prática, como estruturar uma suíte de testes de UI profissional e sustentável — que não quebre a cada mudança no front e valide regras de negócio de verdade, não só cliques.
Padrão Page Object em quatro camadas (variáveis, locators, keywords e testes) contra o SauceDemo, com cenários data-driven via Test Template, keywords via JavaScript para estabilidade em headless na SPA React e tags para execução seletiva.
17 casos automatizados com 100% de aprovação contra URL real — do login ao fluxo E2E de compra e à validação de cálculos (subtotal + imposto = total) —, com relatórios HTML e pronto para CI/CD.
Arquitetura — padrão Page Object
Responsabilidades bem separadas: mudou o front, ajusta-se em um só lugar.
Variáveis
URLs, credenciais e dados de teste centralizados em um só lugar.
Locators
Seletores dos elementos isolados — mudou o front, ajusta-se em um só lugar.
Keywords
Ações reutilizáveis e legíveis: "Fazer Login", "Finalizar Compra".
Testes
Cenários que combinam keywords para validar regras de negócio.
Destaques técnicos
Do caminho feliz aos cenários avançados de ponta a ponta.
Testes de login
Caminho feliz e cenários negativos, validando mensagens e comportamento de erro.
Compra End-to-End
Fluxo completo: login → carrinho → checkout → confirmação.
Testes Data-Driven
Cenários parametrizados com Test Template para múltiplos conjuntos de dados.
Loops e listas
Loops FOR e manipulação de listas com a biblioteca Collections.
Regras de negócio
Validação de cálculos reais (subtotal + imposto = total) e ordenação programática de listagens.
Robustez em SPAs React
Keywords de clique e preenchimento via JavaScript para rodar de forma estável em headless.
Relatórios em HTML
Geração automática de log e report, com suporte a tags para execução seletiva.
Pronto para CI/CD
17 casos automatizados, 100% de aprovação contra URL real — prontos para integração em pipelines.
Cypress — Automação de Testes E2E
Suíte E2E organizada como trilha de aprendizado · Cypress + JavaScript
Projeto de automação de testes end-to-end construído com Cypress, com foco em boas práticas e clareza didática. Mais do que uma suíte de testes, o repositório é organizado como uma trilha de aprendizado: cada conceito do framework é isolado em um arquivo de teste comentado, executável e independente, servindo de referência tanto para estudo quanto para a produção de conteúdo técnico (blog e vídeos). O objetivo é demonstrar domínio do Cypress e dos fundamentos de automação — testes legíveis, estáveis e de fácil manutenção.
Estudo de caso
Ter uma referência de Cypress que sirva tanto para estudo quanto para a produção de conteúdo técnico (blog e vídeos), com testes legíveis, estáveis e de fácil manutenção.
Repositório organizado como trilha de aprendizado: cada conceito isolado em um arquivo comentado, executável e independente, com estratégia data-cy, custom commands, fixtures e cy.intercept.
7 suítes temáticas, da anatomia de um teste à interceptação de rede, com configuração, specs, fixtures e suporte bem separados e vídeo das execuções para documentação e divulgação.
7 suítes temáticas — uma por conceito
Cada conceito do framework isolado em um arquivo comentado, executável e independente.
Anatomia de um teste
describe, it e hooks — a estrutura básica de uma spec.
Locators / seletores
Ordem de preferência recomendada e o porquê de evitar seletores frágeis.
Ações e interações
type, click, check, select e clear.
Asserções
Implícitas e explícitas, com retentabilidade automática (auto-retry).
Fixtures e data-driven
Testes orientados a dados a partir de fixtures reutilizáveis.
Interceptação de rede
cy.intercept para spy e stub de requisições HTTP.
Comandos customizados
Estratégia data-cy e custom commands (cy.getByData, cy.login, cy.preencher) para reduzir duplicação.
Arquitetura organizada
Configuração, specs, fixtures e camada de suporte bem separadas.
Gravação de vídeo
Vídeo das execuções para documentação e divulgação do conhecimento.
Gigaverse3D learnCode
Cursos de terminal que ensinam a programar de verdade · por Gigaverse3D
Aprender fazendo e vendo acontecer. Para cada capítulo, o app mostra o código → discute os conceitos → roda de verdade na sua máquina, exibindo a saída real ali no terminal. O que você lê é exatamente o que roda. Cada capítulo traz teoria, código comentado, execução ao vivo, desafio prático e quiz, com gamificação e progresso salvo automaticamente.
Estudo de caso
Aprender a programar fazendo e vendo acontecer: fazer com que o que o aluno lê seja exatamente o que roda, sem sair do terminal.
App de terminal (Node.js, TypeScript e Ink) que, a cada capítulo, mostra o código → discute os conceitos → roda de verdade (javac/java, python3, Vitest, Supertest e Playwright), com teoria, desafio prático e quiz.
Três cursos: Java (os 25 capítulos do Deitel), Python (Pense em Python + Módulo Funcional) e Testes (pirâmide de unidade, integração e E2E), com gamificação e progresso salvo automaticamente.
learnCode: Java
Curso prático com os 25 capítulos do clássico Deitel — "Java: Como Programar"
(10ª ed.). Compila com javac e executa com java, exibindo a saída real.
Os capítulos de JavaFX e JDBC ganham equivalentes didáticos em console (eventos, MVC, CRUD/SQL), e
concorrência usa threads reais do JDK.
learnCode: Python
Baseado em "Pense em Python" (2ª ed.) com um Módulo Funcional dedicado. Executa
python3 de verdade e exibe a saída real. Cobre dos fundamentos procedurais à OO e à
programação funcional, com filtro de "estudar por paradigma", XP e progresso salvo em
~/.gigaverse-learncode/.
learnCode: Testes
Testes automatizados guiados pela pirâmide de testes: unidade, integração e E2E. Roda os runners de verdade (Vitest, Supertest + Express e Playwright) e mostra a suíte ficar 🟢 ou 🔴. Cobre AAA, mocks/spies, cobertura, TDD, testes de API e organização para o CI — contra um sistema de exemplo real.
Assistir ao vídeoAllert
Antecipar e relatar desastres naturais, em tempo real · Android (Java) com backend REST próprio
O Allert conecta quem está na rua (o cidadão) com quem coordena a resposta (a Defesa Civil), em cima de um mapa vivo que mostra o que está acontecendo agora — alagamentos, deslizamentos, queimadas, incêndios e mais. O papel do usuário (definido no token JWT) decide telas e permissões: o cidadão relata ocorrências, segue áreas e pede socorro; a autarquia acompanha os relatos, edita o mapa de risco e emite alertas para a população.
Estudo de caso
Em alagamentos, deslizamentos, queimadas e incêndios, conectar quem está na rua (o cidadão) com quem coordena a resposta (a Defesa Civil), com informação do que está acontecendo agora.
App Android (Java) com backend REST próprio (Node.js + Express, SQLite); o papel no JWT decide telas e permissões; alertas por SSE em um foreground service, direcionados por proximidade, e camada de chuva via Open-Meteo.
Um mapa vivo: o cidadão relata, segue áreas e aciona SOS; a autarquia edita o mapa de risco e emite alertas; o alerta chega ao celular mesmo fora do app, só para quem está na zona afetada, e a comunidade confirma os relatos.
Para o cidadão
Relato detalhado (tipo, foto da câmera, GPS) ou relato automático de urgência em poucos toques. Mapa de risco, feed por área, acompanhamento dos próprios relatos e um SOS com discagem rápida (Defesa Civil 199, Bombeiros 193, SAMU 192, Polícia 190) e compartilhamento de localização.
Para a autarquia
Lista de relatos (concluídos/não concluídos, com anexos) e marcação de conclusão, mapa de risco editável (criar/editar/remover áreas) e emissão de alertas por área, tipo e raio de cobertura para a população.
Tempo real (onde mais entrou engenharia)
Push de alerta via SSE: um foreground service mantém um canal Server-Sent Events sempre aberto — o alerta chega ao celular mesmo fora do app, sem espera. Direcionado por proximidade: só é notificado quem está na zona afetada (raio + margem), pela localização real. Camada de chuva quase em tempo real via Open-Meteo desenha no mapa o raio de cobertura colorido pelo risco de alagamento, e relatos "ao vivo" são confirmados pela comunidade, mantendo o mapa atualizado pela própria multidão.
PokéWorld Online
(título provisório) — MMORPG de captura de criaturas em 3D · por Gigaverse3D
Um MMO open-world de captura de monstros em 3D — do servidor ao mundo. Mundo estilizado em formato de diorama "clay/toy", com criaturas e lore de IP original. Diferente de um protótipo de fachada, a parte mais difícil de um MMO já está de pé: servidor autoritativo, mundo persistente, sincronizado em tempo real entre vários jogadores e validado contra trapaça no lado do servidor.
Estudo de caso
Construir a parte mais difícil de um MMO — não um protótipo de fachada: mundo persistente, sincronizado em tempo real entre vários jogadores e protegido contra trapaça.
Servidor autoritativo em Spring Boot + WebSocket, PostgreSQL (Flyway) e Redis, orquestrados com Docker; o cliente em Godot 4.4 com C# só renderiza e envia intenções, com sistemas todos procedurais em código.
Movimento, colisões, encontros e captura validados e persistidos no servidor, com o estado do mundo transmitido a 10 Hz: jogadores se veem no mesmo mapa, 20 criaturas com evolução e save/load completo.
O que o jogo já tem
Sistemas reais, todos procedurais em código — não é fachada.
Mundo 3D explorável
Vários mapas conectados por portais e trilhas, com cidades, Centro Pokémon, Loja e Ginásios com líderes e insígnias.
Batalhas 3D em tempo real
Atacar, golpe especial que carrega SP, esquiva com dash e captura com Pokébola — combate ágil e responsivo.
20 criaturas com evolução
Criaturas 3D com níveis, XP e evolução reais. Lore e identidade próprias, inspiradas no gênero monster-tamer.
Ciclo dia/noite e clima
Clima dinâmico (chuva, névoa, neve, seca…) e ciclo dia/noite que influenciam os encontros do mundo.
Multiplayer em tempo real
Os jogadores se veem andando no mesmo mapa. Chat, perfil de treinador, minimapa e mapa-múndi integrados.
Servidor autoritativo
Backend valida e persiste tudo — movimento, colisões, encontros, captura — transmitindo o estado do mundo a 10 Hz. Save/load completo.
Este site é testado
Como Quality Engineer, aplico aqui o que defendo no trabalho: cada push e pull request passa por uma suíte automatizada de 697 testes antes de ir ao ar.
E2E com Playwright
Todas as páginas, em português e inglês, carregam sem erro de JavaScript nem recurso quebrado. Busca, filtros, quiz, autoavaliação, tema, troca de idioma e formulário de contato são exercitados no desktop e no celular (Pixel 7).
Acessibilidade com axe
As páginas principais são auditadas contra a WCAG 2 A/AA nos dois idiomas e nos dois temas (claro e escuro); qualquer violação séria ou crítica quebra o build.
Regressão visual
Telas-chave são comparadas screenshot a screenshot, com baselines geradas na imagem oficial do Playwright para que a comparação seja reproduzível.
Integração contínua
O GitHub Actions valida o HTML, confere se a versão em inglês e o índice de busca estão em dia, checa os links internos offline e publica o relatório do Playwright a cada execução.
Comentários
O que dizem sobre os projetos. Quer deixar o seu? Use o formulário abaixo — todo recado passa por moderação antes de aparecer aqui.