Programma’s plannen, bouwen en testen
Schrijf eisen die je kunt controleren
“Het programma moet goed werken” is een mooi doel, maar vertelt je niet hoe je succes herkent.
Een controleerbare eis verbindt een situatie met een waarneembaar resultaat.
Vergelijk voor het quizprogramma:
Het programma moet antwoorden eerlijk beoordelen.
met:
Negeer spaties aan de buitenkant en hoofdletters bij het vergelijken van antwoorden, maar eis verder dat het volledige antwoord overeenkomt.
De tweede versie geeft je voorbeelden die je kunt testen. " Pacific " komt overeen met "pacific", maar "Pacific Ocean" niet.
Benoem vier onderdelen
Schrijf voor een klein programma het volgende op:
Invoer: waarden die het programma ontvangt.
Uitvoer: waarden die het teruggeeft of tekst die het toont.
Opgeslagen gegevens: waarden die het tijdens het werk moet bewaren.
Regels: beslissingen en berekeningen die invoer met uitvoer verbinden.
Voor het quizprogramma:
| Onderdeel | Beschrijving |
|---|---|
| Invoer | de antwoorden van een cursist |
| Uitvoer | feedback en een eindscore |
| Opgeslagen gegevens | de titel, vraagrecords en huidige score |
| Regels | schoon antwoorden op voordat je ze vergelijkt, wijs lege antwoorden af en tel voor elke overeenkomst één punt op |
Dit is nog geen code. Zie het als een overzicht van de informatie en het gedrag die de code moet weergeven.
Neem ongeschikte en lege gevallen mee
Eisen beschrijven vaak het normale geval en vergeten de rest.
Voor dit project zijn nuttige vragen:
Is een plan met precies drie vragen klaar, of zijn er meer dan drie nodig?
Mag een titel, vraagtekst of verwacht antwoord alleen spaties bevatten?
Wat gebeurt er wanneer twee vraagteksten alleen verschillen in hoofdletters of spaties aan de buitenkant?
Kan de eindscore nul zijn? Kan die gelijk zijn aan het aantal vragen?
Wat moet er gebeuren wanneer de cursist een leeg antwoord indient?
Niet elk programma hoeft elke mogelijke invoer te ondersteunen. Het heeft wel een bewuste afspraak nodig.
Bijvoorbeeld:
Een quizplan voldoet aan de eis voor het aantal vragen wanneer het minstens drie vragen heeft.
Het woord “minstens” bepaalt de grens: precies drie is genoeg. Een ander project zou vijf kunnen kiezen. Het gaat erom het gedrag te kiezen en vast te leggen voordat de code ongemerkt voor jou kiest.
Vermijd onduidelijke woorden
Woorden zoals “snel”, “vriendelijk”, “goed” en “redelijk” vragen om verduidelijking. Ze klinken precies totdat twee mensen ze anders interpreteren.
In plaats van:
Schoon het antwoord goed op.
schrijf je:
Negeer witruimte aan de buitenkant en hoofdletters bij het vergelijken van het antwoord.
In plaats van:
Handel lege antwoorden behulpzaam af.
schrijf je:
Toon
"Please enter an answer."als het opgeschoonde antwoord leeg is en stel dezelfde vraag opnieuw.
Nu kan iemand anders het programma bouwen en kunnen jullie samen bepalen of het aan de eis voldoet.
Maak een acceptatiechecklist
Zet de quizomschrijving vóór het programmeren om in een korte checklist:
versies van één antwoord met extra spaties en andere hoofdletters komen overeen;
een ander volledig antwoord komt niet overeen;
precies drie vragen voldoen aan de eis voor het aantal vragen;
voor lege titels, vraagteksten, verwachte antwoorden en ingevoerde antwoorden is het resultaat vastgelegd;
het eindrapport bevat de beloofde score.
Die checklist wordt in de volgende lessen omgezet in concrete voorbeelden en geautomatiseerde controles. Zo geven we je toekomstige zelf minder raadsels om op te lossen.
Welke eis voor antwoordvergelijking is het makkelijkst objectief te controleren?
Een eis zegt:
> Een quizplan voldoet aan de eis voor het aantal vragen wanneer het minstens drie vragen bevat.
Wat moet de controle op het aantal vragen melden wanneer het plan precies drie vragen bevat?