Context driven testen en session based frameworks

| Testen na Bolton: Paul van Haaster over context driven testen en session based frameworks

Bij Immune-IT wordt veel belang gehecht aan testers die goed kijken naar welke processen en dynamieken spelen binnen organisaties en projecten. Deze houding herkennen wij in de visie van “test-goeroes” als Michael Bolton, Cem Kaner en James Bach. Wanneer daar de kans en aanleiding toe is, sturen wij onze testprofessionals graag op cursus om de fijne kneepjes van het context-driven testen onder de knie te krijgen. Paul van Haaster vertelt over wat hij heeft opgestoken van zijn training bij Michael Bolton.

Het is inmiddels vier jaar geleden dat ik op cursus mocht bij Michael Bolton. Wat ik bij hem leerde, heb ik ook direct kunnen toepassen in het Minicare I-20 bloedtest systeem project van Philips waar ik namens Immune-IT actief ben. Waar ik toen tegenaan liep, was dat de documentatielast voor mij als tester steeds groter werd. Ik kwam steeds minder toe aan het tussentijds testen van de software. Nadat ik drie dagen lang mocht gaan kijken en luisteren naar Michael Bolton, kreeg ik het idee om mijn  probleem op de opdracht aan te pakken door het invoeren van het session based testframe van Jonathan Bach [red: de broer van James Bach].

Structuur en tijdswinst
In dit “session based framework” kun je op een heel overzichtelijke manier, per sessie in plaats van in één keer in een betonnen protocol vooraf, de testonderdelen, requirements en resultaten ophangen. Het idee van dit “session based framework” is op zichzelf geen rocket science maar het was destijds – we hebben het over 2012 – wel een verademing om los te komen uit de ouderwetse manier van testen waarbij je eerst een uitgebreid 'protocol' moest opstellen waarin je alle stappen en requirements, van het begin tot het einde uit moest schrijven. Ik maakte bij Bolton eigenlijk voor het eerst kennis met dit zogenaamde 'exploratary testen' waarbij je niet alles van tevoren dichttimmert maar kijkt naar waar het proces je leidt en dat ook op die manier, iteratief, documenteert. Je boekt daarmee ontzettend veel tijdswinst (en dat is in Testen heel fijn).

Traceability
Bij het session based framework hoort ook een werkwijze van “exploratory testen”, je kijkt/test en documenteert per sessie. Op die manier schrijf je met jouw werkdocument/framework, gaandeweg het testproces eigenlijk een compleet 'protocol', waarin het ook voor buitenstaanders/opvolgers heel logisch te volgen is (traceability) waarom je bepaalde keuzes en stappen hebt gezet in het testproces. Het framework is gebaseerd op diverse perl scripts. Door het runnen van die scripts worden statistieken verzameld gebaseerd op de ingevulde task breakdown gegevens van alle uitgevoerde en gedebriefte sessies. Deze informatie wordt in een status overzicht spreadsheet verzameld, waarmee waardevolle gegevens gerapporteerd kan worden. Tevens kan door een zoek script gemakkelijk gezocht worden naar alle genoteerde conclusies, die dan als input voor een testrapportage kan dienen, en een “verhaal” vertelt over de ontwikkelde software. Daarnaast heb ik binnen het Minicare I-20 project de ontwikkelaars gevraagd om een Excel macro te maken die de unieke sessienaam, test case, gebruikte release en requirements met hun status in een overzicht neerzet, waardoor er snel een traceability rapport gegenereerd kan worden.

Verhalen vertellen
Bij Bolton leerde ik dus eigenlijk zo lean en mean mogelijk testen en documenteren. En, niet onbelangrijk, ook om altijd te kijken naar het grotere plaatje en de (sociale) context waarin je test. Dit “context-driven testen” is ook heel belangrijk om het test-proces met zo min mogelijk frictie te laten verlopen. Wil je echt context-driven testen dan is het nodig dat je iedere keer dat je met de software bezig bent, echt “in de software gaat zitten” waarmee je werkt. Als tester ben je een verhaal aan het vertellen voor de buitenwereld: wat doet de software, wat kan de software, waarom moet het doen wat het doet? Test-goeroes als Bolton, Kaner en Bach, benadrukken dat je je als tester bij het vertellen van dit verhaal ook moet verbinden met de hele ontwikkelclub waarmee je de klus moet klaren. Je vertelt het verhaal met het hele team: de ontwikkelaars van assays (innovatieve diagnostiek methodieken), de cartridge ontwikkelaars, productiestraat inrichters, de operators – maar ook de auditors. Dat is niet alleen idealisme, maar ook praktisch. Je hebt namelijk de medewerking en het commitment nodig van iedereen in het proces om tot een goede release te komen. Binnen Philips Handheld Diagnostics kunnen wij als software team middels het “session based testen” onze omgeving een goed beeld geven van wat wij van onze software vinden.

Niet rigide
Dit “context driven testen” betekent ook dat je niet te rigide moet omgaan met wat de goeroes zelf prediken. Wat best practices zijn, is afhankelijk van de omgeving. Zo kreeg ik bij het Minicare I-20 -project te maken met een overdracht naar een groep waarvan de manager in het “session based framework” toch ook heel graag de requirements genoteerd zag (iets dat in strikte zin niet noodzakelijk is binnen een “session based test-framework”). Als je een goede tester bent, die werkelijk context-driven werkt, dan voel je aan dat je op zo'n moment niet moet vasthouden aan in beton gegoten definities van wat een bepaalde test-werkwijze is. Die flexibiliteit en open manier van kijken naar het testproces, is denk ik een van de belangrijkste dingen die ik heb geleerd van Michael Bolton. En het session-based test-framework van Jonathan Bach gebruik ik nog steeds,  maar altijd in de context van de situatie.

Een gedetailleerde uitleg van wat session based testen inhoudt en hoe het frame geïnstalleerd kan worden is te vinden op de volgende links:

Meer details over het Minicare I-20 bloedsysteem is te vinden op: