Maakt blockchain het softwaretesten overbodig?
Inmiddels is de technologie die bitcoin mogelijk maakte al weer in een volgende fase. Het protocol achter de munt, de blockchain blijkt namelijk ook toepasbaar voor het registreren van belangrijke gegevens en waardevolle bezittingen, zoals kunst of diamanten. Maar ook toepasbaar voor het laten uitvoeren van contractuele afspraken, waarbij criteria in het contract kunnen worden opgenomen die voorwaardelijk zijn voor het al dan niet uitvoeren van de afspraak. Te denken valt aan het onder bepaalde voorwaarden ontvangen van een overheids uitkering of een uitkering vanuit een charitatieve organisatie zoals helperbit. We spreken dan van “Self Executing Contracts”.
Anders testen
Het uitvoeren van een dergelijk contract wordt tot op heden door batchprocessen, medewerkers of de klant zelf gedaan. De ontwikkelingen waarbij de blockchaintechnologie de rol van toezichthouder of besluitvormer overneemt heeft grote gevolgen, ook voor testers. De testprofessional zal zijn werk anders moeten gaan doen dan nu. Daarvoor zijn een aantal redenen:
- Een programmeerfout in een Self Executing Contract heeft grote gevolgen. Het proces loopt zonder tussenkomst van personen en zal dus tijdens het testproces sneller dan nu tot een testblokkerende bevinding leiden. Testers kunnen niet meer handmatig ingrijpen binnen het proces;
- Strikter dan nu zal in de testvoorbereiding aandacht gegeven moeten worden aan het creëren, lezen, updaten en verwijderen (CRUD) van testdata tijdens de testuitvoering. Testdata kan niet even snel meer worden veranderd. Voor het testen wordt doorgaans gebruik gemaakt van een testnetwerk;
- Autorisatie wie welke gegevens mag inzien of wijzigen wordt nu door de blockchain gedaan waarbij wordt gecontroleerd of de juiste encryptiesleutel wordt aangeleverd. Dit is afhankelijk van de implementatie, de foreign - of de private key. De autorisatielaag in de voorkant-applicatie moet hier goed rekening mee houden. Zeker als er door de OTAP-straat heen, bij oplevering van software, data wordt meegeleverd;
- Het wordt nog complexer als gegevens uit andere blockchains worden geraadpleegd. Een voorbeeld: Voordat een overlijdensrisicoverzekering mag worden afgesloten, wordt in het geboorteregister gecontroleerd of de betrokkene is geboren en meerderjarig is. In het overlijdensregister moet eerst worden gecontroleerd of de betrokkene wel is overleden voordat mag worden uitgekeerd. In deze situatie is een hoge mate van regie noodzakelijk. Op dit moment is het echter onduidelijk of de dynamiek van het periodiek definitief maken van een block dit soort regie überhaupt toestaat.
Van de andere kant wordt het werk van testers op een aantal punten ook makkelijker. Een aantal testsoorten zijn voor de blockchain zelf niet meer nodig, tenzij het gaat om een private blockchain. In dat laatste geval is het belangrijk om te controleren of de architectuur juist is neergezet.
Gaan wij er van uit dat er een publieke blockchain wordt gebruikt, dan lijkt men het erover eens te zijn dat:
- – Performancetesten een heel andere betekenis krijgen. De performance wordt deels bepaald door de snelheid van het netwerk/internet. Deels wordt de performance bepaald door de accorderingswijze van de transacties. Afhankelijk van het type Blockchain bestaan diverse goedkeuringsmechanismen: Proof of Work bijvoorbeeld waarbij alle nodes in het netwerk meedingen naar het oplossen van de cryptografische puzzle heeft een heel andere verwerkingssnelheid dan Delegated Proof of Stake, waarbij het aantal nodes bepaald wordt door het aantal gekozen ‘delegates’ en dus beperkter in aantal is. Het testen van de performance van de voorkant-applicatie blijft gelijk;
- Backup&Restore test niet nodig is, omdat het een Blockchain database is. Data is altijd op meerdere plaatsen beschikbaar en kan bovendien niet gemanipuleerd of verwijderd worden;
- Failovertest van de ene database naar de andere niet nodig is, omdat de blockchain gedistribueerd is. Wanneer een node in het netwerk uitvalt is er simpelweg minder capaciteit beschikbaar, de database als zodanig blijft in werking;
- Uitwijktest niet nodig is als de verschillende nodes geografisch verspreid zijn;
- Securitytest op de database beperkter wordt omdat alle gegevens encrypted worden opgeslagen en alleen met een foreign - of private key kunnen worden gelezen, afhankelijk van de implementatie. De sterkte van de encryptie wordt in de code van de blockchain afgedwongen.
Functioneel testen blijft nodig
Functioneel testen van het Self Executing Contract blijft noodzakelijk, of het nu een publieke of private blockchain is, net als de applicaties waarmee de gegevens in de blockchain geraadpleegd en gewijzigd kunnen worden. Sommige wijzigingen zullen altijd handmatig blijven, zoals bijvoorbeeld contractbeëindigingen omdat de klant naar een andere leverancier gaat. Er zijn ook toepassingen die bewust met menselijke tussenkomst gedaan zullen blijven worden om te voorkomen dat iemand bijvoorbeeld onder druk een waardevol object als zijn huis verkoopt.
De uitdagingen bij het functioneel testen van een systeem dat gebruik maakt van blockchains zijn onverkort geldig bij andere testsoorten zoals de Gebruikers Acceptatietest, de Usabilitytest en de Productie Acceptatietest van de keten als geheel. De tijd zal leren hoe deze uitdagingen het hoofd geboden kunnen worden.
Conclusie
De blockchaintechnologie zal naar alle waarschijnlijkheid veel gebruikt gaan worden om registraties en contractuele afspraken op een transparante, veilige en efficiente manier te programmeren. Er is echter nog weinig praktische ervaring mee, er zijn vooral veel beloftes.
Als alle beloftes uitkomen zullen we deze toepassingen overal terug gaan zien: van overheidsregelingen tot commerciële contracten, van betalingen tot en met registratie van waardevolle objecten. Toepassingen die ons allemaal raken. Het is dus in ieders belang om de ervaringen zoveel mogelijk te delen maar vooral ook om te beseffen dat de komst van blockchaintechnologie andere aandacht vereist bij systeem ontwikkeling dan we tot nu toe hebben gezien.
Over de auteurs:
Manuela Krull-Mancinelli is Blockchain Entrepeneur en Digital Transformation Manager
Peter Logtenberg is testmanager bij Immune-IT
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee