Menu

Aantal leden:
835
Aantal jaren testervaring:
10504
Aantal leden:
835
Aantal jaren testervaring:
10504
Word nu lid

Tip - Grondiger testen met een test harness

Naam Eric Bosch
Functie Senior Sofware Testengineer
Bedrijf TMC Test & Integration

Wat is een test harness? Het is een software testcomponent dat ervoor zorgt dat we een software component, of de samenhang tussen softwarecomponenten, geautomatiseerd kunnen testen. Het bestaat uit twee delen: een proces (test harness proces, dat draait op het systeem dat we willen testen) en een test harness proxy (waarmee we dit proces kunnen manipuleren vanuit ons testframework).

Het test harness proces maakt gebruik van de publieke interface van de software component die we willen testen. Als we deze vanuit het test harness kunnen aanroepen (via ‘put’ functies), zijn we in staat het gedrag van deze software component te beïnvloeden en te testen. Via de ‘put’ functies kunnen we het systeemgedrag simuleren als zijnde een volledig operationeel systeem.

Hoe kunnen we het test harness proces dan aanroepen vanuit ons test framework? De test harness proxy communiceert met het test harness proces via een communicatie protocol, waaraan beide moeten voldoen. Dit protocol definieert hoe de communicatie tussen beide dient plaats te vinden, in de vorm van berichten. De test harness proxy maakt een bericht aan, initieert de verzending van het bericht en wordt afgehandeld door het test harness proces op het systeem.

Dit bericht bestaat uit de naam van de software component die we willen testen, de functie die we op het component willen uitvoeren en (optioneel) argumenten die aan de functie meegegeven kunnen worden om interne data te kunnen wijzigen voor het testen van bijvoorbeeld grenswaarden. De functie in dit bericht reflecteert de eerder genoemde ‘put’ functie. Als het test harness proces een bericht ontvangt, wordt de corresponderende ‘put’ functie uitgevoerd op de softwarecomponent, waarbij we het gedrag en het resultaat kunnen controleren. Zo kunnen we testen uitvoeren die zonder een test harness onmogelijk zouden zijn.

Test harnesses gebruiken we bij mijn huidige opdrachtgever (lichtdivisie van een grote multinational) om zoveel mogelijk testcases te automatiseren en automatisch te laten uitvoeren. Resultaat: er wordt grondiger getest, fouten komen eerder aan het licht en we hebben sneller overzicht van de kwaliteit van de software. Ook niet onbelangrijk: als testprofessionals kunnen wij mede bepalen hoe het test harness eruit moet komen te zien.