Pieter Edelman
14 September 2017

Snelheid van softwareontwikkeling met behoud van kwaliteit wordt voor elke industrie steeds belangrijker, dus ook voor machinebouwers. Kulicke & Soffa in Eindhoven werkt daarom voortdurend aan het optimaliseren van zijn softwareontwikkelproces. Testen is al jarenlang een integraal onderdeel daarvan. Het afgelopen jaar heeft de softwareafdeling van het bedrijf zijn testvisie nog eens herzien met de nieuwste inzichten.

We zien het overal om ons heen: waarde zit steeds vaker in software, of het nu gaat om consumentenproducten als lampen of auto’s, of om industriële automatisering zoals machinebouw. Gebruikers hechten steeds meer belang aan opties en features die extra waarde bieden ten opzichte van de basisfunctionaliteit. Meestal levert software de flexibiliteit en het onderscheidende vermogen hiervoor.

Die wetenschap passen ze al jaren toe bij Kulicke & Soffa (K&S) in Eindhoven. Het vroegere Assembléon is vooral gespecialiseerd in het bouwen van pick-and-place-machines om printplaten te voorzien van elektronische componenten. De Eindhovense vestiging, ooit begonnen als onderdeel van Philips, is naast een productiefaciliteit ook het innovatiecentrum voor deze machines. Softwareontwikkeling is hier de grootste afdeling.

Ook bij K&S speelt software tegenwoordig steeds vaker een cruciale rol in de functionaliteit van de apparaten. ‘Al gaan die innovaties toch vaak hand in hand met de hardware’, vertelt Jurian van de Laar, staff test engineer bij K&S Eindhoven. Maar het accent verschuift steeds meer van het aansturen van hardware naar het telkens toevoegen van nieuwe features aan bestaande machines. Om die reden heeft K&S Eindhoven de afgelopen jaren een continuous delivery-strategie geadopteerd waarbij het elk kwartaal een nieuwe softwareversie uitgeeft.

Een presentatie van hoogleraar Jan Bosch, die ook de softwaremanager van K&S Eindhoven Hans van Eldert bijwoonde, bleek daar heel goed bij aan te sluiten. Bosch drukt de industrie regelmatig op het hart om software net zo te ontwikkelen als Amazon en Google dat doen. Het is niet alleen zaak om méér functionaliteit te ontwikkelen, betoogt hij, het moet ook sneller. Bedrijven moeten direct inspelen op de ontwikkelingen in de markt en op hun klantvragen, en continu waarde blijven toevoegen. Wie stil blijft staan, verliest het van zijn concurrentie. Veel bedrijven weten dit ergens wel, maar zetten het vaak nog niet expliciet op de agenda.

 advertorial 
Microchip

Device lifecycle management for fleets of IoT devices

Microchip gives insight on device management, what exactly is it, how to implement it and how to roll over the device management during the roll out phase when the products are in the field. Read more. .

K&S heeft dat het afgelopen jaar juist wel gedaan. De grote uitdaging daarbij is om meer en sneller software te ontwikkelen terwijl de productkwaliteit behouden blijft. ‘Daarom zijn we gaan kijken hoe we dat idee van snelheid kunnen vertalen naar softwarekwaliteit en testen. Daar is echt een vernieuwde testvisie uit gerold’, vertelt Van de Laar.

KS_Iflex
Kulicke & Soffa Eindhoven bouwt pick-and-place-machines voor de elektronica-industrie.

Stabiel en herkenbaar

De vernieuwde testvisie is gebaseerd op vier pijlers, aldus Van de Laar. ‘De belangrijkste is automatisering: automatiseer alle tests waarvan dat kan. De afgelopen maanden zijn we bijvoorbeeld de bestaande testautomatisering gaan uitbreiden naar tests vanuit het perspectief van de gebruiker, in ons geval meestal de operator van de machine. Testen op gui-niveau dus, met een testraamwerk dat de knoppen op het scherm bedient en vervolgens beelden opzoekt en beoordeelt of elke actie leidt tot het correcte resultaat op het scherm.’

‘Vaak wordt er geadviseerd om dit soort gui-tests juist beperkt te houden. In veel applicaties is de gui namelijk heel dynamisch – bij sommige apps verandert die bijna dagelijks – en dat maakt testautomatisering heel onderhoudsgevoelig. Maar in een industriële omgeving wil je de gui juist stabiel en herkenbaar houden voor de operator. Het zijn de ‘knoppen’ om, soms bijna blindelings, de machine goed te kunnen bedienen. Dat leent zich dus heel goed voor gui-tests’, stelt Van de Laar.

