Een nieuwe flexibele methode voor geautomatiseerd testen met spreadsheets leidt tot aanzienlijke verbeteringen in veel testsituaties. Als vervolg op een vorige week geplaatst artikel tonen CMG-consultant Hans Buwalda en anderen hoe de methode is te gebruiken voor de millennium- en euro-problematiek. De beschreven technieken zijn tevens van toepassing in andere grootschalige conversies, zoals de overstap naar een ander dbms of technisch platform.
De millennium-problematiek betreft het aanpassen van geautomatiseerde informatiesystemen waarvan de jaartelling door de eeuwwisseling ontregeld raakt. Vrijwel elk individueel conversieprobleem daarin is eenvoudig op te lossen door een ervaren programmeur. Typerend voor een grote bank is het aantal van dertigduizend modules op een mainframe. Gesteld dat aan elke module één dag besteed wordt om deze te onderzoeken, te converteren en te testen, dan leidt dat tot een werklast van dertigduizend mensdagen. Dit resulteert in circa 150 mensjaar aan inspanning voor de complete millennium-aanpassing voor deze bank.
De millennium-problematiek leidt vooral tot een technische operatie. Veel datums wordt vastgelegd met twee cijfers voor het jaartal. Voor een goede identificatie zijn eigenlijk vier cijfers nodig. Veel van de problemen zijn te bestrijden door gebruik te maken van een breekjaar. Bij gebruik van bijvoorbeeld 1970 als breekjaar zullen alle jaartallen onder de 70 in het nieuwe millennium liggen en alle overige jaartallen in het huidige millennium. Zo is te voorkomen dat een – meestal kostbare – wijziging in de database(s) moet worden doorgevoerd. Men moet echter wel zorgvuldig testen of deze oplossing in de betreffende systemen tot de gewenste resultaten leidt.
Organisaties kunnen zich niet veroorloven nog lang te wachten met de millennium-conversie. Niet alleen vanwege de enorme hoeveelheid werk, maar ook omdat sommige systemen al voor 2000 problemen krijgen. Zo zal 1999 een kritiek punt zijn, omdat het jaartal 99 in veel systemen een speciale betekenis heeft. Het kan een indicatie zijn voor een waarde die niet aanwezig is. Dat jaartal zal dan echter ook gebruikt moeten worden om het in productie nemen van de systemen te regelen. Dit leidt ertoe dat de noodzakelijke aanpassingen rond het millennium al in 1998 moeten worden afgerond. In feite sluit de termijn al één of enkele maanden voor het einde van dat jaar, omdat daarna de werkzaamheden rond het bij banken gebruikelijke jaarwerk beginnen.
De euro-operatie
De euro-operatie betreft de automatiseringskant van de invoering van de nieuwe Europese munt. Veel van de uitvoeringsproblemen zijn vergelijkbaar met die van het millennium. Vaak zijn er dezelfde systemen en programma’s bij betrokken.
Er is echter ook een aantal verschillen. Allereerst kent de euro-operatie naast het automatiseringsaspect een duidelijk bedrijfskundig voortraject. Er zal beslist moeten worden wat er op welk moment op een factuur of rekeningafschrift komt te staan. Veel formulieren en brochures zullen aangepast moeten worden. Juristen moeten zich buigen over het aanpassen van regelingen en standaardvoorwaarden. Veel van dit werk moet gebeuren voordat aanpassingen in de automatisering mogelijk zijn.
Een ander verschil is dat op een gegeven moment verplicht een conversie van alle bestanden plaats zou moeten vinden. Een situatie als bij sommige Engelse banken, die intern nog steeds met het oude muntstelsel van shilling en pence werken, moet worden vermeden.
Een belangrijk knelpunt ontstaat in 1998. Naast de algemene invoering in 2002 kent de euro ook een girale fase, die al op 1 januari 1999 ingaat. Vanaf dat moment kan de euro op vrijwillige basis gebruikt worden naast of in plaats van de gulden. Indien banken dat ondersteunen, is al giraal met euro’s te betalen. Vanaf deze datum geldt een wettelijk vastgestelde omrekeningsfactor. Naar verwachting zullen veel bedrijven en instellingen, vooral binnen de overheid en de financiële wereld, om strategische redenen ook daadwerkelijk met euro’s gaan werken. Dat betekent dat een deel van de inspanningen al in 1998 een hoogtepunt zal kennen.
Beide operaties zijn vooral een kwantitatief vraagstuk, waarbij veel testwerk tegelijkertijd gedaan moeten worden. De meest waarschijnlijke piektijden zijn zomer en najaar 1998 voor het millennium en de eerste fase van de euro. Deze periode wordt gevolgd door diverse perioden in 2000 en 2001 voor de tweede fase van de euro. De planning van de twee operaties zal goed moeten worden afgestemd, zowel onderling als ten opzichte van reguliere werkzaamheden. Een groot deel van het testwerk is pas te verrichten als de conversietrajecten gereed zijn, en zal snel moeten worden afgerond.
Ofschoon het algemene advies luidt om beide trajecten zoveel mogelijk gescheiden aan te pakken, is een uitzondering te maken voor tenminste een deel van de testinspanningen. Dit geldt met name voor de zogenaamde regressietests, waarover later meer.
Automatisch testen
Testen vormt een substantieel percentage van alle activiteiten rond het millennium en de euro, hoger zelfs dan bij normale automatiseringsprojecten. Maakt testen in het algemeen circa 20 tot 30 procent van de totale kosten uit, hier komen deze percentages boven de 50 procent. Reden genoeg om te zoeken naar middelen om deze inspanningen te automatiseren. Ook de motivatie van de direct betrokkenen is daarbij gebaat, omdat de techniek met name routinehandelingen overneemt. Een andere reden is de veel hogere productiviteit. Gegeven de relatief korte periode die voor testen met betrekking tot millennium en euro beschikbaar zal zijn, is dat een belangrijk argument.
Op de volgende niveaus zullen in ieder geval tests ontwikkeld moeten worden: unitniveau (tests van individuele programma’s); systeemniveau (tests van complete systemen of subsystemen), en systeemintegratie (tests over de systemen heen).
De testgevallen die voor deze tests worden ontwikkeld, zullen grote overlap vertonen. Het zal steeds gaan om een aantal cruciale datums en combinaties die niet alleen door een afzonderlijke unit goed verwerkt moeten worden, maar ook over een keten van units heen tot goede resultaten moeten leiden. Binnen deze niveaus moeten ruwweg twee groepen tests worden uitgevoerd. Daarbij is onderscheid te maken tussen gerichte en algemene tests.
Gerichte tests letten op één bepaald aspect van de verwerking en proberen daarvoor een groot aantal varianten. Een voorbeeld vormen de toekomsttests voor het millennium. Daarbij wordt vastgesteld of een systeem correct zal functioneren op een aantal specifieke datums in de toekomst. De datums 1 en 3 januari 2000 zijn daarbij de belangrijkste. De eerste werkdag in het nieuwe millennium is 3 januari. Daarnaast kunnen ook datums in andere jaren, zoals 1999 en 2001 belangrijk zijn. Dat geldt ook voor de datums rondom 29 februari 2000. Niet alle programma’s behandelen 2000 namelijk als een schrikkeljaar. Ook tests rondom breekjaren zijn van groot belang. Voor de euro zullen vooral tests op de omrekeningen en de volledigheid van conversies ontwikkeld moeten worden.
Naast de gerichte tests zijn ook algemene tests nodig. Het gaat daarbij vooral om de regressietests. Deze hebben als doel na te gaan of een aangepaste versie van een systeem goed blijft werken. Vaak is er al een of andere vorm van regressietest beschikbaar. Toch kan het aanbeveling verdienen deze tests in het kader van het millennium en de euro uit te breiden en zo volledig mogelijk te automatiseren. Het aantal keren dat de tests moeten worden uitgevoerd is weliswaar nog niet te voorzien, maar zal in ieder geval aanzienlijk zijn. Er zullen aanpassingen in de systemen nodig zijn. Ook van de onderliggende systeemprogrammatuur zullen nog regelmatig nieuwe versies verschijnen.
Een groot probleem bij de regressietests is dat er vaak geen uitgewerkte sets voor bestaan, of dat de sets, als ze wel bestaan, moeilijk te manipuleren zijn. Ook het gebruik van gehele of gedeeltelijke productiebestanden is vaak omslachtig en bij interactieve systemen meestal niet mogelijk. Een goed uitvoerbare methode is het genereren van tests met behulp van CMG:Cast. Naast de mogelijkheid de gewenste testdatums door middel van actiewoorden op te voeren, kent deze methode een speciaal mechanisme om verwachte uitkomsten te kunnen afleiden uit het al bestaande systeem. Bij veel regressietests gaat het er immers niet om de huidige versie van een systeem te testen, maar de nieuwe versie die na het noodzakelijk onderhoud is ontstaan.
Ten aanzien van kritische processen, zoals het betalingsverkeer bij een bank, mogen geen risico’s worden genomen. In dergelijke gevallen komen ook grootschalige toekomsttests in aanmerking. In feite gaat het dan om het draaien van volledige productieruns, waarbij alle betrokken gegevens worden verouderd. Datumvelden worden gemuteerd om een toekomstige situatie te kunnen simuleren.
Tijdreis
Een speciale problematiek bij het millennium is de ’tijdreis’. Voor een aantal tests is het nodig de omgeving op een toekomstige datum te kunnen instellen. Behalve de datums in de invoerbestanden moeten ook datums in databases worden ingesteld en moet de systeemdatum worden veranderd. Dit is een complexe operatie. Er zijn goede hulpmiddelen op de markt om de systeemdatum aan te passen en bestanden te manipuleren. Het aantal uit te voeren handelingen kan echter behoorlijk oplopen en er kan veel misgaan. Meestal gaat het om acties die een operator handmatig moet starten. Inzet van CMG:Cast biedt de mogelijkheid dit proces overzichtelijk te automatiseren. Voor de individuele acties worden dan actiewoorden aangemaakt met datumvelden als argumenten. Vervolgens wordt in een spreadsheet een testcluster gemaakt dat de acties in de juiste volgorde uitvoert, waarbij de datum waar de tijdreis heen moet gaan in een centrale cel wordt ingevoerd. Vervolgens zijn daarvan de individuele cellen met formules af te leiden.
Een veel voorkomend probleem is het optreden van omrekenverschillen in rekeningen met bedragen die zowel in euro’s als guldens zijn weergegeven. Ofschoon wettelijk toegestaan vragen deze afwijkingen om een zorgvuldige implementatie.
Figuur 1 geeft een voorbeeld van een testcluster voor een dergelijke euro-test. Details over de gebruikte aanpak zijn te vinden in het eerste artikel (Computable, 16 mei 1997). De bedoeling van de test is te controleren of het saldo en de boekingen correct in euro’s en guldens worden verwerkt.
Eerst wordt een saldo in euro’s opgevoerd en gecontroleerd met behulp van de actiewoorden ‘voer in saldo’ en ‘check saldo’. Hierbij wordt het saldo ook omgerekend naar guldens via de vermenigvuldigingsfactor 2,1519. Vervolgens wordt door middel van het actiewoord ‘check boeking’ een aantal boekingen gedaan, waarbij steeds gecontroleerd wordt of de boeking voor het juiste bedrag in euro’s en guldens wordt verwerkt. Als laatste wordt het eindsaldo gecontroleerd. Hier ontstaat een verschil met het eindsaldo in guldens. Het eindsaldo via optelling van het beginsaldo in guldens met de boekingen in guldens levert 484,19 op. Dat is overeenkomstig de voorspelde waarde. Wordt het eindsaldo echter bepaald door omrekening van het eindsaldo in euro’s naar guldens, dan is het eindresultaat 484,18. Het testcluster leidt dus tot een afwijking in de laatste regel als gevolg van afrondingsfouten.
Een veel voorkomend probleem bij de millennium-overgang is het optreden van fouten bij de berekening van datumverschillen.
Figuur 2 toont zo’n typisch op het millennium gericht testcluster. Met behulp van het spreadsheet is een aantal testgevallen aangemaakt. Door gebruik te maken van formules zijn de testgevallen snel te variëren. In het voorbeeld wordt een betalingskorting berekend. Door middel van ‘check korting’ worden de betalingsgegevens ingevoerd en de kortingen die het systeem toekent gecontroleerd. Als de klant op tijd betaalt, wordt een betalingskorting toegekend. Is de klant te laat, dan wordt die korting niet toegekend. Met behulp van spreadsheetformules zijn snel varianten rondom het jaar 2000 te maken, inclusief bijbehorende betaaldatums en kortingspercentages. In de praktijk zijn waarschijnlijk aanzienlijk meer varianten vereist dan hier zijn weergegeven. Daarbij kan gedacht worden aan datums rondom weekends, feestdagen en een eventueel gekozen breekjaar.
De tweede sectie van het testcluster geeft een andere variant weer. Daarbij wordt de variatie van datums uitbesteed aan de geautomatiseerde testuitvoering, ofwel de navigatie. In dit voorbeeld gebeurt dat met de actiewoorden ‘begin varidate’ en ‘end varidate’. Deze actiewoorden herhalen de tussenliggende testregels voor alle interessante datumgevallen, waarbij de verdere testresultaten invariant moeten blijven. De velden die met ‘@’ beginnen, worden gevarieerd. De datumgevallen worden in dat geval vastgelegd in een tabel die het testtool tijdens de testuitvoering raadpleegt. Voordeel van deze werkwijze is een beperking van het aantal actiewoorden, waardoor de testclusters korter en dus leesbaarder blijven. Bovendien hoeft het aantal datumvarianten alleen op één plaats te worden aangepast of uitgebreid, als voortschrijdende inzichten daartoe aanleiding geven.
Gestructureerd
Door gebruik te maken van de beschreven methode en speciale mechanismen, zijn snel tests en testomgevingen te ontwikkelen en te manipuleren. Daardoor is een gestructureerde en beheersbare werkwijze op te zetten voor het testen van millennium en euro.
Ofschoon de inspanningen voor impactanalyses en conversies voor zowel het millennium als de euro onder grote druk staan, is er voor het opbouwen van tests nog wel enige tijd beschikbaar. Echte grote tijdsdruk zal zich in de zomer van 1998 voordoen. De nu nog beschikbare tijd kan het best worden besteed aan het maken van zoveel mogelijk tests via testclusters en bijbehorende navigatie. Deze tests kunnen al worden uitgeprobeerd op de huidige systemen. Als dan de nieuwe of aangepaste systemen beschikbaar komen, kunnen de tests daarop snel en doelmatig worden uitgevoerd. Gebruikmaking van clusters maakt het eenvoudiger om tests op elkaar af te stemmen over de systemen heen.
Organisaties die op tijd beginnen met het maken van tests creëren voor zichzelf een toegevoegde waarde. Die waarde blijft behouden, ook na afloop van de euro- en millennium problematiek. In dit opzicht vormen de euro- en millennium-problematiek dus niet alleen een bedreiging, maar ook een kans tot ontwikkeling van efficiënte en hoogwaardige testmethodieken.
Hans Buwalda, André Kok en Henk Sanders zijn werkzaam als senior management consultant bij CMG Finance.