Kontrolleret test – oprydning og migrering

Det er efterhånden blevet standardprocedure at lave kontrollerede tests, når IT-systemer installeres og opdateres. Desværre er der ikke samme selvfølgelighed omkring test, når man i andre sammenhænge håndterer data. Uopdagede fejl kan have store økonomiske og kvalitetsmæssige konsekvenser, når store mængder data flyttes eller ryddes op. Indsatsen på kvalitetssikring og test skal naturligvis tilpasses risici og alvorlighed, men der bør altid laves en risikovurdering og tilsvarende tests, når data håndteres.

Med digitaliseringen og den eskalerende mængde af data, er der kommet en generel forståelse for nødvendigheden af datamigrering og dataoprydning som disciplin. De fleste har en ide om hvad det indebærer at definere, planlægge og eksekvere den slags projekter. Til gengæld er det de færreste, der klart kan sige, hvad der skal til for at kontrollere at alt er gået som forventet. I artiklen her, sætter vi fokus på vigtigheden af kontrolleret test i forbindelse med oprydning og migrering af data, og deler vores erfaringer om emnet.

Vished i det usikre

Projekter med oprydning eller migrering af data og dokumenter, er komplekse størrelser med mange aktører. Hver aktør har sin del-leverance, som tilsammen udgør projektet i sin helhed. Men hvordan ved vi om det er gået som forventet i sidste ende? Er der sket ting vi ikke regnede med? Er kvaliteten som forventet? Og hvordan håndterer vi de ting, der måtte være gået galt?
Det er de spørgsmål, en kontrolleret test, skal give os svar på. Testen kan give os en vished om kvalitet og sikkerhed, samt en dokumenteret, valid og verificeret konklusion på vores oprydning og migrering.

Hvad er kontrolleret test og hvorfor er det vigtigt?

Kontrolleret test går i sin enkelthed ud på at levere en objektiv, valid vurdering af, i hvor høj grad oprydningen og/eller migreringen af data opfylder vores projektmål. Det endelige resultat skal analyseres og vurderes og holdes op imod det, det der blev defineret som scope, resultat og kvalitet i projektets opstartsfase. Endelig skal de risici, der blev identificeret i den indledende risikovurdering, vurderes og håndteres.

Det kan forekomme dyrt og tidskrævende at teste struktureret og kontrolleret. Men det er vores erfaring, at det er endnu dyrere at opdage fejl, og lede efter årsager og kilder, tilfældigt og usystematisk. Desuden er testen vigtig, fordi alle kan lave fejl og alt kan fejle. Jo mere kritisk data er, des højere bliver ’cost of poor quality’ og de konsekvenser fejl kan have.

Uanset om det er struktureret eller ustruktureret data, der ryddes op eller migreres, er det vigtigt at teste kvaliteten. I begge kategorier findes tillige det, der kan kaldes ”beskidt” data. Det er data der er underlagt forskellige undtagelser og ikke følger de gængse normer og regler. Det kan særligt opstå, hvor fritekst eller brugerdefinerede værdier er tilladt. Her kan der optræde flere forskellige navne og stavemåder for firmanavne, lande, osv. Ud over at sikre kvaliteten i oprydningsprocessen, vil en kontrolleret test også afsløre eventuelle fejl, mangler og uhensigtsmæssigheder i dette ”beskidte” data. Det betyder at der rent faktisk kan ske en oprensning af data i forbindelse med en oprydning eller en migrering.

Overordnet set, kan man sige at vores opmærksomhed på data og datakvalitet skærpes, når vi tester. Ikke kun på det vi forventer at levere, men i høj grad også på det, der rent faktisk leveres.

Planlægning og eksekvering

1. Tidlig inddragelse og fælles forståelse

De forskellige aktører i projektet (forretning, teknikere, migreringsspecialister, testere, osv.) har alle forskellige forudsætninger. Det er vigtigt, at man tidligt i projektet etablerer en fælles forståelse for både datagrundlaget, teknikken og de systemer, der skal migreres fra og til.
De testansvarlige bør involveres helt fra start i projektet, så de får en god forståelse for datagrundlaget, og at målbilledet bliver defineret i en god kravspecifikation. Derudover bør testerne løbende inddrages, så det er klart, hvordan data bruges, hvordan det håndteres i oprydningen og migreringen, og hvordan det skal bruges og se ud efter projektet. Indsigt i ovenstående er nødvendige for at testerne kan levere kvalificeret input til kravspecifikationen og test-planlægning og -eksekvering af høj kvalitet.
Det er en udbredt misforståelse, at test kun er noget der udføres helt til slut i projektet. Planlægningen af den afsluttende test starter allerede ved projektets opstart og fungerer som en væsentlig støttefunktion igennem hele projektforløbet.

2. Testplan

En god test, kræver god planlægning. Med alle aktører inddraget i projektet, er forudsætningerne på plads for at få lavet en god testplan. Planen bør indeholde en beskrivelse af hele testprocessen.

Testprocessen starter som nævnt allerede ved projektets opstart. Når kvaliteten af det opryddede eller migrerede data skal vurderes, skal man kunne sammenligne med det oprindelige kildedata. Der skal altså defineres et test-scope, som afgrænser hvilke data, man vil bruge i sin test. Det kan være det fulde datasæt eller en del af det, men det er vigtigt, at det er dækkende og repræsentativt for kildedata. På samme måde skal vi på forhånd definere, hvordan vi vil selektere og indsamle tilsvarende destinationsdata fra det behandlede data.

Ud over at have styr på scope for input og output, og hvordan vi indsamler det, skal det også beskrives, hvordan vi vil følge (teste) de transformationer, der sker på data. Under oprydningen og migreringen, vil der blive flyttet rundt på data, og metadata vil blive renset og beriget. Denne transformation er beskrevet i en specifikation og skal tages højde for i en test. Det siger sig selv, at ud over at teste at data er komplet og validt, skal man især sikre sig at de manipulationer, der foretages på data, er korrekt udført.

3. Eksekvering

Selve testen skal udføres så kontrolleret og reproducerbart, at resultatet af testen kan bruges til at gå tilbage og gentage transformationen og rette op på eventuelle fejl. Det kan være reelle fejl, eller det kan være noget, man vil lave om, baseret på en indsigt, der er kommet via testen.
Der skal laves eksplicitte testscripts, der kan eksekveres minutiøs – eventuelt automatiseret, hvor det er relevant – i et, eller flere, gennemløb.

4. Testrapport

Når alle testscripts er kørt igennem, og alle eventuelle fejl og uhensigtsmæssigheder er rettet op, skal der afsluttes i en rapport. Her er det vigtigt at forholde sig til alle elementer af hele testprocessen. Definition af scope, indsamling af testdata, transformationer, afvigelser og naturligvis det endelige testresultat.

For at kunne påberåbe sig fuld sporbarhed i oprydningen og migreringen, er det ikke nok at have dokumenteret sit scope og sine transformationer. Det er lige så vigtigt at kunne dokumentere at det rent faktisk gik for sig, som specifikationerne foreskrev. Det vil være meget værdifuld dokumentation i enhver tvist om validiteten af dokumenter eller data.

Testrapporten er altså der, hvor der bindes sløjfe om projektet, og gives grønt lys til at projektet er succesfuldt i mål.