5.1 Teknologi-test
Allerede meget tidligt i projektet begyndte vi at programmere et system som bruger de samme systemer (PtG og DB'en) som det endelige produkt, for at teste om det virkede, og for at lære at bruge teknologien. Det resulterede i MAOVAdapterProto (prototype) der kunne følgende ting:
- Vise sider gennem Portal-to-Go, genereret som XML i java, med PTG's hjælpeklasser.
- Linke mellem forskellige sider, med argumentet ACTION.
- Hente data fra Oracle's database, og vise det gennem PtG
- Svare på en søgeform gennem PtG, og viser data fra DB'en
- Modtage forskellige argumenter
MAOVAdapterProto bygger på noget kode af Asger Jensen, så vi startede ikke på bar bund, og vidste faktisk at teknologien var tilstrækkelig. Det viste sig at være relativt nemt at udvikle videre på, og testen viste hvordan systemet skal kommunikere med Portal-to-Go, hvilket har lagt grundlaget for det videre design.
5.2 Design-test
For at opnå et holdbart design, har design-mæssige spørgsmål været testet i små test-klasser. De er ikke brugt direkte i MAOVAdapteren, men har påvirket hvordan systemet er implementeret.
- DBTest - Tester om vi fra Java kan tilgå den database vi har fået tildelt. Det var ikke noget problem.
- TestCaracterConverter - Når systemet blev testet i en WAP-emulator fungerede det ikke, hvis der blev indtastet æ, ø eller å i et søge-felt. Det viste sig at de blev skiftet ud med an række andre tegn (eks. æ = %E6). Denne klasser tester om vi på en enkel måde kan konvertere tilbage til de rigtige bogstaver. Det virkede her i test-klassen, men implementeret i systemet virkede det ikke. De erstattede koder blev slet ikke sendt ordentligt med, fra WAP-emulatoren, så det blev droppet at konvertere koderne tilbage til de danske tegn.
- TestGetField - Dette er egentligt en hjælp til en anden projekt-gruppe, der skulle kunne oprette et Color-objekt udfra navnet på farven fra en String. Det lagde grunden for ideen om test-systemet JavaInstantTester, som er udviklet lidt sideløbende med Project MAOV.
- TestPAPrimitive - Vi havde to forskellige beskrivelser af hvilke XML-tags Portal-to-Go accepterer, men en mistanke om at Java hjælpeklassen (PAPrimitive) kun understøttede de gamle og mere begrænsede tags. Den understøttede kun de gamle. Denne test bygger iøvrigt også på erfaringerne med TestGetField.
- TestPassingObjects - get-metoder laves for at beskytte variabler, men hvis man ikke laver get-metoderne ordentligt, beskytter de ikke alligevel. Denne klasse tester hvad der er beskyttet med get-metoder. Svaret var primitiver, og objekter der ikke kan ændres såsom String.
- TestPtGXML - Tester hvordan den XML ser ud som Portal-to-Go modtager. Den er lavet for at få et eksempel der kunne bruges i beskrivelse af PtG's XML, der endte som bilag XXX.
- TestTimeTakenCustomerData - Tester tiden det tager at hente data om en kunde fra databasen. Det var som svar på, om samtlige oplysninger om en kunde, inklusiv de fire underpunkter, skal hentes op af databasen straks når brugeren vælger en kunde, eller de fire underpunkter først skal hentes, når man trykker på dem. Resultatet var at det tog for lang tid at hente alle data på een gang. Specielt oplysningerne om TAR var tidskrævende.
- TestTryCatchFinally - I den prototype Asger Jensen havde lavet, brugte han "finally", som vi ikke vidste hvad gjorde. Derfor testede vi det i denne klasse.
- TimeTaker - En gammel genbrugelig testklasse der bruges i TestTimeTakenCustomerData, til at måle tidsforbruget for noget kode.
- SQLMachine - Vi havde problemer med at installere Oracles SQL+ på en lille computer, så vi udviklede dette program som erstatning. Vi har haft meget gavn af det, da det har en bedre brugerflade end SQL+.
- JavaInstantTester - Dette er lidt af et sidestykke, da det viste sig at blive for kompliceret at udvikle, og nåede derfor ikke at blive færdigt til at kunne bruges ordentligt. Det bygger på erfaringerne fra TestGetField. Dets formål er at man kan kalde metoder i objekter i vilkårlig rækkefølge mens programmet kører, for at teste dem, uden at skulle omskrive en test-main-metode flere gange.