Testscenario’s
Voor alle zes gemaakte routes staat hieronder een scenario. Ik gebruik identifiers uit de lijstresponse, zodat ik bij een detailtest weet welk object ik verwacht. Een request kan meerdere assertions bevatten: 102 assertions betekent dus niet 102 verschillende endpoints.
Deze scenario’s heb ik voor mijn portfolio verder uitgewerkt. In de laatste kolom staat welke resultaten in de screenshots te zien zijn.
| ID | Invoer en stappen | Verwacht resultaat | Bewijs |
|---|---|---|---|
| TC-01 | GET /organisations?pageSize=10&pageNumber=1 | 200; items met organisationId, primaryCode, organisationType en name | Items2: 21/21; screenshot organisations. |
| TC-02 | GET /organisations/{organisationId} uit TC-01 | 200; hetzelfde id en passende organisatiegegevens | Items: 3/9; Items2: 9/9. |
| TC-03 | GET /courses?pageSize=10&pageNumber=1&expand=organisation | 200; paging, courseId, primaryCode, name en organisation | Items2: 23/23; screenshot courses. |
| TC-04 | GET /courses/{courseId} uit TC-03 | 200; dezelfde courseId en passende inhoud | Items2: 12/12. |
| TC-05 | GET /programmes?pageSize=10&pageNumber=1&expand=organisation | 200; paging, programmeId, programmeType, primaryCode en name | Items2: 24/24; screenshot programmes. |
| TC-06 | GET /programmes/{programmeId} uit TC-05 | 200; hetzelfde programmeId en passende inhoud | Items2: 13/13; runnerlabel noemt programme/{id}. |
| TC-07 | Beveiligde route zonder Bearer-token | 401; geen onderwijsdata | Geen los resultaat beschikbaar. |
| TC-08 | Beveiligde route met geldig token zonder benodigde rechten | 403; geen onderwijsdata | Geen los resultaat beschikbaar. |
| TC-09 | Detailrequest met geldig UUID dat niet in de bron bestaat | 404; geen leeg succesobject | Geen los resultaat beschikbaar; code geeft reden om dit te controleren. |
| TC-10 | Lijstrequest met pageSize=1 | 400: 1 staat niet in de gebruikte PageSize-enum | Geen los resultaat beschikbaar. |
| TC-11 | Iedere lijst met pageSize=10; eerste, laatste en volgende pagina | Maximaal 10 items; juiste vlaggen en totalPages; laatste pagina mag minder items hebben | Eerste pagina zichtbaar; overige grenzen niet vastgelegd. |
| TC-12 | Per resource JSON en verplichte velden/type/inhoud controleren | Bijbehorend id; geldige primaryCode; taalwaarden in name | Assertions zichtbaar; volledige schema-check niet vastgelegd. |
| TC-13 | Courses/programmes met primaryCode van bekend product | Alleen passend product van het juiste type | Geen los resultaat beschikbaar. |
| TC-14 | Zelfde productrequest met en zonder expand=organisation | Bij expand juiste geneste organisatie; relatie blijft gelijk | Met expand zichtbaar; vergelijking niet vastgelegd. |
| TC-15 | Dezelfde lijst- en detailrequests twee keer uitvoeren | Identifier blijft voor hetzelfde bronobject gelijk | Geen los resultaat beschikbaar. |
| TC-16 | Verlopen token gebruiken | 401; geen onderwijsdata | Geen los resultaat beschikbaar. |
| TC-17 | pageNumber=0, -1 en tekst; detail-id met ongeldig formaat | Gecontroleerde clientfout, geen 500 of onbedoelde query | Voorgestelde controle; niet vastgelegd. |
| TC-18 | Testdata met ontbrekende beschrijving of korte SKU | Afgesproken fout/lege waarde; geen ongecontroleerde exception | Voorgestelde controle; niet vastgelegd. |
De bestaande testtekst gebruikte een algemeen veld id en verwachtte bij pageSize=1 precies één item. Dat past niet bij de aangetroffen DTO’s en PageSize-enum. Daarom gebruik ik nu courseId, programmeId en organisationId, en is pageSize=1 een negatieve test.