Menno Jonkers
Aschwin Marsman
5 sep 2008

Om kassa‘s van derden beter te laten samenwerken met zijn eigen zelfscankassa‘s riep Scanpoint uit Amersfoort de hulp in van de Leusdense specialist in testautomatisering Axini. Samen zijn ze erin geslaagd de implementatietijd te reduceren met 50 procent, terwijl ze de testdekking hebben weten te verhogen met 500 procent. Dit verhaal vertelt hoe ze dit hebben bereikt en wat ze hebben geleerd.

Bij een Scanpoint-zelfscankassa scannen en betalen klanten zelf hun boodschappen. De voordelen zijn helder: ze hoeven niet in de rij te staan en de winkelier kan zijn personeel flexibeler inzetten. Technisch is het apparaat een uitbereiding op een gewone kassa. De Scanpoint handelt de bediening en het scannen af, terwijl de kassa zoals gebruikelijk de artikelgegevens ophaalt en bijvoorbeeld de berekeningen uitvoert. De integratie in de supermarktinfrastructuur beperkt zich daarmee tot het koppelen van de twee systemen.

De communicatie tussen Scanpoint en kassa verloopt via het door Scanpoint ontwikkelde SCRP-protocol. De kassaleverancier implementeert dit in zijn kassa. Een correcte werking van SCRP is cruciaal: werkt het protocol niet, dan werkt de Scanpoint niet. Daarom worden implementaties samen met de kassaleverancier getest en bij wijzigingen in de kassa of het protocol opnieuw getest.

De ervaring leert dat goed handmatig testen van het protocol tijdens het implementatieproject van de kassaleverancier minimaal een inspanning vereist van één mensmaand. De doorlooptijd komt inclusief foutherstel al snel op drie maanden. Dan nog blijkt het gemakkelijk om fouten over het hoofd te zien vanwege de grote hoeveelheid mogelijkheden.

Eindeloos minder tijd

Om het testen te versnellen en te verbeteren, startte Scanpoint een testautomatiseringsproject. Met ’klassieke‘ testscripts kan de testuitvoering snel en goedkoop herhaalbaar worden, maar het handmatig creëren en onderhouden van duizenden scripts is erg kostbaar en vrijwel onmogelijk. Scanpoint zocht naar een onderhoudbare oplossing en kwam uit bij Axini, specialist in modelgebaseerd testen.

Modelgebaseerd testen is een vorm van testautomatisering die zich onderscheidt door automatische testgeneratie. Hierdoor zijn protocollen en systemen zeer uitgebreid en met een bijzonder hoge afdekking van hun functionaliteit door te lichten. Ook biedt de aanpak de gangbare voordelen van testautomatisering: automatische uitvoering en evaluatie van testscenario‘s. Omdat er vaak (opnieuw) wordt getest, de tests complex zijn en veel tijd kosten, lijkt het testen van het SCRP-protocol bij uitstek geschikt voor een modelgebaseerde aanpak.

Een veelgestelde vraag bij modelgebaseerd testen is of je het systeem niet opnieuw bouwt. In zekere zin is testen altijd ’werk overdoen‘: we moeten specificaties lezen en testplannen en -ontwerpen opstellen. Bij modelgebaseerd testen maken we aan de hand van de specificaties een functionele beschrijving van het systeem, het model.

Modelleren voor testen kost veel minder tijd dan het bouwen van een systeem. We testen op een hoger abstractieniveau, waardoor het SCRP-model maar een fractie is van de overeenkomstige programmacode van de kassaleverancier. Om vast te stellen of de kassa goed werkt, hoeven we bovendien lang niet naar alle details te kijken. Ter vergelijking: een grondige technische keuring van een auto kost eindeloos minder tijd dan de ontwikkeling ervan. In de praktijk is de modelleerinspanning van dezelfde orde als de inspanning die een goed handmatig testtraject vergt.

Honderdduizenden testscenario‘s

Met Axini heeft Scanpoint een modelgebaseerde testomgeving ingericht voor het SCRP-protocol (Figuur 1). Aan de hand van de SCRP-documentatie hebben we een model opgesteld in de taal Promela. Per toestand van het protocol staat hierin welke commando‘s en reacties mogelijk zijn en wat de volgende toestand is (zie kader ’Het SCRP-model‘).

De adapter is de brug tussen het model en de kassa. Voor Scanpoint werken we met een TCP/IP-adapter; er zijn ook varianten voor databasesystemen, J2EE-applicaties en webservices. De adapter zet een modelactie om naar een SCRP-commando en geeft dit via een TCP/IP-interface door aan de kassa. De reacties worden opgevangen, op vorm (syntax) gecontroleerd en omgezet naar modelbegrippen. Soms lopen de tests via internet, wanneer de kassa bij de (buitenlandse) kassaleverancier staat.

