SOA-ketentesten: de zwakste schakel
Solution Architect
Expert van Computable voor de topics: SOA en ICT-branche
MeerIk ben betrokken bij diverse soa-test automation-projecten. In veel van deze projecten speelt er naast alle aspecten rond het testen nog iets anders een rol. Voordat je kan beginnen met testen heb je een testomgeving nodig. Dat begint natuurlijk met de nodige hardware en software. Van ijzer, OS tot en met (middleware) software, alles moet aanwezig, geïnstalleerd en geconfigureerd zijn voor je met testen kan beginnen.
Als de applicatie die je gaat testen nu monolithisch is, dan is het opzetten van een testomgeving een klus, maar over het algemeen goed te doen. Als je in een volledig gedistribueerde op soa-principes gebaseerde omgeving een testomgeving nodig hebt, dan is dat wel even een heel ander verhaal. Niet alleen is de hoeveelheid hardware en software die je in een dergelijke omgeving nodig hebt vele malen meer dan in een monolithische omgeving. Het inregelen, configureren en met elkaar verbinden van alle componenten is ook nog eens veel complexer. Het vervelende is dan uiteraard ook nog eens dat het uitvoeren van een integratietest of een ketentest vaak alleen maar zin heeft als alle componenten die hier een rol in spelen allemaal aanwezig zijn en goed (samen)werken. De keten is natuurlijk zo sterk als de zwakste schakel.
Ook hier kan virtualisatie een rol spelen. Zoals het virtualiseren van hardware helpt bij het inrichten van een omgeving (denk aan VMware), zo helpt virtualisatie van de applicatielogica bij het opzetten van een ketentest. Neem als voorbeeld een zojuist ontwikkelde webapplicatie die gebruik maakt van een mainframe via een webservice. Om de webapplicatie te kunnen testen is het mainframe nodig. Door nu de webservice die de verbinding vormt met het mainframe virtueel te maken, is de webapplicatie te testen zonder dat daarvoor een mainframe nodig is. Gebruikelijk is dat ontwikkelaars voor dit doel een stub schrijven, een klein programmatje dat de webservice implementeert en op bij elke vraag een standaard antwoord geeft. Nadeel is dat er totaal geen flexibiliteit in dit antwoord zit en dat als de interface wijzigt je als tester een programmeur nodig hebt om de stub aan te passen. Door het inzetten van een testplatform voor de implementatie van deze virtuele services is het opeens wel mogelijk voor een tester om een flexibele, zelf aan te passen en van logica voorziene service te maken die in de plaats van het mainframe gebruikt kan worden tijdens het testen. Zelfs in een loadtest-scenario is de virtuele service te gebruiken, omdat deze notie heeft van de reactietijd van het mainframe (via een soort zelflerend systeem) kan je een loadtest uitvoeren van de webapplicatie zonder een duur en onhandig mainframe nodig te hebben. Virtuele services beperken zich uiteraard niet tot webservices, allerlei componenten lenen zich ervoor om gevirtualiseerd te worden, denk bijvoorbeeld aan messages queue's, ESB's en databases.
Virtuele services komen in twee smaken: zelflerend aan de hand van een 'record and playback' scenario (ideaal voor services waarvan de achterliggende infrastructuur niet altijd beschikbaar is, zoals een mainframe of een thirdparty service), de tweede variant is een 'service generator', op basis van een interface-beschrijving (bijvoorbeeld een WSDL) wordt een service-implementatie gegenereerd die een tester dan zelf zonder programmeren kan voorzien van logica (een lijst met vaste input en output waardes of een bepaald dynamisch gedrag). Hiermee wordt een keten opeens wel testbaar, terwijl zonder deze voorzieningen de keten heel vaak door de zwakste schakel onderbroken wordt.
10-02 Het einde van het begin van cloud en virtualisatie
10-02 De windwakken van de cloud-sector
09-02 Citoto
09-02 Lang leve de hackers!
09-02 Modder gooien in ICT-land
08-02 Reseller verliest slag om het groene huishouden
08-02 Hadoop lijkt een alleskunner
07-02 Hou zicht op de informatie bij HNW
07-02 Eigen werknemer kan ook een vijand zijn
06-02 Krachtenbundeling NGI en TestNet is goede zaak
05-12 Traxion introduceert IAM4Cloud
02-12 Progress breidt RPM-suite verder uit
26-10 Infor presenteert Twitter-ERP
03-10 Macaw zet nieuw servicecentrum op
22-09 SOA en agile kunnen best door één deur
07-07 Compuware neemt Dynatrace Software over
22-06 IBM Rational levert nieuwe ontwikkelingstools
19-04 ROC Aventus: datakoppelingen en zeggenschap
13-04 HP wilde Tibco Software overnemen
31-03 'Ivent heeft te weinig kennis van SOA'
|
|
11-12-08 Modelleringstaal voor SOA begin 2009 klaar
De gecombineerde kracht van JD Edwards en Salesforce.com
De integratie van JD Edwards en Salesforce.com drijft organisaties vaak tot wanhoop. Deze whitepaper beschrijft hoe......


