Artikel

Automatisch testen van datawarehouses

betrouwbaarheid en kwaliteit

In praktijk zien we dat er veel aandacht is voor het testen van bedrijfsapplicaties. Deze inspanning gaat echter weer verloren doordat bedrijven hun datawarehouse niet of nauwelijks testen. Men wil vaak wel, maar binnen datawarehouse-projecten zijn testers met een specialisatie voor datawarehouses en business intelligence moeilijk te vinden. En projecten moeten wel een opleverdatum halen. Daardoor is de test-rol binnen een project vaak niet ingevuld. Met als gevolg dat alleen de ontwikkelaars hun eigen werk testen tijdens de ontwikkelfases (unittest).

In positieve gevallen worden voor moeilijke requirements op ad hoc basis extra testen uitgevoerd. De gevonden defects worden niet of nauwelijks centraal geregistreerd en worden niet nagejaagd. Er is geen aandacht voor risicoanalyse. Door deze werkwijze vindt er ook geen overdracht plaats van uit te voeren testen naar de beheerfase. Voor in de beheerfase benodigde controles dient het beheerteam het wiel weer opnieuw uit te vinden. Al met al komt hier een datawarehouse uit waarvan men niet met 100 procent zekerheid kan zeggen wat de betrouwbaarheid van de opgeslagen informatie is. Er is immers geen inzicht en tijd om bevinden te onderzoeken. Tevens is de gedane testarbeid niet effectief en efficiënt ingezet.

Uit onze eigen ervaring kunnen we concluderen dat 50 procent van de datawarehouses is getest bij de eerste GO-LIVE (systeemtest). Datawarehouses zijn dynamisch; er vinden continu releases en changes plaats. Deze dienen ook getest te worden. Hooguit 20 procent van de datawarehouses is structureel getest na iedere release of change (100% regressietest) en hooguit 5 procent van de datawarehouses heeft een regressietest na iedere load. Uit ervaring weten we ook dat op sommige datawarehouse-projecten waar wel getest wordt, een verhouding van het aantal testers ten opzichte van het aantal ontwikkelaars 1:1 is. Dan duurt de doorlooptijd van het testen vaak ook nog langer dan de ontwikkeling van een onderdeel.

Wanneer we op zoek gaan naar een oplossing en de zoekterm ‘testen + data warehouse’ gebruiken vinden we als resultaat een heleboel blogs, artikelen die benadrukken dat het belangrijk is, maar geen van allen biedt een kant en klare testoplossing. Niemand heeft het specifiek gemaakt.

Automatisering
De doorlooptijd van een systeemtest neemt van het hele testproces de meeste tijd in beslag. Met een testapplicatie wordt het mogelijk gemaakt om een reeks testen automatische uit te voeren. Zo kan bijvoorbeeld een stap als het testen van de datastructuren, waaronder de data-objectstructuur, de domeinen en foreign key relaties, automatisch worden uitgevoerd. Ook het testen van functionaliteit van de ETL-processen kan met het bouwen van een testapplicatie worden geautomatiseerd.
De visie is om het testproces zo effectief mogelijk te maken door preventie van defects en optimalisatie van de testuitvoering. In veel gevallen wordt daarvoor een testconsultant aangesteld. De werkzaamheden van de testconsultant zijn er op gericht om defects te voorkomen. Hiervoor stelt de testconsultant met meegeleverde templates master- en detail testplannen op. In de testplannen is duidelijk aan te geven wat en hoe er getest gaat worden en met welk risicoprofiel. Hierbij is het belangrijk om de testconsultant in de definitie- of ontwerpfase al te betrekken door middel van reviewsessies. Door reviews al in de definitie/ontwerpfase uit te voeren daalt het aantal defects omdat al in een vroeg stadium de testbaarheid is geverifieerd. Onduidelijkheden en niet ´SMART´ geformuleerde requirements zijn in dit stadium nog te corrigeren en nemen minder tijd in beslag. Dit levert een daling van 30 tot 50 procent van het aantal defects tijdens de systeemtest op. Buiten dat wordt er ook tijd bespaard doordat kennisoverdracht naar test- en beheerfase al heeft plaats gevonden. De toegevoegde waarde van een datawarehouse-testconsultant komt verder volledig tot zijn recht in het opstellen van scripts in de testomgeving. Hij heeft inzicht in welke attributen en tabellen relevant zijn voor een test. De ingevulde attributen en tabellen worden in templates gebruikt om testscripts te genereren.

Geautomatiseerde testen met een testomgeving
Om het testproces te optimaliseren dient een testomgeving te worden gemaakt waarin de opgestelde testen geautomatiseerd opgesteld en uitgevoerd kunnen worden. Deze testomgeving bestaat uit:
- Testomgeving Initialisatie
Deze testomgeving is flexibel in te richten voor de gewenste datawarehouse architectuur.
- Testscript Generator
Een applicatie van waaruit testscripts gegenereerd kunnen worden op basis van metadata uit functionele ontwerpen, use cases of user stories (metadata-driven testscript generator).
- Test Engine
Een applicatie waarin de testscripts worden gedraaid en het resultaat met het uitgevoerde testscript wordt opgeslagen (inclusief logging & email notificatie). De applicatie bestaat uit een set van tabellen en SQL packages die los van het data warehouse geïnstalleerd zijn (zero footprint).
- Test Reporting
Dashboard waarin het resultaat van een testrun wordt gepresenteerd.

Door het vastleggen van testinformatie ontstaat een betrouwbaar beeld van de kwaliteit van de processen en data binnen een datawarehouse. De kracht van het opslaan van testen met hun resultaten ligt in de mogelijkheden om het testproces zelf te optimaliseren. Verder kunnen door het automatiseren veel meer controles gedaan worden. Een datawarehouse kan nu echt voor 100 procent getest worden en dit is bij iedere functionaliteit- en dataoplevering te herhalen (regressietest). De tijdsbesparing maakt het ook mogelijk om veel meer tijd te besteden aan het onderzoeken van de echt belangrijke bevindingen. Meestal gaat het dan om bevindingen die ontstaan zijn doordat informatie uit verschillende bronsystemen er in geïntegreerd toestand toch anders uitziet dan de business bij het opstellen van de requirements voor ogen had.

De omschreven testomgeving ondersteunt het vastleggen op hoog niveau (metadata) van uit te voeren testen. Het voordeel hiervan is dat men eenvoudig testcases kan vastleggen. Dit vastleggen van testcases is geautomatiseerd door het gebruik van templates. De testengine voert de zo gegenereerde testscripts uit en legt de testresultaten met het uitgevoerde testscripts vast. Er kan dus altijd, door bijvoorbeeld een auditorganisatie, gecontroleerd worden welke testen zijn opgesteld en uitgevoerd. Zo is 80 procent van de testen die op een datawarehouse zijn uitgevoerd,zijn zo uit te voeren. Voor testcases van ingewikkelde businessregels dient men eenmalig een testcase-template te maken. Dit is omdat het vastleggen van businessregels sterk afhankelijk is van de wijze waarop requirements en ontwerpen of user stories zijn vastgelegd in de klantomgeving. Voordeel is dat je de testomgeving hierdoor zeer flexibel en op veel ontwikkelmethodieken in kan zetten.

Wat levert dit geautomatiseerd testen op?
Een belangrijk voordeel van geautomatiseerd testen is het aanzienlijk verkorten van de doorlooptijd van testen. Verder is het hele proces van uitgevoerde testen en testresultaten met hun doorlooptijden volledig transparant. Op basis hiervan kunnen dashboards worden gemaakt die het testproces nog inzichtelijker maken, met de mogelijkheid het proces nog verder te verbeteren.
Het gebruik van een testomgeving verkort de doorlooptijd van het testproces ook door het al in een vroeg stadium van het ontwikkelproces van een datawarehouse in te zetten. Het is als regressietest te gebruiken na iedere aanlevering aan het datawarehouse en het kan zo continue inzicht in de datakwaliteit gegeven. Het toepassen van een geautomatiseerde testomgeving verkleint op deze manier het risico van management en/of operationele besluitvorming gebaseerd op verkeerde data. Inzicht in deze risico’s is belangrijk voor bijvoorbeeld Solvency II of Basel II projecten.

De doorlooptijd van het testproces wordt ook positief beïnvloed doordat er veel minder handwerk door testers gedaan hoeft te worden. Ervaring leert dat de doorlooptijd tenminste 50 procent sneller is ten opzichte van niet-geautomatiseerd testen. In plaats van een verhouding van testers: ontwikkelaars van 1:1 kan men volstaan met een verhouding van 1:3. Dit is zeer wenselijk gezien de besparingen en omdat in de praktijk blijkt dat testers met specifieke datawarehouse-kennis schaars zijn.

Een volledig ingerichte en geautomatiseerde testomgeving is gedurende de gehele looptijd van een datawarehouse te gebruiken. Ook tijdens de beheerfase. In een Agile projectaanpak is automatisch testen eigenlijk onmisbaar.

Kadenza ontwikkelde op basis van haar onderzoek naar het testproces van datawarehouses, een testmethodiek en testapplicatie, TestLoods genaamd. Door TestLoods toe te passen kan snel een gewenst testvolwassenheidsniveau gehaald worden. Met het bijbehorende 4 stappenplan is een Test Maturity Methode niveau 3 en 4 zijn zeker voor alle datawarehouse projecten haalbaar. De resultaten van TestLoods zijn veelbelovend. De doorlooptijd van het testproces is sterk verminderen (tot 70%) en daardoor is tevens een anzienlijke kosten reductie behaald. Het data warehouse en de informatie zijn voor 100% getest waardoor de betrouwbaarheid van het datawarehouse en de informatie is nagenoeg 100% is geworden.
 

Categorie:   
Auteur(s)
afbeelding van mariannekadenza
Marianne Kompagne
MN - Senior DWH/BI Architect/Requirement engineer

Marianne Kompagne is Business Intelligence/Datawarehouse architect/Requirement engineer bij MN. Naast haar kennis op het gebied van DWH- en Enterprise architectuur, data modelling en datakwaliteit heeft Marianne veel ervaring binnen Solvency II projecten. Specifieke DWH omgevingen die hoge eisen stellen aan de betrouwbaarheid en kwaliteit van informatie. Bij Kadenza is Marianne medeverantwoordelijk geweest voor het opstellen en geven van interne Masterclasses (DWH en BI) en de DWH Test Methodiek. Binnen MN is Marianne verantwoordelijk voor o.a. requirement engineering van DWH/BI projecten.

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.
Indien het niet lukt om een reactie te plaatsen, stuur dan uw reactie naar redactie@xr-magazine.nl.
Alle inzendingen dienen correct, professioneel en beschaafd te zijn. IP-adressen worden gelogd, maar niet gepubliceerd. De redactie van XR Magazine behoudt zich het recht voor om anonieme reacties (niet op naam) of zonder geldig e-mailadres, te verwijderen zonder kennisgeving. Ook reacties waarin commerciële uitingen worden gedaan en/of commerciële producten en diensten worden aangeboden worden door de redactie verwijderd of ontdaan van commerciële uitingen zonder kennisgeving.