Natuurlijk kan de software voor een machine niet altijd los worden gezien van de mechanica en elektronica. Sommige regressietests moeten daarom volgens een testprocedure handmatig op de machine worden uitgevoerd. Maar dat wil niet zeggen dat er geen stappen kunnen worden gemaakt in automatisering.

Bijvoorbeeld via simulatie. Voor een aantal tests kan het oppakken en plaatsen van een component worden gesimuleerd, terwijl alle bewegingen van de robot toch worden uitgevoerd. Dit maakt het mogelijk om ook ’s nachts automatische duurtests te draaien zonder voortdurend nieuwe componenten en printplaten te hoeven aanvoeren.

Dankzij testautomatisering kunnen testers hun expertise nu beter inzetten met exploratory testing, waarbij ze het script loslaten en op basis van hun kennis over de sterktes en zwaktes van het systeem gericht op onderzoek uitgaan. ‘Daarin bieden mensen de toegevoegde waarde boven de geautomatiseerde tests, waarmee je in feite steeds dezelfde controles uitvoert’, vindt Van de Laar.

Daarnaast speelt automatisering een belangrijke rol bij het zo ver mogelijk naar voren halen van tests in het ontwikkelproces. Vroeg vinden van fouten zorgt er niet alleen voor dat ze gemakkelijker zijn op te lossen – dus sneller en tegen lagere kosten – maar ook dat de stabiliteit toeneemt. En juist dat is cruciaal wanneer je vaak software aanpast en snel nieuwe functionaliteit naar de markt wilt brengen.

Ieder ander teamlid

Testen speelde van oudsher al een belangrijke rol bij Assembléon, weet Van de Laar. ‘Ik werkte destijds bij Improve Quality Services, een dienstverlenend bedrijf op het gebied van softwarekwaliteit dat ook assessments op testvolwassenheid deed bij Assembléon. Dit was toen in Nederland de enige organisatie die aan alle eisen voldeed van test maturity level 3. Teststrategie, testtechnieken en zelfs het beheer van de tests waren allemaal tot in de puntjes verzorgd.’

Bij de transitie naar Agile verschoven de accenten van processen, procedures en soms wel erg uitvoerige documentatie naar teams die zich toeleggen op sneller waarde leveren aan klanten. ‘De testafdeling is nu een stuk kleiner dan toen, maar onze rol is ook veranderd’, zegt Van de Laar. ‘De kern van de testaanpak is overeind gebleven, en daarmee het kwaliteitsbesef en het belang van tests.’

Daarmee veranderen ook de verantwoordelijkheden in het team: de tweede pijler in de testvisie. K&S zet in op een whole-team test approach, waarbij testen is verheven tot een integrale activiteit van het voltallige team. ‘Bij het maken van een feature hoort ook het maken van een automatische unit- of moduletest. Dat kun je prachtig kwijt in je definition of done, en het zit ook verankerd in de workflow, dus een story op het scrumbord is pas ‘done’ als die ook in de testkolom is geweest’, legt Van de Laar uit. ‘Dat is niet alleen een taak voor de tester, maar dat kan een taak zijn voor ieder ander teamlid.’

Ook de rol van de testers is veranderd, gaat Van de Laar verder. ‘Testers waren voorheen al volwaardige deelnemers van de scrumteams. Maar in plaats van alleen zelf testen helpen we nu het team bij het ontwikkelen, uitvoeren en beoordelen van goede tests. We dagen het team uit door veel vragen te stellen en zo het kwaliteitsbesef vast te houden.’

Vaste volgorde

De verankering van testen in het ontwikkelproces gaat echter om veel meer dan kwaliteitsbewaking. Juist in het snelheidsbetoog blijkt dit een extra dimensie toe te voegen, verklaart Van de Laar. ‘Je wilt je klant na elke sprint direct businessvalue kunnen aanbieden. Daarvoor is het nodig om je epics niet alleen in zo klein mogelijke story’s op te breken, maar ook om die zo veel mogelijk functioneel te maken. Daarbij helpt de vraag ‘Hoe ga je het testen?’ enorm.’

Een voorbeeldje: normaliter zal de robot componenten uit een tray oppakken in een vaste volgorde. Maar soms is een deel daarvan leeg, bijvoorbeeld als er nog een halve tray over is uit eerdere productie. ‘We werken daarom aan een epic waarin de operator kan aangeven welke posities op een tray overgeslagen moeten worden’, vertelt Van de Laar.

‘De eerste story’s beschreven vooral interne aanpassingen van de software om dit mogelijk te maken, onder meer door de pick-volgorde tweedimensionaal te modelleren. Die aanpassingen waren nodig, maar toen we gingen vragen hoe we dat kunnen testen en wat de klant daaraan heeft, bleek dat deze aanpassingen nog geen extra mogelijkheden opleverden voor de gebruiker. Deze vragen leidden tot ideeën om de story’s anders in te richten, bijvoorbeeld door eerst een stukje van de gui op te leveren. Daarop kunnen testers en klanten dan al eerder feedback geven. De softwarelagen daaronder worden dan ook al meteen mee getest.’

KS_tray
Een tray zit niet altijd vol. Een nieuwe softwarefeature helpt de operator hiermee om te gaan.

Risicopoker

Met name in de voorbereiding van de exploratory tests en het selecteren van de procedures die handmatig worden uitgevoerd tijdens regressietests voor de kwartaalreleases is het van belang om zorgvuldig te bepalen waar de aandacht op moet worden gericht. Dat is de derde pijler in de testvisie. De teams hebben daarvoor een variant van planningpoker geadopteerd. ‘Met risk poker, ook afkomstig van Improve, gebruiken we eveneens kaarten, maar in plaats van storypoints schatten we op deze manier risico in. Wat is de kans dat een feature toch nog fouten bevat, ondanks alle tests die tijdens en na de ontwikkeling al zijn uitgevoerd? Er kunnen bijvoorbeeld fouten zijn ontstaan door afhankelijkheden elders in de software, of door toegenomen complexiteit. En als tweede element: hoeveel last zouden onze klanten daarvan hebben?’, legt Van de Laar uit.

De vierde – overigens zeker niet de onbelangrijkste – pijler van de visie bestaat uit de manier waarop de software wordt ‘uitgerold’ naar klanten. Na elke driewekelijkse sprint, maar steeds vaker ook wekelijks, wordt de nieuwe baseline verstuurd naar een Roemeense klant en partner waarmee K&S een nauwe relatie onderhoudt. ‘Die draaien echt productie en dat levert heel snel waardevolle feedback op’, vertelt Van de Laar. ‘Hun bevindingen pakken we direct op.’

Vervolgens wordt de software nog in een vast ritme naar een aantal andere klanten (referentiesites) uitgerold waarmee ook afspraken zijn gemaakt om feedback te verzamelen uit productie en deze direct op te pakken. ‘Daarmee garanderen we al een flink aantal productie-uren op diverse sites in allerlei configuraties voordat we feitelijk de releasemijlpaal passeren. Van relaties in het veld horen we dat we met deze aanpak echt onderscheidend zijn’, zegt Van de Laar. ‘Het mes snijdt bovendien aan twee kanten: het levert snel feedback op en de roll-out-klanten krijgen ook sneller hun oplossing.’

Na elk kwartaal worden in de eerstvolgende sprint de regressietests uitgevoerd. Hierbij worden de teams in de testuitvoering ondersteund door twee engineers die overkomen van de Roemeense partner en die dankzij hun dagelijkse servicewerkzaamheden veel kennis en ervaring meebrengen. ‘Daardoor kennen ze de machines van haver tot gort en kunnen ze heel goed fouten vinden’, aldus Van de Laar.

De laatste stap is een jaarlijkse commerciële softwarerelease die standaard wordt gebruikt voor service-upgrades in het veld, en die op alle nieuwe machines wordt geïnstalleerd die de fabriek verlaten.

Elke sprint

De testaanpak is uiteraard niet het enige instrument uit de visie op softwarekwaliteit. Een belangrijk deel zit nog verder aan de voorkant in het proces, namelijk door fouten te voorkomen. Daarom worden bijvoorbeeld alle problemen die vanuit de referentiesites worden aangemeld ook onderzocht op hun root cause: waarom heeft deze fout de klant kunnen bereiken en wat kunnen we verbeteren om dit in de toekomst te voorkomen?

Van de Laar ziet er in elk geval de voordelen van in om te blijven schaven aan het ontwikkelproces. ‘We brengen nu jaarlijks zo’n commerciële release uit, maar we doen elk kwartaal al een uitgebreide regressietest. Met de testautomatisering die we in gang hebben gezet, kunnen we de dekkingsgraad, snelheid en frequentie van testuitvoering veel verder opvoeren. Wat zou er verder nodig zijn op test- en kwaliteitsgebied om elk kwartaal een commerciële release te kunnen doen? En waarom zouden we dan niet elke sprint naar alle klanten kunnen gaan? Met telkens nieuwe features die waarde brengen naar de klant, zonder verlies van kwaliteit. Dat is het ultieme doel in onze visie.’