Testplan for karakterprogram med poengsum

Hele eksamen, alle hjelpemidler

Testplan for karakterprogram med poengsum

Vi ønsker å lage et program der brukeren skal skrive inn en poengsum fra og med 0 til og med 100, og programmet skal bestemme og skrive ut tilsvarende karakter etter følgende regler:

  • Enhver poengsum under 50 får karakteren «Ikke bestått».
  • Enhver poengsum fra og med 50 til og med 69 får karakteren «Bestått».
  • Enhver poengsum fra og med 70 til og med 89 får karakteren «Godt bestått».
  • Enhver poengsum på 90 eller høyere får karakteren «Meget godt bestått».
  • Enhver poengsum som er mindre enn 0 eller større enn 100, får karakteren «Ikke gyldig poengsum!».

Pseudokoden nedenfor beskriver logikken og programflyten i et forslag til dette programmet:

PRINT "Skriv inn poengsummen din:"
READ poengsum
IF poengsum LESSER THAN 50
  PRINT "Ikke bestått"
ELSE IF poengsum GREATER THAN 50 AND poengsum LESSER THAN 69
  PRINT "Bestått"
ELSE IF poengsum GREATER THAN 70 AND poengsum LESSER THAN 89
  PRINT "Godt bestått"
ELSE IF poengsum GREATER THAN 90 AND poengsum LESSER THAN 100
  PRINT "Meget godt bestått"
ELSE
  PRINT "Ikke gyldig poengsum!"
ENDIF
Hjelpemiddelkrav: Krever PC

Implementer den foreslåtte pseudokoden i det programmeringsspråket du foretrekker, gjennomfør testene som er beskrevet i testplanen nedenfor, og fyll inn de faktiske resultatene du får.

Tabell 1: Testplan
Test nr.Input-verdierForventet resultatFaktisk resultat
1Poengsum: 30Ikke bestått
2Poengsum: 65Bestått
3Poengsum: 82Godt bestått
4Poengsum: 97Meget godt bestått
5Poengsum: 102Ikke gyldig poengsum!
6Poengsum: 0Ikke bestått
7Poengsum: 50Bestått
8Poengsum: 69Bestått
9Poengsum: 70Godt bestått
10Poengsum: 89Godt bestått
11Poengsum: 90Meget godt bestått
12Poengsum: 100Meget godt bestått
13Poengsum: −1Ikke gyldig poengsum!
Hjelpemiddelkrav: For hånd

Er de forventede resultatene like de faktiske resultatene? Hvis ikke: Finn de logiske feilene i pseudokoden som forårsaker det. Skriv inn og forklar svaret ditt.

Hjelpemiddelkrav: Krever PC

Rett opp programmet fra punkt a slik at du får det forventede resultatet.

Fasit

Test 1–6 gir forventet resultat. Test 7–12 (50, 69, 70, 89, 90 og 100) gir «Ikke gyldig poengsum!», og test 13 (−1) gir «Ikke bestått».

Nei. Betingelsene bruker GREATER THAN og LESSER THAN der det skulle vært «større enn eller lik» og «mindre enn eller lik», så grenseverdiene 50, 69, 70, 89, 90 og 100 havner i ELSE. I tillegg sjekkes det ikke om poengsummen er under 0, så −1 gir «Ikke bestått».

LøsningsforslagKI-generert

Vi finner de faktiske resultatene ved å gå gjennom betingelsene i pseudokoden ovenfra og ned for hver poengsum. Den første betingelsen som er sann, bestemmer utskriften.

Test nr.PoengsumFørste sanne betingelseFaktisk resultatSom forventet?
130poengsum LESSER THAN 50Ikke beståttja
265GREATER THAN 50 AND LESSER THAN 69Beståttja
382GREATER THAN 70 AND LESSER THAN 89Godt beståttja
497GREATER THAN 90 AND LESSER THAN 100Meget godt beståttja
5102ingen, går til ELSEIkke gyldig poengsum!ja
60poengsum LESSER THAN 50Ikke beståttja
750ingen, går til ELSEIkke gyldig poengsum!nei
869ingen, går til ELSEIkke gyldig poengsum!nei
970ingen, går til ELSEIkke gyldig poengsum!nei
1089ingen, går til ELSEIkke gyldig poengsum!nei
1190ingen, går til ELSEIkke gyldig poengsum!nei
12100ingen, går til ELSEIkke gyldig poengsum!nei
13−1poengsum LESSER THAN 50Ikke beståttnei

Nei. Sju av de tretten testene gir et annet resultat enn forventet. Det skyldes to logiske feil.

Feil 1: Grenseverdiene er utelatt. GREATER THAN betyr «større enn» og LESSER THAN betyr «mindre enn». Selve grenseverdien er derfor ikke med i intervallet. Betingelsen

ELSE IF poengsum GREATER THAN 50 AND poengsum LESSER THAN 69

gjelder bare for 51–68, men reglene sier fra og med 50 til og med 69. Det samme skjer i de to neste betingelsene: «Godt bestått» gjelder bare for 71–88 og «Meget godt bestått» for 91–99. Poengsummene 50, 69, 70, 89, 90 og 100 oppfyller derfor ingen av betingelsene og havner i ELSE, som skriver «Ikke gyldig poengsum!». Test 7–12 feiler av denne grunnen.

Betingelsene burde brukt GREATER THAN OR EQUAL TO og LESSER THAN OR EQUAL TO, for eksempel poengsum GREATER THAN OR EQUAL TO 50 AND poengsum LESSER THAN OR EQUAL TO 69.

Feil 2: Den nedre grensen 0 sjekkes ikke. Den første betingelsen, poengsum LESSER THAN 50, er sann for alle tall under 50, også negative tall. Derfor gir −1 «Ikke bestått» i stedet for «Ikke gyldig poengsum!» (test 13). Programmet må enten sjekke at poengsummen er ugyldig før de andre betingelsene, eller kreve poengsum GREATER THAN OR EQUAL TO 0 i den første betingelsen.

Testene viser hvorfor en testplan bør ha med grenseverdiene. Test 1–6 bruker verdier midt i intervallene (og 0), og de gir riktig resultat selv om programmet har feil. Først testene med 50, 69, 70, 89, 90, 100 og −1 avslører feilene.

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Anbefalt. Chatboten får beskjed om å bruke det til å veilede deg riktig vei — ikke til å røpe svaret. Du kan slå det av hvis du vil være helt sikker på at ingenting lekker.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i informasjonsteknologi. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt