testen
i Voors en tegens
De huidige status van de testtaal TTCN-3 Door de groeiende complexiteit en verwevenheid van softwaresystemen neemt het belang van geautomatiseerd testen toe. In een eerder artikel (Van de Pol & Van Solingen, 2006) is TTCN-3 geschetst als de testtaal van de toekomst, mede ingegeven door het succesvolle TT-Medal-project. Nu, vijf jaar later, in het jaar waarin TTCN-3 tien jaar bestaat, is het een goed moment om de balans op te maken. Blijkt het inderdaad de silver bullet te zijn of niet?
informatie / juli|augustus 2011
Jos van Rooyen en Erik Altena
56
TTCN-3 is enerzijds een taal om testgevallen te beschrijven en anderzijds beschrijft het een architectuur waarbinnen deze testgevallen uitgevoerd dienen te worden (zie kader ‘Wat is TTCN-3?’). Het is ontstaan in de telecom om aan te tonen of protocollen juist geïmplementeerd zijn in verschillende systemen over meerdere platformen heen. In hoeverre TTCN-3 toepasbaar is buiten de telecom is onderzocht in het meerjarige Europese onderzoeksproject TT-Medal. Dit project, waaraan de auteurs deelnamen, eindigde in 2006. Hierin werd aangetoond dat TTCN-3 met geringe aanpassingen in diverse industrieën toepasbaar is en dat dit diverse voordelen oplevert (TT-Medal Project Team, 2005). Het project TT-Medal heeft daarmee de prestigieuze ITEA-award gewonnen als beste project. Vijf jaar na beëindiging van het TT-Medal-project lijkt de toepassing van TTCN-3 wel te groeien, maar is TTCN-3 zeker nog niet de standaard die het claimt te zijn. Bij het grote (test)publiek is TTCN-3 nog niet echt bekend. Aangezien de auteurs overtuigd zijn van de voordelen, is het
interessant om na te gaan wat het uitblijven van de doorbraak in de weg staat. Aan bod komen achtereenvolgens de huidige status van het gebruik van TTCN-3, de voordelen en de mogelijke oorzaken van het uitblijven van de doorbraak.
Wat is TTCN-3? Testing and Test Control Notation versie 3 (TTCN3) is een internationale standaard die in zijn eerste vorm in 1984 door het European Telecommunication Standardization Institute (ETSI) beschreven is. Het is enerzijds een taal om testgevallen te beschrijven en anderzijds beschrijft het een architectuur waarbinnen deze testgevallen uitgevoerd dienen te worden. De taal TTCN-3 lijkt erg op een programmeertaal zoals Java, maar is specifiek toegesneden op het testen van software. Het is een testtaal met een rijke syntaxis, waarin testoordelen zijn opgenomen en waarin gemakkelijk parallelle testcomponenten kunnen worden opgestart (Van de Pol & Van Solingen, 2006) De taal is onafhankelijk van het platform waarop of de systemen waarmee daadwerkelijk getest gaat worden.
Samenvatting TTCN-3 is een taal om testgevallen te beschrijven en beschrijft een architectuur waarbinnen deze testgevallen uitgevoerd dienen te worden. Om de taal bij het grote testpubliek bekend te maken moet duidelijk worden gemaakt wat de voordelen zijn voor de organisatie als geheel en moet een ‘gemakkelijk’ te gebruiken presentatieformaat worden aangeboden. Integrale toepassing van TTCN-3 leidt uiteindelijk tot kostenbesparingen.
Van oudsher komt de taal TTCN uit de telecomwereld. Daar is TTCN-3 nog steeds het sterkst vertegenwoordigd (zie figuur 1; Altena, 2009). Absolute cijfers over het aantal licenties van TTCN-3-tools worden door de toolleveranciers niet afgegeven. Uit een enquête over de relatieve inzet van TTCN-3 over domeinen blijkt dat ongeveer driekwart van de implementaties tegenwoordig plaatsvindt in de telecommunicatie, gevolgd door de automotive-industrie en de embeddedindustrie. Slechts 5 procent komt naar voren in andere domeinen, zoals het financiële domein en het overheidsdomein. TTCN-3 wordt in deze domeinen veel toegepast bij het testen rondom een specifiek protocol, zoals GSM, IPv6, WiMax of AUTOSAR. Dit zijn dan ook meestal situaties waarin meerdere partijen samenwerken aan één geïntegreerd product. De deelsystemen wisselen onderling berichten uit in het protocolformaat. De inzet van TTCN-3 is daarbij meerledig. Enerzijds TTCN-3 toegepast als uniforme testset die wordt gebruikt De standaard opgenomen taalconcepten omvatten ingebouwde datacontrole (verwachte waarde versus gevonden resultaat), testen starten en stoppen op verschillende machines en gelijktijdige uitvoering van meerdere testcomponenten. Verder bevat de taal veel standaard ingebouwde variabele- en berichttypen, waaronder lists, testoordelen en testsysteemcomponenten. TTCN-3 biedt ondersteuning voor zowel communicatie op basis van berichten als het aanroepen van functies, dus zowel message-based als procedurebased communication (Willcock et al., 2005). De taal kan op verschillende manieren aan de gebruiker/tester worden gepresenteerd. Er is een tekstueel formaat op basis van coderegels. Het tabulaire formaat is er voornamelijk om backwards compatibel te zijn met TTCN en TTCN-2. Verder is er een visueel formaat op basis van message sequence diagrams. De
door toeleveranciers om de conformiteit van hun product met het protocol van de afnemende partij aan te tonen. Anderzijds maakt de toepassing van TTCN-3 het voor de deelnemers mogelijk om onderling testgevallen uit te wisselen. Een andere indicatie voor de toename van de interesse in en/of het gebruik van TTCN-3 is de toenemende belangstelling voor de TTCN-3 User Conference. Uit een analyse van de onderwerpen van de TTCN-3 User Conference van 2004 tot en met 2009 (ETSI CTI, 2010a) blijkt dat de specifieke aandacht voor het domein telecommunicatie afneemt en men zich meer richt op onderwerpen domein
•telecom •automotive •embedded •overig
marktaandeel 70% 15% 10% 5%
Figuur 1. Verdeling marktaandeel van TTCN-3 per industrieel domein
standaard kan naar behoefte worden uitgebreid met andere presentatieformaten. Naast de testtaal bevat TTCN-3 richtlijnen voor een gestandaardiseerde architectuur. Deze architectuur schrijft voor hoe de inrichting van het testsysteem met de interfaces naar het te testen systeem en het systeem dat de testen start, logt en bestuurt eruitziet (Van de Pol & Van Solingen, 2006). Door middel van adapters worden de gestandaardiseerde handelingen die in de testtaal zijn beschreven, vertaald naar de uitvoering op de specifieke interfaces van het te testen systeem en vice versa. Voor uitvoering moet de testtaal TTCN-3 omgezet worden in een echte ontwikkeltaal (bijvoorbeeld C of Java). Hierbij worden de standaardonderdelen van de commerciële of open-source testtools en de benodigde adapters meegecompileerd tot een uitvoerbaar testsysteem.
informatie / juli|augustus 2011
Status
57
testen
i
die niet domeinspecifiek zijn (zie figuur 2). De teruggang in telecomspecifieke presentaties en de opkomst van niet-domeinspecifieke presentaties is duidelijk zichtbaar.
100
80 70 verdeling [%]
informatie / juli|augustus 2011
Voordelen: waarom zou TTCN-3 wel aan moeten slaan?
58
non-specific other embedded automotive telecoms
90
TTCN-3 is geen modefenomeen. De eerste versies zijn medio jaren tachtig van de vorige eeuw ontwikkeld. De taal is geadopteerd door het European Telecommunication Standardization Institute (ETSI) en is in de loop der jaren ontwikkeld tot een bewezen en volwassen testtaal. Omdat de taal is ondergebracht bij een onafhankelijk instituut, is de ontwikkeling minder afhankelijk van de grillen van de toolleverancier. Vanuit universiteiten en onderzoeksinstituten vindt continu innovatie plaats op het gebied van TTCN-3. Dit levert veel gratis extra’s op voor bedrijven die de taal gebruiken. TTCN-3 is volledig toegesneden op testen en is erg flexibel. Zo kunnen tests uitgevoerd worden over meerdere platformen, door meerdere testobjecten tegelijkertijd aangeboden en dit vrijwel realtime. TTCN-3 is zelfs geschikt voor het beschrijven van performancetests. Dit is mogelijk doordat meerdere instanties van hetzelfde testobject opgestart kunnen worden vanuit één toolsuite. Er kunnen dus meerdere systemen worden aangestuurd en gecontroleerd terwijl ze op verschillende wijzen communiceren. Het ene systeem heeft bijvoorbeeld een CORBA-interface, het andere een HTML-gebaseerde interface en nog weer een ander wordt aangestuurd door middel van de GUI. Met TTCN-3 is het dus mogelijk alle tests te beschrijven in één specificatietaal en uit te voeren met één toolsuite. Er zijn meerdere leveranciers van TTCN-3-toolsuites. Vendor lock-in komt dus veel minder voor. De vele verschillende tools die een organisatie op dit moment gebruikt en de daarbij behorende licenties zouden teruggebracht kunnen worden tot één. Daardoor ontstaat er minder shelfware en zijn er minder toeleveranciers en minder beheerkos-
60 50 40
30 20 10 0 2004
2005
2006
2007
2008
2009
jaar
Figuur 2. Verdeling van onderwerpen per industrieel domein tijdens TTCN-3 User Conferences ten. In tijden van recessie zijn dit sterke argumenten in een businesscase. Een bijkomend voordeel is dat de testautomatiseerders echt deskundigheid opbouwen in testautomatisering vanuit één taal in plaats van globale kennis of nichekennis van specifieke tools. Door de sterk gestandaardiseerde taal is een hoog hergebruik van testgevallen mogelijk, zeker bij het testen van complexe bedrijfsketens. Dat brengt met zich mee dat de doorlooptijd van de testvoorbereiding sterk zal teruglopen, zodat sneller met de testuitvoer gestart kan worden. De kwaliteit van de applicatie die wordt getest kan hierdoor sneller worden aangetoond, wat de businesscase voor TTCN-3 gunstiger maakt. In het eerdergenoemde TT-Medal-project is dat via een aantal casestudies aangetoond (TT-Medal Project Team, 2005). Dat TTCN-3 voordelen heeft blijkt wel duidelijk uit de aantallen gebruikers bij Ericsson en Huawei. In 2007 had Ericsson 1837 actieve licenties in gebruik (Berglund, 2007) en had Huawei 1500 gebruikers van TTCN-3 (Wang, 2007). Motorola geeft aan dat de productiviteit met TTCN-3 verdubbelt (Bhaskar Rao & Timmaraju, 2005). Als je deze voordelen nog eens rustig bekijkt, dan is het verwonderlijk dat TTCN-3 niet veel meer wordt gebruikt. Wat is de oorzaak?
Waarom slaat TTCN3 niet aan bij het grote publiek? ETSI stelt dat TTCN-3 eenvoudig te leren valt (ETSI CTI, 2010b). De flexibiliteit van de taal kent echter haar prijs. Theoretisch en technisch is de taal behoorlijk complex. De TTCN-3-tools
»Integrale toepassing van
TTCN-3 leidt uiteindelijk tot kostenbesparingen
«
tot een kostenbesparing op middellange termijn moeten leiden. Vragen aan leveranciers voor het toepassen van testautomatisering komen vaak vanuit de projecten. De toolselectie ligt daarmee binnen de projecten, terwijl de echte businesscase op organisatieniveau ligt. Dus vaak is de nieuwe licentie (of de open source) voor de zoveelste tool alweer aangeschaft voordat TTCN-3 een optie wordt. Wil het slagen, dan zal een besluit op beleidsniveau genomen moeten worden. Zoals gezegd is TTCN-3 sterk gericht op het testen van berichtenverkeer via de interfaces. Doordat het hier zo op toegesneden is, is het moeilijk om andere testaspecten in TTCN-3 te beschrijven en hier vervolgens een kostenefficiënte implementatie (codex) voor te ontwikkelen. Dit geldt bijvoorbeeld voor het testen via de GUI en van databases. Andere tools in de markt zijn dan snel een meer voor de hand liggende keuze dan TTCN-3.
Positionering van TTCN-3 Na we bij de status, de voordelen en het waarom van het niet breed aanslaan van TTCN-3 hebben stilgestaan, dringt zich de vraag op wanneer TTCN-3 een goede keuze zou zijn en wanneer niet. Op basis van de ervaring van de auteurs en de voorgaande analyse zijn de volgende toepassingsmogelijkheden te onderkennen: • testen van verschillende systemen over meerdere platformen; • testen van veel verschillende protocollen binnen één organisatie; • testen van één specifiek protocol door meerdere organisaties (‘value chain optimization’); • beschrijven van testgevallen voor certificering van toeleveranciers (‘conformance testing’). In figuur 3 is een korte opsomming gegeven hoe TTCN-3 zich verhoudt tegenover de concurrenten op het gebied van taal en tooling.
informatie / juli|augustus 2011
komen voor de minder technisch geschoolde tester over als een complete developmentstudio. Andere tools in de markt zijn laagdrempeliger in het gebruik. Buiten het telecomdomein zijn de testers meer functioneel en minder technisch georiënteerd. De testautomatiseringsscripts worden hier vaak opgesteld door een testautomatiseerder. Deze heeft echter niet de technische skillset die nodig is om TTCN-3 in te zetten. Dit technische kennisniveau heeft meestal alleen een software-engineer. Van oorsprong is TTCN-3 ontstaan in de technische hoek, nu is de overstap naar de niet-technische wereld moeilijk. TTCN-3 heeft geen eigen compiler. Dit is bewust gedaan omdat ETSI zich niet wilde verbinden aan één programmeertaal of implementatiewijze (ETSI CTI, 2010b). De keuze voor een onafhankelijke specificatietaal zonder keuze voor een compileerbare programmeertaal ondermijnt echter de generieke implementatiegedachte. De mogelijkheid om van toolleverancier te wisselen wordt hierdoor bemoeilijkt. De reden hiervoor is dat adapters geschreven moeten worden in de programmeertaal van de compiler om het geheel te laten werken. Deze specifieke adapters kunnen niet eenvoudig meeverhuisd worden naar de nieuwe toolleverancier die een andere programmeertaal voor de compiler hanteert. Door de taal op een hoog niveau te beschrijven zonder deze implementeerbaar te maken (want dat is onafhankelijk), hebben de auteurs ervaren dat de uitwisselbaarheid van TTCN-3 tussen toolleveranciers ingewikkelder is dan gesteld wordt. TTCN-3 blijkt een sterke businesscase te hebben bij het testen van meerdere systemen binnen één organisatie. Echter, binnen organisaties wordt dit nog niet onderkend. Experts en/of beslissers zijn vaak niet op de hoogte van het bestaan van de taal. Het gevolg is dat de klant niet vraagt om TTCN-3. TTCN-3 zou als verbeterinitiatief vanuit het ontwikkelbedrijf zelf opgepakt moeten worden. Zoals bij vele andere mogelijke verbeteringen blijkt het voor het ontwikkelbedrijf erg moeilijk om zichzelf te automatiseren. De toepassing van TTCN-3 lost meestal geen acute problemen op. Veel organisaties hebben eigen oplossingen ontwikkeld, gebaseerd op diverse typen tools, en testen op die manier een keten over diverse platformen heen. Dit is minder efficiënt, maar het werkt voor nu wel. Wellicht kan er een vergelijking worden gemaakt met de implementatie van een service-oriented architectuur. Voor de business levert die in eerste instantie geen toegevoegde waarde op. Uiteindelijk zou het
59
testen
i zelfgebouwde tool o.b.v. programmeertaal
TTCN-3-taal en -tool
proprietary tool met eigen taal
taal
•veelzijdigheid •testspecifiek •inleertijd
++ –– ––
+ ++ +–
–– + ++
++ +–* ++ – ––
+ ++ + +– +–
– –– –– + +–
tool/architectuur
informatie / juli|augustus 2011
Wat houdt het gebruik van TTCN-3 in?
60
•aanpasbaarheid •onafhankelijkheid leverancier •horizontale integreerbaarheid •verticale integreerbaarheid •plug & play
*) vaak sterk afhankelijk van de ontwikkelaar van de zelfgebouwde tool
Voor de gebruikers (hier gedefinieerd als Figuur 3. Vergelijking van sterke en zwakke punten van software-engineers, businessanalisten 1) zelfgebouwde tools op basis van een algemeen toepasbare en testers) van TTCN-3 betekent het programmeertaal, zoals Java of C++, 2) TTCN-3-testtaal en gebruik van de taal een aantal zaken. -tooling en 3) in de markt gekochte proprietary tools/toolsuites Veel eerder in de software life cycle kan begonnen worden met het programmeren van de tests. In eerste instantie op hoog niveau; Wat is nodig om TTCN-3 te laten later, als de implementatiedetails beschikbaar zijn, doorgroeien? kan de test uitgewerkt worden. Je hoeft dus niet te TTCN-3 heeft diverse mogelijkheden om door te wachten tot het eind van het ontwikkeltraject. De groeien. Enerzijds is de huidige markt waarin de testontwikkeling kan parallel plaatsvinden aan de taal toepasbaar is zeker nog niet uitgenut. Er zijn ontwikkeling van het systeem. In de traditionele sterke businesscases te definiëren binnen grote testautomatisering kan pas begonnen worden als organisaties en rondom de organisatieoverstijgende het systeem dat moet worden getest een redelijke toepassing van gestandaardiseerde protocollen, mate van stabiliteit heeft bereikt. zeker nu het ketentesten over meerdere orgaMet TTCN-3 is het gemakkelijker en sneller om nisaties heen steeds meer belangstelling krijgt. complexe testcases te ontwerpen, waardoor de Hiervoor moet meer gedaan worden aan de pr en kwaliteit van het werk toeneemt. Voor de tester marketing van TTCN-3. Daarbij moet de focus is het samenstellen van tests stukken gemakkeniet langer liggen op de technische mogelijkheden lijker dan in de traditionele vorm. Dit komt door van TTCN-3, maar op het feit dat het problemen het hergebruik van eerder ontwikkelde testware kan oplossen vanuit organisatorisch en businessdankzij de gestandaardiseerde werkwijze. Dat oogpunt. verkort de doorlooptijd, waardoor sneller resultaat De toepasbaarheid van TTCN-3 kan vergroot worgeboekt wordt. Aangezien de taal en de architecden door de standaard te verbreden naar toepastuur echter complexer zijn dan die van reguliere singen buiten het traditionele berichtenverkeer. tools, moet rekening worden gehouden met een Hierbij valt te denken aan testen via de GUI of langere inleertijd. van databases. Tevens moet worden gewerkt aan De gebruiker hoeft maar één tool te leren waareen complexiteitsreductie voor de tester die met mee alle typen systemen op welk platform dan TTCN-3 werkt. Een presentatieformaat dat veel ook getest kunnen worden. Voor businessanalisten van de niet-gebruikte features verbergt of automawordt de wijze van werken vergemakkelijkt omdat tisch invult, zal de slagingskans voor een bredere zij zich alleen nog hoeven te richten op de ontwikinzet aanzienlijk doen vergroten. In het eerderkeling van testgevallen op hoog niveau. De tools genoemde TT-Medal-project hebben de auteurs zorgen voor de vertaling met behulp van de adapal aangetoond dat dit mogelijk is via TestFrame ters naar de diverse platforms. (TT-Medal Project Team, 2005).
Conclusie Ondanks een lange historie van ontwikkeling en gebruik is TTCN-3 nog steeds niet echt bekend bij het grote testpubliek. Enkele oorzaken zijn benoemd. Wil TTCN-3 de veelbelovende testtaal blijven en vooral worden, dan zal fors geïnvesteerd moeten worden om de taal bij het grote testpubliek bekend te krijgen. Enerzijds door de voordelen te laten zien voor de organisatie als geheel, anderzijds door een ‘gemakkelijk’ te gebruiken presentatieformaat aan te bieden voor gebruik in nieuwe domeinen. Desondanks zien de auteurs voldoende inhoudelijke mogelijkheden voor een succesvol gebruik van TTCN-3 in de praktijk. Integrale toepassing van TTCN-3 leidt uiteindelijk tot kostenbesparingen. Er zijn minder licenties nodig, minder beheerkosten en minder aanschafkosten van tools. Daarnaast zal de kwaliteit van de informatieketen toenemen door het geautomatiseerd kunnen testen van de gehele keten met één taal.
Literatuur Altena, E. (2009). Things to Consider Before Applying TTCN3, www.testdag.nl/images/2009/docs/altena.pdf (geraadpleegd op 30 juli 2010). Berglund, M. (2007). TTCN-3 @ Ericsson, www.ttcn-3.org/ TTCN3UC2007/Presentations/Wed/1500_ttcn_users_at_ ericsson_a.pdf (geraadpleegd op 30 juli 2010). Bhaskar Rao, G. & K. Timmaraju (2005). Load Testing of MDA based HA Communication Network Elements with TTCN-3, www.ttcn-3.org/TTCN3UC2005/program/Wednesday%20 8th%20June/04-%20Session%20V-%20Relation%20with%20 other%20languages%20and%20methods/[T3UC%20 S5-3]%20Load%20testing%20of%20MDA%20based%20 HA%20communication%20network%20elements%20 with%20TTCN-3.pdf (geraadpleegd op 30 juli 2010). ETSI CTI (2010a). TTCN-3 User Conference Archives, www. ttcn-3.org/UCArchives.htm (geraadpleegd op 30 juli 2010). ETSI CTI (2010b). Why use TTCN-3? www.ttcn-3.org/ Benefits.htm (geraadpleegd op 30 juli 2010). Pol, J. van de & R. van Solingen (2006). TTCN-3: de testtaal van de toekomst. Informatie 48/6 (juli/augustus), pp. 20-24. TT-Medal Project Team (2005). Test & Testing Methodologies for Advanced Languages, www.tt-medal.org (geraadpleegd op 30 juli 2010). Wang, G. (2007). TTCN-3 Development and Application in Huawei, www.ttcn-3.org/TTCN3UCAsia2007/Presentations/ Session%201/TTCN-3%20Development%20and%20 Application%20in%20Huawei.pdf (geraadpleegd op 30 juli 2010). Willcock, C. et al. (2005). An Introduction to TTCN-3. Chichester: John Wiley & Sons. Links www.bartosz.nl www.tt-medal.org www.ttcn-3.org Jos van Rooyen is principal consultant bij Bartosz ICT. E-mail: jos.van.rooyen@ bartosz.nl. Ir. Erik Altena is senior consultant bij Bartosz ICT. E-mail: erik.altena@ bartosz.nl.
informatie / juli|augustus 2011
Reviewer Manu De Backer
61