Skip to main content

7. Testgevallen en randgevallen

Dit hoofdstuk bundelt de minimale modulegerichte validatie voor Optellen & Aftrekken (simpel). De centrale teststrategie blijft vastgelegd in het Technisch Ontwerp; dit hoofdstuk vertaalt het modulegedrag naar concrete modulechecks.

7.1 Configuratievalidatie

TestgebiedMinimale controle
Operation modeAdditionOnly, SubtractionOnly en Both activeren alleen de relevante configuratiedelen.
Invoermodus per getalPer getal wordt alleen de actieve modus verwerkt; niet-actieve waarden worden genegeerd.
UitkomstgrenzenGegenereerde vragen vallen binnen de geconfigureerde uitkomstgrenzen.
VraagcountMinimum, standaard en maximum lopen logisch op en blijven binnen het platformmaximum van 100.
Geen genereerbare vragenOngeldige combinaties worden server-side geweigerd met een functionele foutmelding.

7.2 Docent-randgevallen

SituatieGedrag
Geen actieve modulebeschikbaarheidDe module mag niet in de generieke modulekeuze verschijnen voor reguliere docenten wanneer ExerciseModules.IsActive = false, tenzij de gebruiker via testcontext toegang heeft op basis van IsVisibleForTesting.
Geen bewerkrecht op niveau/categorieDe configuratie mag niet worden opgeslagen; server-side controle blokkeert de actie ook wanneer de frontendknop zichtbaar zou zijn.
Niet-actieve invoermodusDe niet-geselecteerde min/max- of exacte-waardenmodus wordt visueel gedimd en server-side genegeerd.
OperationMode = AdditionOnlyAftrekconfiguratie en balansvelden zijn functioneel niet actief en mogen niet als vereiste configuratie meetellen.
OperationMode = SubtractionOnlyOptelconfiguratie en balansvelden zijn functioneel niet actief en mogen niet als vereiste configuratie meetellen.
OperationMode = BothOptelconfiguratie, aftrekconfiguratie en balansvalidatie zijn actief.
Geen genereerbare vragenOpslaan wordt server-side geweigerd met een functionele foutmelding, omdat de combinatie van bereiken, exacte waarden en uitkomstgrenzen geen geldige vraag oplevert.
Ongeldige aantallenOpslaan wordt geweigerd wanneer minimum, standaard en maximum niet logisch oplopen of wanneer het maximum boven het platformmaximum ligt.
Terug naar overzichtDe view sluit zonder opslag; onopgeslagen wijzigingen worden niet als configuratiepayload bewaard.

7.3 Runtime-states

StateVoorwaardeZichtbare gevolgenOpslaggevolg
InputstateVraag is getoond en nog niet bevestigd.Antwoordveld toont ?; feedback ontbreekt.FirstShownAtUtc is gevuld of wordt bij eerste tonen gevuld.
Correcte feedbackstateAntwoord is bevestigd, modulevalidatie is correct en directe feedback is actief.Gegeven antwoord wordt positief weergegeven met Goed gedaan!.IsCorrect = true, IsCompleted = true, AnsweredAtUtc gevuld.
Foutieve feedbackstateAntwoord is bevestigd, modulevalidatie is fout en directe feedback is actief.Gegeven antwoord wordt negatief weergegeven met Helaas het antwoord was niet goed.IsCorrect = false, IsCompleted = true, AnsweredAtUtc gevuld.
Geen-idee-stateLeerling gebruikt Geen idee.Vraag wordt afgerond zonder correct antwoord; label of resultaatmarkering blijft herkenbaar.IsDunno = true, IsCorrect = false, IsCompleted = true.
Volgende-vraagstateHuidige vraag is verwerkt en er bestaat een volgende vraag.Volgende vraag wordt geladen; voortgang wordt verhoogd.Run- en progressietotalen zijn bijgewerkt.
AfrondingsstateLaatste vraag is verwerkt.Generieke resultatenflow wordt geopend.ExerciseRuns.IsCompleted = true, CompletedAtUtc gevuld en definitieve statistieken berekend.
HervatstateLeerling verlaat de pagina vóór afronding en keert terug via Verder gaan.Eerstvolgende open vraag of huidige niet-afgeronde vraag wordt opnieuw getoond.Run blijft IsCompleted = false; progressie blijft server-side beschikbaar.

7.4 Payload- en hervattests

TestgebiedMinimale controle
ConfiguratiepayloadOpslaan en opnieuw openen levert dezelfde functionele configuratie op.
VraagstateEen gegenereerde vraag kan opnieuw gerenderd worden vanuit opgeslagen state zonder nieuwe randomgeneratie.
AntwoordvalidatieCorrecte, foutieve en niet-numerieke invoer worden consistent verwerkt.
Geen ideeWanneer beschikbaar markeert de actie de vraag als afgerond met IsDunno = true en IsCorrect = false.
HervattenEen niet-afgeronde run toont de eerstvolgende open of huidige niet-afgeronde vraag.
History/PDF/liveModuledata blijft bruikbaar voor resultaatdetail, PDF-context en live meekijken waar de generieke engine deze state toont.