Web Test Automation with Robot Framework
Professional, maintainable UI test suite · Robot Framework 7 + SeleniumLibrary
A complete, hands-on project showing how to structure a professional and maintainable UI test suite. The tests run against SauceDemo, a public e-commerce site widely used for automation practice. The path is end to end: from the login test "Hello World" to advanced end-to-end scenarios, always applying good practices of organization, code reuse and assertions that actually add business value.
Case study
Show, hands-on, how to structure a professional and maintainable UI test suite — one that does not break with every front-end change and validates real business rules, not just clicks.
Page Object pattern in four layers (variables, locators, keywords and tests) against SauceDemo, with data-driven scenarios via Test Template, JavaScript-based keywords for headless stability in the React SPA, and tags for selective execution.
17 automated cases with a 100% pass rate against a real URL — from login to the E2E purchase flow and calculation checks (subtotal + tax = total) — with HTML reports and ready for CI/CD.
Architecture — Page Object pattern
Well-separated responsibilities: if the front end changes, you fix it in just one place.
Variables
URLs, credentials and test data centralized in one place.
Locators
Element selectors kept isolated — if the front end changes, you fix it in just one place.
Keywords
Reusable, readable actions: "Log In", "Complete Purchase".
Tests
Scenarios that combine keywords to validate business rules.
Technical highlights
From the happy path to advanced end-to-end scenarios.
Login tests
Happy path and negative scenarios, validating messages and error behavior.
End-to-End purchase
Full flow: login → cart → checkout → confirmation.
Data-Driven tests
Scenarios parameterized with Test Template for multiple data sets.
Loops and lists
FOR loops and list handling with the Collections library.
Business rules
Validation of real calculations (subtotal + tax = total) and programmatic sorting of listings.
Robustness in React SPAs
Click and fill keywords via JavaScript to run reliably in headless mode.
HTML reports
Automatic log and report generation, with tag support for selective execution.
CI/CD ready
17 automated cases, 100% pass rate against a real URL — ready to plug into pipelines.
Cypress — E2E Test Automation
E2E suite organized as a learning path · Cypress + JavaScript
An end-to-end test automation project built with Cypress, focused on good practices and didactic clarity. More than a test suite, the repository is organized as a learning path: each framework concept is isolated in a commented, runnable and independent test file, serving as a reference both for study and for producing technical content (blog and videos). The goal is to show mastery of Cypress and automation fundamentals — readable, stable and easy-to-maintain tests.
Case study
Build a Cypress reference that works both for study and for producing technical content (blog and videos), with readable, stable and easy-to-maintain tests.
Repository organized as a learning path: each concept isolated in a commented, runnable and independent file, with a data-cy strategy, custom commands, fixtures and cy.intercept.
7 themed suites, from the anatomy of a test to network interception, with configuration, specs, fixtures and support cleanly separated, plus run videos for documentation and knowledge sharing.
7 themed suites — one per concept
Each framework concept isolated in a commented, runnable and independent file.
Anatomy of a test
describe, it and hooks — the basic structure of a spec.
Locators / selectors
Recommended order of preference and why to avoid brittle selectors.
Actions and interactions
type, click, check, select and clear.
Assertions
Implicit and explicit, with automatic retry-ability (auto-retry).
Fixtures and data-driven
Data-driven tests from reusable fixtures.
Network interception
cy.intercept to spy on and stub HTTP requests.
Custom commands
data-cy strategy and custom commands (cy.getByData, cy.login, cy.preencher) to reduce duplication.
Organized architecture
Configuration, specs, fixtures and support layer cleanly separated.
Video recording
Video of test runs for documentation and knowledge sharing.
Gigaverse3D learnCode
Terminal courses that teach real programming · by Gigaverse3D
Learn by doing and seeing it happen. For each chapter, the app shows the code → discusses the concepts → actually runs it on your machine, displaying the real output right in the terminal. What you read is exactly what runs. Each chapter brings theory, commented code, live execution, a hands-on challenge and a quiz, with gamification and automatically saved progress.
Case study
Learning to program by doing and seeing it happen: making what the student reads exactly what runs, without leaving the terminal.
A terminal app (Node.js, TypeScript and Ink) that, for each chapter, shows the code → discusses the concepts → actually runs it (javac/java, python3, Vitest, Supertest and Playwright), with theory, a hands-on challenge and a quiz.
Three courses: Java (all 25 Deitel chapters), Python (Think Python + Functional Module) and Testing (unit, integration and E2E pyramid), with gamification and automatically saved progress.
learnCode: Java
Hands-on course covering all 25 chapters of the Deitel classic — "Java: How to Program" (10th ed.). Compiles with javac and runs with java, showing the real output. The JavaFX and JDBC chapters get didactic console equivalents (events, MVC, CRUD/SQL), and concurrency uses real JDK threads.
learnCode: Python
Based on "Think Python" (2nd ed.) with a dedicated Functional Module. Really runs python3 and shows the real output. Covers everything from procedural fundamentals to OOP and functional programming, with a "study by paradigm" filter, XP and progress saved in ~/.gigaverse-learncode/.
learnCode: Testes
Automated testing guided by the test pyramid: unit, integration and E2E. Runs the real runners (Vitest, Supertest + Express and Playwright) and shows the suite turn 🟢 or 🔴. Covers AAA, mocks/spies, coverage, TDD, API testing and CI organization — against a real sample system.
Watch the videoAllert
Anticipating and reporting natural disasters in real time · Android (Java) with its own REST backend
Allert connects people on the street (citizens) with those who coordinate the response (Civil Defense), on top of a live map showing what is happening right now — floods, landslides, wildfires, fires and more. The user's role (defined in the JWT token) decides screens and permissions: the citizen reports incidents, follows areas and asks for help; the agency tracks the reports, edits the risk map and issues alerts to the population.
Case study
During floods, landslides, wildfires and fires, connect people on the street (citizens) with those coordinating the response (Civil Defense), with information about what is happening right now.
Android app (Java) with its own REST backend (Node.js + Express, SQLite); the role in the JWT decides screens and permissions; alerts via SSE in a foreground service, targeted by proximity, plus a rain layer via Open-Meteo.
A live map: citizens report, follow areas and trigger SOS; the agency edits the risk map and issues alerts; alerts reach the phone even outside the app, only for people in the affected zone, and the community confirms reports.
For citizens
Detailed report (type, camera photo, GPS) or an automatic report of an emergency in a few taps. Risk map, per-area feed, tracking of your own reports and an SOS with quick dial (Civil Defense 199, Fire Department 193, SAMU 192, Police 190) and location sharing.
For the agency
List of reports (completed/not completed, with attachments) and completion marking, an editable risk map (create/edit/remove areas) and alert issuing by area, type and coverage radius for the population.
Real time (where most of the engineering went)
Alert push via SSE: a foreground service keeps a Server-Sent Events channel always open — the alert reaches the phone even outside the app, with no waiting. Proximity targeting: only people in the affected zone (radius + margin) are notified, based on real location. A near-real-time rain layer via Open-Meteo draws the coverage radius on the map colored by flood risk, and "live" reports are confirmed by the community, keeping the map updated by the crowd itself.
PokéWorld Online
(working title) — 3D creature-catching MMORPG · by Gigaverse3D
An open-world 3D monster-catching MMO — from server to world. A stylized "clay/toy" diorama world, with original-IP creatures and lore. Unlike a facade prototype, the hardest part of an MMO is already standing: an authoritative server, a persistent world, synced in real time across multiple players and validated against cheating on the server side.
Case study
Build the hardest part of an MMO — not a facade prototype: a persistent world, synced in real time across multiple players and protected against cheating.
Authoritative server in Spring Boot + WebSocket, PostgreSQL (Flyway) and Redis, orchestrated with Docker; the Godot 4.4 C# client only renders and sends intents, with every system procedural in code.
Movement, collisions, encounters and capture validated and persisted on the server, with the world state broadcast at 10 Hz: players see each other on the same map, 20 creatures with evolution and full save/load.
What the game already has
Real systems, all procedural in code — not a facade.
Explorable 3D world
Multiple maps connected by portals and trails, with cities, Pokémon Center, Shop and Gyms with leaders and badges.
Real-time 3D battles
Attack, a special move that charges SP, dash dodge and Pokéball capture — agile, responsive combat.
20 creatures with evolution
3D creatures with real levels, XP and evolution. Own lore and identity, inspired by the monster-tamer genre.
Day/night cycle and weather
Dynamic weather (rain, fog, snow, drought…) and a day/night cycle that affect the world's encounters.
Real-time multiplayer
Players see each other walking on the same map. Chat, trainer profile, minimap and integrated world map.
Authoritative server
The backend validates and persists everything — movement, collisions, encounters, capture — broadcasting the world state at 10 Hz. Full save/load.
This site is tested
As a Quality Engineer, I apply here what I advocate at work: every push and pull request goes through an automated suite of 697 tests before it goes live.
End-to-end with Playwright
Every page, in Portuguese and English, loads with no JavaScript errors or broken resources. Search, filters, quiz, self-assessment, theme, language switch and the contact form are exercised on desktop and on a phone (Pixel 7).
Accessibility with axe
The main pages are audited against WCAG 2 A/AA in both languages and both themes (light and dark); any serious or critical violation fails the build.
Visual regression
Key screens are compared screenshot by screenshot, with baselines generated in the official Playwright image so the comparison is reproducible.
Continuous integration
GitHub Actions validates the HTML, checks that the English version and the search index are up to date, verifies internal links offline and publishes the Playwright report on every run.
Comments
What people say about the projects. Want to leave yours? Use the form below — every message goes through moderation before appearing here.