De Scanpoint Lite-zelfscankassa is onder meer in gebruik bij de supermarkten C1000, Casino, Hoogvliet en Vomar. Het meubel bevat een traditionele kassa. Klanten ziet dit niet: zij bedienen de Scanpoint, die op zijn beurt de kassa aanstuurt. De pinterminal en de bonprinter hangen direct aan de kassa. Het Amersfoortse Scanpoint is sinds 1999 actief in het ontwikkelen en fabriceren van zelfscankassa‘s. Afgelopen zomer werd het bedrijf onderdeel van het Zweedse Itab.

Axini Testmanager coördineert het testproces. Het programma genereert testscenario‘s, voert deze uit, evalueert resultaten en rapporteert onder meer over gevonden fouten en bereikte dekking. Testmanager kan modellen doorrekenen op correctheid en aan de hand van het model het te testen systeem simuleren. Dit laatste is bijvoorbeeld handig om concreet te zien hoe een nog te bouwen systeem zich moet gaan gedragen.

Nov
28

Benelux RF Conference

Nijmegen

Learn about 5G, advanced technologies, powered by RF, radar, smart antennas

Om testscenario‘s te genereren, loopt Testmanager systematisch het SCRP-model af. Daarbij maakt hij scenario‘s door keuzes te maken uit de mogelijke commando‘s en de verwachte reactietypen hierop vast te leggen (zie kader ’Een testscenario‘). Zo zijn honderdduizenden testscenario‘s mogelijk. Testmanager kan hier volgens een aantal strategieën een selectie uit maken, bijvoorbeeld de kleinste verzameling die toch de gewenste dekking haalt.

Blijven draaien

In het Scanpoint-project zijn we begonnen met een kassasimulator die bij het handmatig testen als de facto standaard wordt gebruikt. Zo‘n referentie-implementatie versnelt het modelleerproces aanzienlijk, omdat we tussentijds kunnen kijken of het model op koers ligt. Ondanks dat deze simulator en de specificatie al lange tijd stabiel waren, hebben we verschillende onduidelijkheden en fouten naar boven gehaald.

De eerste tests met kassasystemen van leveranciers laten zien dat we afwijkingen zeer snel vinden. Daarbij ligt gelijk het scenario vast om de fout te reproduceren. Het werk van de testers verschuift van veel herhaling naar gerichte foutanalyse.

HandmatigModelgebaseerd
Modellering en configuratie adapter (eenmalig)30 dagen
Voorbereiding1-2 dagen1 dag
Aantal testscenario‘s5050 duizend
Bereikte dekking15 procent> 90 procent
Uitvoering vijf testrondes inclusief rapportage25 dagen5 dagen
Doorlooptijd protocolimplementatie3 maanden1,5 maand

De projectresultaten laten zien dat modelgebaseerd testen zijn beloften heeft ingelost: snel en grondig testen tegen een aanvaardbare inspanning. De investering van dertig dagen in het model winnen we bij een enkele implementatie met vijf testrondes al bijna terug (Tabel 1). Met meerdere implementaties per jaar verdient het project zich zeer snel terug.

De grootste winst is dat we veel grondiger testen. Waar handmatig testen zich vooral beperkt tot de meest gebruikte functionaliteit, dekken de automatische tests nagenoeg alles af. Door ook de meer uitzonderlijke situaties te testen, voorkomen we productieverstoringen, want het zijn vaak juist de uitzonderingssituaties die tot problemen leiden.

Om te beoordelen hoe goed er is getest, hebben we gekeken naar het aantal bereikte modeltoestanden met hun toestandsovergangen. Een alternatieve maat is de bereikte paden in de code van het te testen systeem. In de praktijk wordt 100 procent dekking zelden gehaald, omdat overgangen of paden onbereikbaar zijn.

Andere voordelen van modelgebaseerd testen zijn duidelijkere specificaties, het vervallen van saai testwerk en een verkorting van de ontwikkeltijd. Dankzij het automatisch testen kunnen zowel Scanpoint als de kassaleveranciers vaker en vlotter updates van hun producten uitbrengen en productieverstoringen beperken. De kassa kan blijven draaien.

Figuur 1: De modelgebaseerde testomgeving

We zijn nu bezig met een vervolgproject om de testomgeving als webgebaseerde selfserviceomgeving aan leveranciers beschikbaar te stellen. Dit verhoogt hun zelfredzaamheid en komt de kwaliteit van de implementatie ten goede. Deze stap past in het pad naar formele certificering van SCRP-implementaties.

Menno Jonkers is partner bij Axini, leverancier van producten en diensten voor het modelgebaseerd testen van bedrijfsapplicaties en -protocollen. Aschwin Marsman heeft ruim vijf jaar gewerkt aan de zelfscankassa‘s van Scanpoint. Voordien heeft hij onder meer software ontwikkeld voor luchtverkeersleidingssystemen en wafersteppers.

Op 9 oktober verzorgt Machiel van der Bijl van Axini tijdens Bits&Chips 2008 Embedded Systemen een lezing over het modelgebaseerd testen van de Scanpoint-zelfscankassa‘s.