Göm menyn

"Black box" testning

För att värma upp inför kursen kommer här information om en uppgift att göra hemma på egen dator (eller på IDA:s datorer). Uppgiften är frivillig och utgör inget examinerande moment i kursen. Däremot ger den en förståelse för vikten av att testa sina program, vilket är nyttigt inför kommande laborationer i kursen. Uppgiften är relativt stor, så vi räknar med att ni samarbetar (i hela klassen om ni vill det). Ni får gärna diskutera uppgiften i större grupp och över klassgränser.

Den specifikation som programmen ni får i denna uppgift är byggda efter är den laboration som heter "Momstabellen" i er labserie. Det är laboration 1 i er labserie så ni kommer själva att skriva ett program senare som skall lösa uppgiften. Denna uppgift gör alltså inte bara att ni kommer att få lite insikt i felsökning utan förbereder er också inför en laboration.

Introduktion

Att skriva programkod är en del av programmering. Att säkerställa att den kod man har skrivit fungerar som den ska är en minst lika stor del, och det är det denna uppgift går ut på. Här nedan finns ett antal program som samtliga är varianter på studentlösningar till labboration "momstabellen". Ett av dessa program är felfritt, de övriga har ett eller flera fel (det är dock inga program som har exakt samma uppsättning brister, utan alla är unika). Din uppgift är att hitta bra testfall som särskiljer programmen och att hitta det programmet som är felfritt.

OBS! Flera av dessa program skulle kunna vara godkända i er labserie trots att de har brister så var inte rädda att vi kommer att kräva ett perfekt program när ni kommer till ert eget försök till program senare.

Om testning

För att kunna lita på de program man skrivit, är det viktigt att man har testat dem så utförligt det går. En liknelse kan här vara att testa om en miniräknare fungerar som den ska (vilket den förhoppningsvis gör :).

En (enkel) miniräknare har bland annat funktionerna addition, subtraktion, multiplikation och division. Den har dessutom positiva värden, negativa värden samt värdet 0. För att testa miniräknaren bör man prova samtliga räknesätt med alla typer av värden.

Enkla testfall kan här vara 1+2, 0-5, 2.5*2 och 10/-2.5, där miniräknaren bör ge rätt svar om den fungerar som det är tänkt. För att bli ännu säkrare på att den fungerar korrekt bör vi testa alla kombinationer (exempelvis testa multiplikation med negativa tal), men detta bör ge en fingervisning om vad testning innebär.

Om vi inte testar våra program, kan vi inte vara säkra på att de fungerar som vi har tänkt oss. Man kan egentligen inte säga att det fungerar ens efter det att man testat sitt program. Det man dock kan säga är att man åtminstone har gjort det mer troligt att det har färre fel än ett program som inte är testat.

Instruktioner

Här följer en kort beskrivning av vad du (ni) har att göra i denna hemuppgift.

  1. Läs instruktionerna för laboration 1 (momstabellen).
  2. Beroende på vilket operativsystem du har och vilken dator du har är det olika uppsattningar av program som skall laddas hem till dig. Välj i listan nedan det som verkar vara rätt för just dig. I "ZIP"-filen du laddar ned finns det 16 stycken program som heter:
          momstabellen_0000
          momstabellen_0001
          ...
          momstabellen_1111
        
  3. Nu till själva testningen. Hur skall man göra för att testa programmen för att komma fram till skillnaderna och se vilket program som är rätt.

    Fundera ut så många olika testfall som du kan (där ett testfall inkluderar ett första pris, ett sista pris, en steglängd och en momssats). Diskutera dessa med dina kompisar så att du inte testar samma sak som andra som du samarbetar med.

    Här följer några andra punkter som är viktiga att tänka på:

    • Välj inte bara korrekta testfall utan även orimliga testfall (exempelvis ett negativt pris) då ett bra program ska kunna hantera "felaktiga" inmatningar.
    • Använd många testfall, så att varje program testas så omfattande som det är möjligt. Försök att testa "olika saker". Samma typ av testfall ger oftast inte mer information.
    • Testa ALLA 16 programmen med samma testfall och anteckna alla resultat (för alla program) så att du vet om det blivit rätt eller fel för de olika programmen. Detta gör också att man senare kan jämföra programmens fel.
    • Var noggrann och skriv upp dina testfall.
    • Skriv ner vilka tester som ger vilka resultat, så att resultaten kan reproduceras.
    • Skriv ner vilka fel som varje program har.
    • Diskutera och samarbeta så att ni inte testar samma testfall. Det gör bara att det tar mer tid. Se till att en person håller reda på vem som gör vad så blir det lite mer struktur.

Filerna att ladda ner

Här är ett antal ZIP-filer med de körbara programmen. Om du inte kan använda någon av dessa är det bra om du hör av dig så kan vi kanske använda din dator för att skapa nya versioner som kan vara bra för andra också.

Operativsystem ZIP-filer för olika datorer och operativsystem
Solaris 10 SUN sparc (IDA:s SUN-datorer) Teckenuppsättning: ISO-8859-1
SUN sparc (IDA:s SUN-datorer) Teckenuppsättning: UTF-8
Windows 7 (32 bitar) Teckenuppsättning: CP850 (cp850-dos i Emacs)
(64 bitar) Teckenuppsättning: CP850 (cp850-dos i Emacs)
Windows Vista (32 bitar)
Windows XP (32 bitar)
Mac OS X Intel (32 bitar) Teckenuppsättning: ISO-8859-1
Intel (32 bitar) Teckenuppsättning: UTF-8
Intel (64 bitar) Teckenuppsättning: ISO-8859-1
Intel (64 bitar) Teckenuppsättning: UTF-8
Power PC (32 bitar) Teckenuppsättning: ISO-8859-1
Power PC (32 bitar) Teckenuppsättning: UTF-8
Ubuntu 12.4 (32 bitar) Teckenuppsättning: ISO-8859-1
(32 bitar) Teckenuppsättning: UTF-8
(64 bitar) Teckenuppsättning: ISO-8859-1
(64 bitar) Teckenuppsättning: UTF-8
Ubuntu 10.4 (32 bitar) Teckenuppsättning: ISO-8859-1
(32 bitar) Teckenuppsättning: UTF-8
(64 bitar) Teckenuppsättning: ISO-8859-1
(64 bitar) Teckenuppsättning: UTF-8


Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2012-08-24