ENGLISH DESCRIPTION:
A simple Robot Framework Regressiontest I set up as a technical assignment for a job. I'm happy to say that I landed the job with this assignment. Initially I wanted to remove the repository again, but decided to keep it here for the one or two people who stumble upon it and might find it useful. I might also use it myself now and again. Contains a complete frontend testsuite with four testcases, and an API testsuite with three testcases. Can be useful if you quickly want to find keywords that you can use for automation. Some keywords are unique, others are more generic, to be used in other tests. Beware that many of the documentation and the testplan itself is written in Dutch, as it was for a Dutch company.
Geautomatiseerde frontend regressietest voor TestRPG web applicatie
Framework: Robot Framework + Browser Library | Datum: 26 oktober 2025
TestRPG is een web-gebaseerde game waarbij spelers een karakter creëren en door het voltooien van taken levels behalen (max level 5).
🌐 URL: https://test-rpg.vercel.app
🔌 REST API: https://test-rpg.vercel.app/api
- Welkomstbericht met "Click here to play" knop
- Character naam invoer (minimaal 3 karakters)
- Build selectie dropdown (Thief, Mage, etc.)
- Start knop
Vier taken voor level progression:
- Level 1 → 2: Klik 5x op knop
- Level 2 → 3: Upload bestand
- Level 3 → 4: Typ "Lorem Ipsum"
- Level 4 → 5: Beweeg slider naar rechts
- Email validatie (@ met tekst ervoor/erna + suffix)
- Wachtwoord veld (mag niet leeg zijn)
- Login/Logout functionaliteit
TestRPG biedt een REST API voor het ophalen van character builds en statistieken:
GET /api/builds
- Retourneert lijst van beschikbare character builds
- Response: Parameters
GET /api/builds/{buildName}
- Retourneert specifieke build informatie
- Parameter: buildName (Thief, Knight, Mage, Brigadier)
- Response: Build met stats
Negatieve tests:
- ❌ Leeg naam veld → verwacht foutmelding
- ❌ Naam < 3 karakters → verwacht foutmelding
Positieve test:
- ✅ Geldige naam (≥3 karakters) + build selectie → verwacht navigatie naar gameplay
Voor elke taak (Level 1-5):
- Verifieer initiële status (level tekst, avatar, stats)
- Voer taak uit
- Controleer success message
- Verifieer level up (tekst, avatar, stats)
Edge cases bij text input:
- Incorrecte tekst ("Lorem ipsum")
Negatieve tests:
- ❌ Email zonder @ → verwacht foutmelding
- ❌ Email zonder suffix → verwacht foutmelding
- ❌ Leeg wachtwoord → verwacht foutmelding
Positieve test:
- ✅ Geldig email + wachtwoord → verifieer via aanwezigheid "Logout" knop
- Test "Play Again" → verwacht return naar character creation
Endpoint validatie:
- ✅ GET /api/builds → verwacht 200 status + array met 4 builds
- ✅ GET /api/builds/{buildName} → verwacht 200 status + correcte build stats
- ❌ GET /api/builds/Invalid → verwacht dat we de DLC niet hebben.
Data validatie:
- Verifieer de parameters in de builds die worden teruggegeven
- Controleer dat het totale aantal skillpoints correct berekend zijn (max 10)
Gebruikt voor character creation validatie met combinaties van:
- Naam lengte (leeg / <3 / ≥3 karakters)
- Build selectie (geselecteerd)
Gameplay progression: Level 1 → 2 → 3 → 4 → 5
- Verifieer state veranderingen (avatar, tekst, stats)
- Test reset via "Play Again"
REST API endpoints worden getest op:
- Correcte status code
- Juiste parameters (weapon, armor etc.)
- Correct aantal skillpoints
- Lange character namen (>15 karakters) -> UI breekt bij teveel karakters
- Bestand upload zonder restricties -> significante beveiligingsrisico
- Wachtwoord met 1 karakter -> te makkelijk om te breken
De geautomatiseerde regressietest dekt de volgende onderdelen:
Frontend tests (regressietest/.FE/FE.robot):
- ✅ Navigatie & schermverificatie (TC001)
- ✅ Login validatie met beslissingstabeltesten (TC002)
- ✅ Character creation met negatieve en positieve flows (TC003)
- ✅ Gameplay flow voor alle 5 levels met state transitions (TC004)
- ✅ Reset functionaliteit via "Play Again"
REST API tests (regressietest/.REST/REST.robot):
- ✅ GET /api/builds endpoint validatie (TC001)
- ✅ GET /api/builds/{buildName} per build validatie (TC002)
- ✅ 404 error handling voor ongeldige build naam (TC003)
- ✅ Data checks (skillpoints, builds, response codes)
Bevindingen uit Exploratory Testing
- 🔎 UI doet het niet goed meer bij character namen die 15 karakters of meer hebben
- 🔎 Zwakke wachtwoord validatie (1 karakter is toegestaan)
- 🔎 Ongevalideerde bestand upload (security risico)
Issue 1: Ongevalideerde Bestand Upload
- Risico: XSS aanvallen, malware uploads, server toegang
- Aanbeveling: Whitelist toevoegen voor bestanden, limiet op de grootte, scannen voor malware
Issue 2: Zwakke Wachtwoord Vereisten
- Risico: Zeer onveilig (1 karakter = geldig)
- Aanbeveling: Minimaal 10 karakters, 1 hoofdletter, 1 cijfer, 1 speciaal karakter
Issue 3: Character Naam Lengte
- Probleem: Geen maximale lengte → UI breekt bij >15 karakters
- Aanbeveling: Max 15 karakters OF automatische line breaks
Issue 4: Brigadier Build Skillpoints Overschrijding
- Probleem: Brigadier build heeft 11 total skillpoints, terwijl maximum 10 is
- Aanbeveling: Herbalanceer Brigadier stats naar 10 total skillpoints
Issue 5: Login zonder Toegevoegde Waarde
- Probleem: Inloggen biedt geen functionaliteit
- Aanbeveling: Voeg leaderboard toe OF verwijder login feature
Datum: 26 oktober 2025



