Auteur: John Kronenberg ● John.Kronenberg@closesure.nl
Mijn vorige artikel in TestNetNieuws met de titel ‘Goede testers zijn geen goede testautomatiseerders. So what?’ heeft, toch enigszins verrassend, veel reads, likes en comments gekregen. Ik heb waarschijnlijk met het artikel een onderwerp geraakt dat in onze testcommunity erg leeft. Ging dat artikel voornamelijk over het feit dat goede testers geen goede testautomatiseerders hoeven te zijn om van waarde te zijn voor projecten, dit artikel belicht de andere kant: hoe zouden vooruitstrevende testautomatiseerders zich in de markt kunnen (misschien wel moeten) positioneren? Ik licht mijn keuze toe aan de hand van een voor velen wellicht nieuwe rolomschrijving: ‘Software Engineer in Test’.
Het is alweer een tijdje geleden dat ik de rolomschrijving in mijn linkedin profiel heb gewijzigd naar ‘Software Engineer in Test’. Dit besluit nam ik nadat ik een podcast met Andrew Knight beluisterde (https://testandcode.com/47). In dit interview beschrijft Andrew zijn beweegredenen om de rolomschrijving in zijn LinkedIn profiel te wijzigen. Als ik de titel ‘Software Engineer In Test’ analyseer, staat er exact wat ik in mijn werkzame leven doe: ik gebruik mijn Development-vaardigheden voor het leveren van softwareoplossingen voor testproblemen. Een ‘Software Engineer in Test’ beweegt zich dan ook tussen enerzijds het vakgebied testen en anderzijds het vakgebied programmeren. Precies zoals het in onderstaand plaatje is weergegeven.
De rol ‘Software Engineer in Test’ (SET) is als eerste door Google gebruikt. Daarvoor had Microsoft in 2005 al de rolomschrijving ‘Software Developer Engineer in Test’ (SDET) in gebruik genomen, maar zelf vind ik de Google benaming net iets passender.
Historisch gezien hebben testers zich gericht op handmatig testen. Sterke ontwikkelvaardigheden zijn voor testers nooit noodzakelijk geweest. De meeste testers zijn zich, ook onder druk van de marktvraag, meer en meer gaan richten op het opdoen van technische vaardigheden. Een goede Test Engineer is mijns inziens een tester die veel technische kennis heeft opgedaan en hij/zij begrijpt heel goed binnen welke technische omgeving de software is ontwikkeld. Een goede Test Engineer hoeft geen volleerd testautomatiseerder te zijn om waardevol te zijn voor projecten. Dit is ook het standpunt dat ik in mijn vorige artikel heb beschreven.
De Software Engineer ontwikkelt de software.
Een SET daarentegen schrijft niet alleen testcode, maar doet in de praktijk veel meer.
Een aantal van de taken die de SET oppakt, zijn:
- Het samenwerken met Software Engineers, Test Engineers en ProductOwners op het gebied van bijvoorbeeld het beschrijven van testscenario’s (Dit geld mijns inziens ook voor testengineers);
- Bewaken van de codekwaliteit van de Software Under Test;
- Het opzetten en onderhouden van Testautomation Frameworks;
- Het automatiseren van testscenario’s binnen het Testautomation Framework;
- Toepassen van regels voor codekwaliteit op testcode (net als dat voor Software Under Test geldt);
- Het kennen en gebruiken van Design Patterns bij het ontwikkelen van testcode;
- Het opzetten van een infrastructuur voor het geautomatiseerd uitvoeren van testen (bijvoorbeeld uitvoeren van testen in CI/CD, het parallel uitvoeren van testen, het runnen van testen met de juiste testdata);
- Het opzetten van dashboards voor het tonen van real-time testresultaten;
- Ontwikkelen van tools die gebruikt kunnen worden bij handmatig of exploratory testen.
Goed beschouwd kan de SET rol gezien worden als een (groei)functie voor developers (de Software Engineers) en als (groei)functie voor testers (de Test Engineers). Gegeven de vaardigheden die nodig zijn om een goede SET te zijn is het meer voor de hand liggend dat developers deze rol oppakken. Het is minder voor de hand liggend dat een traditionele tester, die bovenstaande ontwikkeling heeft doorgemaakt, de rol zal pakken, maar dat is natuurlijk niet uitgesloten, ook gezien mijn eigen carrièreontwikkeling.
‘A Software Engineer in Test Must Have The Heart of a Developer’
Andrew Knight
Het zou prachtig zijn als bedrijven de rol van de SET massaal omarmen als een rol dat zich beweegt tussen Software Engineer en Test Engineer. Het is de beste beschrijving die ik ben tegengekomen van de werkzaamheden die testautomatiseerders over het algemeen in onze bedrijven uitvoeren. Het geeft ook een duidelijke differentiatie weer tussen de Test Engineer enerzijds en de Test Automatiseerder anderzijds. Het onderstreept ook mijn standpunt: ‘Goede testers zijn geen goede testautomatiseerders. So what?’. De functie Test Engineer en Software Engineer in Test kunnen prima naast elkaar bestaan.
Hallo John,
Nieuw is de term inderdaad niet, je haalt terecht aan dat Google deze rol al onderkende in 2005 (zie ook het boek ‘How Google Tests Software ’, wat overigens een aanrader is).
Ik zie mezelf ook als een SET. Wat ik daarbij wil opmerken is dat ik op SET vlak geheel in mijn comfortzone zit, maar als je mij vraagt om als functioneel tester op te treden of als testcoordinator/testmanager merk ik al snel dat dit gewoon niet ‘mijn ding’ is. Daarom ben ik ook erg blij als je als SET/TA engineer kunt samenwerken met echte ‘Testers’. Laat mij maar lekker met de ‘test-ondersteunende’ techniek rommelen
Hi John,
Een leuke podcast die aansluit op jouw artikel: https://praeg.us/S01E10
Gr, Marcel