Lag testvektorer for beløp, datoer og referanser
En testvektor isolerer ett feilbilde, slik at resultatet kan beregnes og forklares uten å åpne hele regnskapsarkivet.
En testvektor består av et avgrenset sett med inngangsverdier og et dokumentert forventet resultat. Den er nyttig når en stor dataoverføring feiler på en liten, men viktig regel. Jo tydeligere årsak og forventning er, desto lettere er det å rette uten å skape nye avvik.
Bruk syntetiske data der det er mulig. Eksemplene bør etterligne reelle grenser, men trenger ikke inneholde virkelige kunder, bankkontoer eller bilag. Merk dem tydelig som testdata.
Tre uavhengige prøver
| ID | Input | Forventet resultat | Hva prøven undersøker |
|---|---|---|---|
| T01 | Faktura 10 000, betaling 4 000 | Restbeløp 6 000 | Delbetaling gir ikke full utligning |
| T02 | Periode slutter 31. mars; dokument er datert 1. april | Dokumentet behandles etter avtalt datofilter | Grensen mellom perioder |
| T03 | To journaler har bilagsnummer 42 | To forskjellige transaksjoner | Bilagsnummer alene er ikke nødvendigvis global nøkkel |
T02 må presiseres med hvilken dato eksporten filtrerer på. Hvis overføringen bruker bokføringsdato, er dokumentdatoen alene ikke tilstrekkelig til å avgjøre resultatet. Denne presiseringen er en del av testen og bør stå i datakontrakten.
Beregn forventningen uten mottakersystemet
Hvis forventet restbeløp bare kopieres fra systemet som skal testes, kan testen bekrefte systemets egen feil. Beregn resultatet fra inputverdiene og den avtalte regelen. For større eksempler kan en enkel kontrolltabell være nok, men den må bruke dokumentert presisjon og fortegn.
Ved avrunding bør dere prøve både verdier som avrundes opp og ned. Hold valutakonvertering utenfor den første prøven dersom målet er å undersøke restbeløp. Legg heller til en egen valutaprøve med kjent kursgrunnlag.
Utvid settet etter faktiske feil
Når en feil blir funnet, lag en liten testvektor som gjenskaper akkurat den. Bevar feilen i settet også etter retting. Det reduserer risikoen for at en senere oppgradering innfører samme feil igjen.
Hver vektor bør ha:
- En ID og en kort beskrivelse av problemet.
- Minimal input som faktisk utløser problemet.
- Den regelen som avgjør forventet resultat.
- En kontroll som skiller riktig og feil behandling.
- Dato og versjon for siste prøving.
Små testvektorer erstatter ikke avstemming av hele leveransen. De viser at bestemte regler fungerer under bestemte betingelser. Etter at vektorene passerer, må dere fortsatt kontrollere antall poster, summer og dokumentkoblinger i det faktiske datasettet.
Se negative tester og akseptansekriterier.