De leukste/ergste testervaring van… Bart Knaack

Interview met Bart Knaack ● bknaack@kza.nl

Bart Knaak

Voor de rubriek ‘mijn leukste of ergste testervaring’ hebben we deze keer Bart Knaack gevraagd naar zijn belevenissen.

Wat is jouw leukste/ergste testervaring?
Poeh! Dat is geen makkelijke vraag, na zestien jaar in het testvak heb ik heel wat gekke dingen meegemaakt. Daar zitten ook verhalen tussen waarvan de toenmalige opdrachtgevers niet willen dat deze aan de grote klok gehangen worden!

De mooiste testervaring waar ik over ga vertellen is eigenlijk geen testervaring. Het gaat verder dan testen! Ik werkte ooit bij een Telecom bedrijf waar in Amerika hoogstaand onderzoek werd gedaan over software verificatie en validatie. Een van de projecten die daar gedaan werd was FeaVer (Feature Verification) waarbij een model-checker (een programma dat op basis van een model van het systeem dat getest moet worden, alle mogelijke executiepaden in een multithread programma afspeurt) gebruikt werd om software te ‘testen’.

Ik hoorde van dit project en wilde het experiment herhalen in Hilversum. Met behulp van een programmeur (Harm Jetten) en aanwijzingen uit Amerika bouwden we een test harness, waar we een stuk code (ongeveer 5.000 regels) in hingen dat al meerdere jaren, bij meerdere klanten in productie was. De model-checker vond in deze code 35 ontbrekende transactieafhandelingen en 15 deadlocks.  Deze fouten traden in de werkelijkheid regelmatig op. Daar ze alleen optraden bij hele specifieke volgorden van transacties met hele specifieke timing waren ze erg moeilijk te reproduceren en konden ze met traditioneel testen maar heel moeilijk gevonden worden.

Nadat we de fouten opgelost hadden ging de stabiliteit van de code wel van 98,7 %  naar 99,98 %!

Wanneer speelde dit zich af? 
Dit alles gebeurde in 1998! In een tijd dat de rest van de wereld nog helemaal niet met modelbased technologie bezig was.

Kan je ons wat meer vertellen over deze ervaring?
De aanpak werkte, omdat we in Ansi-C werkten en de model-checker Ansi-C als invoertaal gebruikten. Daardoor konden we de echte code checken in plaats van een model van de code (zoals normaal bij model-checking gebeurt). Dit maakte het project enigszins uniek, maar de technieken die daar gebruikt werden, zijn nog steeds valide.

Het lijkt me geweldig om in samenwerking met de wetenschappelijke wereld een dergelijk experiment nog een keer te herhalen!

Waarom is dit jouw leukste/ergste testervaring?
Het mooie van deze ervaring vind ik dat we in samenwerking met Software Development een project konden neerzetten dat zowel development als testing een grote stap voorwaarts bracht. Het toonde voor mij aan dat er wel degelijk alternatieven voor testen zijn, die de moeite waard zijn om uit te proberen.

Wat heb je er van geleerd en wat zou je nu anders doen?
Ik weet niet of ik iets specifiek anders zou doen, als ik de kans kreeg zou ik het meteen weer doen. Wat ik ervan geleerd heb, is dat het altijd de moeite waard is om je ogen open te houden voor nieuwe technieken en methoden en je niet af te laten schrikken om iets nieuws te proberen. Het feit dat je iets nog nooit gedaan hebt, wil niet zeggen dat je het daarom niet zou kunnen. En als je hulp nodig hebt, dan moet je het vragen!

Aan wie geef je deze rubriek door?
Ik geef deze rubriek graag door aan Johan Eerdewijk.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *