Van DataOeps naar DataOps: testen voor effectievere dataprojecten

In de wereld van data-engineering is het gebruik van geautomatiseerde testen vaak geen standaardpraktijk, terwijl deze testen wel degelijk belangrijk zijn. Testen voorkomt fouten en vergroot de herleidbaarheid, wat leidt tot een efficiënter en effectiever data-engineeringproces.

Testen in dataprojecten

Binnen softwareontwikkeling worden geautomatiseerde testen al langer toegepast om ongewenste en onverwachte bugs te voorkomen en de kwaliteit van het geleverde product te verhogen. Dit is een van de fundamenten waar DevOps op steunt. DataOps is echter niet alleen gericht op het ontwikkelen en onderhouden van software, maar ook op het beheer van de gehele levenscyclus van de data. In dit artikel wordt uitgelegd hoe testen bijdragen aan het ontwikkelen van een DataOps-mindset.

DevOps en DataOps zijn beide werkwijzen gebaseerd op Agile en samenwerking. Ze zorgen voor snelle delivery met hoge kwaliteit om zo meer waarde te creëren.
Vincent Goris - Requirements Engineer, Chapter Lead

Waarom testen?

Testen is essentieel om impact te maken en om meer hergebruik en een kortere time-to-market te realiseren. Testen in DataOps gaat verder dan bij DevOps, je test namelijk niet alleen wat er wordt gebouwd maar ook wat er doorheen stroomt, de data. Als je geen grip hebt op de data die door je oplossing gebruikt wordt en er iets mis gaat, dan ben je veel tijd kwijt met het zoeken van de oorzaak. Is er in de aanlevering van de data misschien iets aangepast, gaat er iets mis met het transformeren van de data of is het misschien iets anders? Als je goede testen had gehad, dan zou je direct weten wat er mis is gegaan en bespaart dat dus heel veel tijd. We verdelen de testen onder in twee typen voor DataOps: de Innovation Pipeline en de Value Pipeline.

Innovation Pipeline

Dit type testen is vergelijkbaar met softwareontwikkeling en DevOps testen. In de Innovation Pipeline test je de oplossing die je bouwt en uitrolt. Belangrijk is daarbij dat je een vaste dataset gebruikt om te testen, omdat de code tijdens ontwikkeling variabel is. Zo weet je zeker dat je de effecten van de aanpassingen in de code test en is er geen ruis door veranderende data.

Value Pipeline

De Value Pipeline is relevant in productie en richt zich op de variabele data. Het is belangrijk om de binnenkomende data te analyseren en patronen, outliers en de structuur van de data te herkennen.

Testen uitvoeren

Bij het uitvoeren van testen is het belangrijk om rekening te houden met het perspectief van de test: de Innovation Pipeline of de Value Pipeline. Een Data Pipeline bestaat uit verschillende onderdelen, en bij elke transitie kunnen tests worden gedaan. Deze testen kunnen worden onderverdeeld in Ingestion Tests, Transformation Tests en Quality Tests.

Ingestion Tests

Bij de eerste kennismaking met de data worden direct testen uitgevoerd om te controleren of er geen aanpassingen zijn bij de bron die later in het proces tot problemen kunnen leiden. Deze Ingestion Tests richten zich voornamelijk op het controleren van het datacontract en de eigenschappen van de data, zoals de frequentie van de levering, het aantal kolommen, de namen van de kolommen en de grootte van het bestand.

Transformation Tests

Wanneer de data zijn binnengekomen, worden transformaties uitgevoerd die fouten kunnen introduceren. Transformation Tests richten zich op het valideren van zaken zoals het datatype, het aantal kolommen en kunnen ook bestaan uit reguliere unit testen.

Quality Tests

Richting het einde van de Data Pipeline ga je dieper naar de inhoud van de data kijken. Hier gaat het om het controleren van Business Rules. Het is dan ook heel belangrijk om samen te werken met de business, het samenwerkingsaspect van DataOps komt hier naar voren. Test of de data voldoen aan vooraf gestelde business rules, of de data compleet is en of er mogelijk sprake is van data drift. Hoe deze tests precies vorm krijgen hangt heel sterk af van het domein, overleg dus goed met de juiste mensen om Quality Tests echt effectief te maken.

Hoe te starten?

Begin klein! Doe een risicoanalyse om te identificeren waar je de meeste impact kan maken. Start met het schrijven van testen zoals in dit artikel beschreven staan. Die zijn simpel maar maken toch al veel impact. Gebruik vervolgens de eerste aantoonbare resultaten om meer draagvlak te creëren en zo een groter deel van de organisatie actief bij het testen te betrekken. Zo worden de testen weer beter en vergroot je de impact. Zo behaal je de maximale impact van DataOps.