Testing //Quiz-program

Om du er interessert i å lese om hva som gikk bra og hva som gikk mindre bra under programmeringen, fortsetter du å lese dette innlegget.

Funksjonene Start, Fasit, taPaNytt, taPaNytt2, tilbake, hjelp og tilbakeHjelp krevde svært lite koding og testing. De er består kun av gotoAndStop(), de gjør ikke annet enn å hoppe til en annen frame.

Jeg var usikker på om tilbake-funksjonen (som går fra «fasit-siden» til «resultat-siden») ville huske verdien til variabelen poeng, slik at resultatet kunne hentes ut på nytt om ønskelig. Jeg ble imidlertid gledelig overrasket da jeg testet funksjonen, og så at dette fungerte som ønsket.

Neste er en mye mer avansert funksjon, og krevde testing av flere faktorer.

  1. Gjøre ingenting om ikke et svaraternativ er valgt.
  2. Sjekke om riktig svar er valgt, og i så fall legge til et poeng.
  3. Generere nytt spørsmål og svaralternativer.
  4. Gå videre til resultatsiden etter siste spørsmål.

1. Fungerte greit ved første testing, ingen problemer med dette ble oppdaget under resten av jobbingen med programmet heller.

2. Etter noe tenking fant jeg ut at jeg burde ha en egen array med svaralternativene for å få til denne funksjonen på en enkel måte.

    if(group.selection.label == tabKorrekt[spørsmålNummer]) {
poeng++;
txtBox.text = String(poeng); }

Tracet variabelen poeng slik at jeg kunne sjekke om riktig poeng ble ført mens quizen ble tatt. Oppdaget etter hvert at for et av spørsmålene fikk man ikke poeng for riktig svar, men feilen var i arrayen. Hadde rett og slett skrevet indeksnummeret til feil svaralternativ i tabellen. Gikk over resten av spørsmålene og fant ingen flere feil.

3. Til å begynne med hadde jeg svaralternativene i egne tekstbokser ved siden av radioknappene, men fikk ikke da helt til å oppdatere de slik som de skulle. Fjernet tekstboksene og satte labelen til radioknappene lik svaralternativene, og da funket det.

Oppdaget at når nytt spørsmål ble generert, var valget av radio button fra tidligere bevart. Ønsket at de skulle være helt blanke, og hadde litt problemer med å få til dette. Prøvde å sette de til false og null, men fikk ikke dette til å fungere. Løsningen ble at jeg satte inn en fjerde radio button som står utenfor visingsområdet. Satte den til true inne i if/else-setningen som genererer nye spørsmål og svaralternativer. Dette fungerte ved testing.

4. Å få programmet til å gå til resultatsiden gjorde jeg ved bruk av ovennevnte if/else-setning. Om spørsmålsnummeret var høyere enn lengden på tabellen med spørsmålene, ble gotoAndStop(3) kjørt. Fungerte som ønsket.

Funksjonen resultat slet jeg mere med. Den var i en ny frame, så hvordan skulle jeg få med meg verdien til variabelen som telte poengene? Etter å ha prøvd og feilet en stund fikk jeg tips om å lage en tekstboks der poengene kunne skrives ut underveis. Med denne tekstboksen i både frame 2 og 3 fikk jeg med tallet jeg ville ha. Men nå var det blitt String, og man kan jo ikke bare regne med tekst. Så når jeg prøvde å skrive ut en tekst for 5 < poeng < 8 virket det som at if/else setningen ikke ble kjørt. Endte opp med en tungvint metode hvor jeg har en else if for hvert poeng alternativ. Var nok ikke den optimale løsningen, men den funker.

Den siste funksjonen er mail-funksjonen. Den føler jeg fortsatt ikke at jeg har fått testet godt nok, skulle gjerne sett hvordan teksten ble seende ut på mail. Fikk tracet meldingen greit, men der vistes så klart &body= og %0D%0A. Satser på at funksjonen fungerer som den skal, den er så og si kopiert fra et eksempel i læreboka, så det burde ikke være store feil i hvert fall.

I forhold til forrige programmeringsoppgave vi fikk (kassasystem) syns jeg denne gikk mye greiere. Det jeg lærte om bruk av arrays i den oppgaven fikk jeg god bruk for her, og jeg oppdaget hvor nyttig det er å anvende arrays.
Det har vært gøy å arbeide med denne quizen, og jeg ser fram til neste oppgave i søken etter å bli flink til å programmere.

//Heggvoll

Advertisements

Legg igjen en kommentar

Fyll inn i feltene under, eller klikk på et ikon for å logge inn:

WordPress.com-logo

Du kommenterer med bruk av din WordPress.com konto. Logg ut / Endre )

Twitter picture

Du kommenterer med bruk av din Twitter konto. Logg ut / Endre )

Facebookbilde

Du kommenterer med bruk av din Facebook konto. Logg ut / Endre )

Google+ photo

Du kommenterer med bruk av din Google+ konto. Logg ut / Endre )

Kobler til %s