Vincent Verhelst
Nederlandse banken zijn grootschalig geautomatiseerd. ICT is een integraal onderdeel geworden van de het zakenleven. Banken gaan mee in nieuwe technologische ontwikkelingen, waaronder internetbankieren. Dit wordt aangeboden als een gratis dienst voor de klant, met grote voordelen, namelijk altijd en overal inzicht in het actuele saldo hebben en bankzaken regelen – waar en wanneer het de gebruiker uitkomt. Benodigdheden? Een computer of applicatie op de tablet of smartphone en een internetverbinding. Maar toch…
Toch zijn er regelmatig problemen met internetbankieren, waarbij het systeem uit de lucht is en ‘altijd en overal’ niet opgaat. Deze storingen zijn van negatieve invloed op het consumentenvertrouwen in banken. Verder schaadt een storing het imago van de betreffende bank, bijvoorbeeld door de media-aandacht die eraan gegeven wordt. Banken willen ‘interNIETbankieren’ zien te voorkomen. Softwaretesters spelen hierbij een belangrijke rol, aangezien zij de problemen omtrent internetbankieren tijdig kunnen traceren en verminderen.
Internetbankieren
Internetbankieren wordt beschouwd als één van de meest complexe en ingewikkelde applicaties in de huidige softwareontwikkeling. Dit geldt ook voor het testen van deze applicaties. De belangrijkste applicatiekenmerken van internetbankieren zijn :
* Multi tier-functionaliteit om duizenden gebruikers te ondersteunen, die gelijktijdige gebruik maken van de applicatie
* Integratie in wereldwijde IT-omgevingen: meestal integreert een bankapplicatie met tal van andere toepassingen, zoals de betalingenstromen en beurstransacties
* Complexe zakelijke workflows
* Real time en snelle batchverwerking
* Groot aantal transacties per seconde
* Veilige transacties op basis van diverse protocollen
* Rapportagefunctionaliteit om de dagelijkse miljoenen transacties te monitoren
* Uitgebreide en actieve logging functionaliteit om eventuele problemen voor te zijn en op te lossen
* Grootschalig en robuust opslagsysteem.
De IT-architectuur van bankapplicaties bestaat over het algemeen uit een meer lagen model. Voor transacties met behulp van internetbankieren via een applicatie of een browser is in de eerste plaats een webserver nodig. In deze middenlaag kan direct het inkomende en uitgaande berichtenverkeer van de webserver gevalideerd worden. Verder zorgt een database voor de zorgvuldig opslag van gegevens. Als laatste moet een sterke transactieprocessor, zoals een mainframe of legacy systeem, de biljoenen transacties per seconde probleemloos uit kunnen voeren.
Belangrijkste oorzaken storingen internetbankieren
Zoals hierboven omschreven, is er voor internetbankieren een zeer complex applicatielandschap ingericht. Dat zorgt logischerwijs voor een verhoogd risico op fouten. Die kunnen leiden tot storingen, waardoor internetbankieren niet functioneert.
Een aantal belangrijke oorzaken zijn:
* Onderhoudswerkzaamheden
* Niet up-to-date houden van systemen
* Verschillende mobiele platformen
* Onvolledige release management
* Complexiteit van systemen
* Toename van het volume van berichten
* Afhankelijkheid van externe partijen (zo is het bijvoorbeeld niet helder dat er een upgrade gedaan moet worden),
* Betrokkenheid van verschillende disciplines
* Aanvallen van buitenaf
* Menselijke fouten
* Testwerkzaamheden.
Bij testwerkzaamheden en ‘interNIETbankieren’ geldt bijvoorbeeld softwareconfiguratie, waarbij er in ‘geïsoleerde omgevingen’ getest wordt. Ook kan het zijn dat de volwaardige testdata is niet voorhanden is, of een eenduidig testbeleid binnen de bankorganisatie uitblijft.
Testen in geïsoleerde omgevingen zorgt er vaak voor dat koppelingen naar andere systemen nog niet beschikbaar zijn. Wanneer de software dan weer in een volwaardige omgeving wordt geplaatst, kunnen op dit vlak problemen ontstaan. Verder kan applicatietesten het meest zorgvuldig gedaan worden met de originele productiedata. Die data mag echter niet gebruikt worden voor testdoeleinden. Hierdoor wordt fictieve data gegenereerd, waarmee getest kan worden. Echter is het zo dat situaties hiermee vaak niet afgedekt kunnen worden. Zorgvuldig testen en regressietesten van de applicatie is van groot belang, omdat eventuele fouten en problemen omtrent internetbankieren worden getraceerd en opgelost.
Storingen voorkomen door testen
De genoemde oorzaken voor het niet functioneren van internetbankieren hebben veelal te maken met de complexiteit van de online bankapplicaties. Zouden die eventueel voorkomen kunnen worden door applicaties grondiger te testen? Softwaretesten betreft een proces dat inzicht geeft in en adviseert over, de kwaliteit van de software en de daaraan gerelateerde risico’s. Alles is met elkaar verbonden en moet non-stop beschikbaar zijn. Laat de betrokken partijen intensief samenwerken en op de hoogte worden gehouden van de wijzigingen op de programmatuur en het achterland. Communicatie speelt hierbij een belangrijke rol.
Wanneer niet alle ketenpartijen tijdens een grote release op de hoogte zijn van bepaalde wijzigingen, bijvoorbeeld het achterland of de communicatielaag, dan kan de testafdeling niet de volledige ketentesten uitvoeren. Daardoor bestaat er een kans dat er storingen optreden. Zeker in een omgeving waar Agile wordt gewerkt, is een goede afstemming van groot belang om de snelheid van opleveringen hoog te houden. Om dit soort problemen te tackelen, kan een papierenketentest gehouden worden. In deze sessie zitten alle partijen om tafel en wordt er stap voor stap besproken wat de wijzigingen zijn en welke datatransformatie gedaan worden door alle partijen.
Hoe wordt er getest?
Ondanks dat storingen omtrent internetbankieren vooral veroorzaakt worden door de complexiteit van de applicatie en enorme toename van gebruikers, kan zorgvuldig testen van applicaties het risico op storingen verkleinen. Hoe gaat dit bij bankapplicaties in zijn werk? Bij softwareontwikkeling zijn er in iedere fase verschillende testtechnieken toepasbaar. De toegepaste technieken zijn veelal:
Testen op technische validatie
* Unittesten
* Testen van de (software-)code
* Automatische systeemtesten met behulp van tooling
* Systeem Integratie Testen met stubs. Zoveel mogelijk geautomatiseerd
* Ketentesten end-to-end.
Testen op functionele validatie
* Op basis van de (functionele) specificatie en daaraan gekoppelde testcases, validatie uitvoeren
* Applicatietesten door ervaren testers en eindgebruikers.
Productie acceptatie testen
* Applicaties worden getest met functioneel en technisch beheer om fouten in een productie-like omgeving op te sporen
Load testen
* Uitvoeren van performance & stresstesten.
Security testen
• Testen van de softwarebeveiliging
Risico’s op storingen omtrent internetbankieren worden door testen verkleind. De kosten om te testen, zouden voor de consument waarschijnlijk niet opwegen tegen de onbeschikbaarheid. Kortom, keuzes. In ieder geval de overweging waard, zijn: releases, de wijze van softwareontwikkeling, communicatie, performance, versiebeheer en beveiliging. Hierbij is het van belang dat er eenduidige afspraken worden gemaakt over softwareontwikkeling en de vastlegging van documentatie. Dit is de basis voor een goed werkende applicatie en bovendien de basis om goed te kunnen testen.
Daarnaast zou een bankorganisatie een breed testbeleid door moeten voeren. Dit betekent dat er op iedere afdeling voldoende, gespecialiseerde testers werkzaam zouden moeten zijn, om alle applicaties en systemen continu te laten testen. Hoe effectiever en beter gestructureerd er getest wordt, des te beperkter de risico’s en kleiner de kans op fouten / storingen. Als laatste zouden de banken die nog geen eenduidig testbeleid hebben, moeten investeren in volwaardige testomgevingen, die een goede afspiegeling vormen van de realiteit. Zo kunnen de tests beter uitgevoerd worden, zonder het risico dat een applicatie in een testomgeving wel goed functioneert, maar in een volwaardige toch fouten blijkt te hebben. Hoe realistischer de testomgeving, des te groter de kans dat alle fouten en problemen opgespoord kunnen worden.
De auteur, Vincent Verhelst, is algemeen directeur bij Bartosz ICT.
InterNIETbankieren? Softwaretesten in jip-en-janneketaal
07 oktober 2016
Kennisbank