RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

4

Click here to load reader

Transcript of RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

Page 1: RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

Maart 2010

Hoe Model Based Testen het testvak gaat veranderenPeter Kalmijn, Rijswijk

De creatief destructieve geest De creatief destructieve geest De creatief destructieve geest De creatief destructieve geest van de tester blijft broodnodigvan de tester blijft broodnodigvan de tester blijft broodnodigvan de tester blijft broodnodigDeel 1 Deel 1 Deel 1 Deel 1 –––– Model gedreven ontwikkelen en Testen?Model gedreven ontwikkelen en Testen?Model gedreven ontwikkelen en Testen?Model gedreven ontwikkelen en Testen?

Dat het creDat het creDat het creDat het creëëëëren van software voor de ondersteuning van ren van software voor de ondersteuning van ren van software voor de ondersteuning van ren van software voor de ondersteuning van

bedrijfsprocessen een activiteit is waarbij fouten kunnen bedrijfsprocessen een activiteit is waarbij fouten kunnen bedrijfsprocessen een activiteit is waarbij fouten kunnen bedrijfsprocessen een activiteit is waarbij fouten kunnen

ontstaan is een algemeen bekend verschijnsel. Als de ontstaan is een algemeen bekend verschijnsel. Als de ontstaan is een algemeen bekend verschijnsel. Als de ontstaan is een algemeen bekend verschijnsel. Als de

fouten ernstige gevolgen hebben, dan moet het product fouten ernstige gevolgen hebben, dan moet het product fouten ernstige gevolgen hebben, dan moet het product fouten ernstige gevolgen hebben, dan moet het product

op op op op éééééééén of andere systematische manier worden n of andere systematische manier worden n of andere systematische manier worden n of andere systematische manier worden

gecontrolleerdgecontrolleerdgecontrolleerdgecontrolleerd voordat het in de werkelijke wereld wordt voordat het in de werkelijke wereld wordt voordat het in de werkelijke wereld wordt voordat het in de werkelijke wereld wordt

toegepast. Hoe doe je dat?toegepast. Hoe doe je dat?toegepast. Hoe doe je dat?toegepast. Hoe doe je dat?

Enkele recente en veel belovende ontwikkelingen Enkele recente en veel belovende ontwikkelingen Enkele recente en veel belovende ontwikkelingen Enkele recente en veel belovende ontwikkelingen ––––

Model Model Model Model BasedBasedBasedBased ArchitectureArchitectureArchitectureArchitecture (MDA(MDA(MDA(MDA[1][1][1][1]), Model ), Model ), Model ), Model DrivenDrivenDrivenDriven

DevelopmentDevelopmentDevelopmentDevelopment (MDD) en Model (MDD) en Model (MDD) en Model (MDD) en Model BasedBasedBasedBased TestingTestingTestingTesting (MBT) (MBT) (MBT) (MBT) ----

claimen hier een sterk antwoord op te hebben. Dit claimen hier een sterk antwoord op te hebben. Dit claimen hier een sterk antwoord op te hebben. Dit claimen hier een sterk antwoord op te hebben. Dit

artikel focust op de laatste van de drie: MBT.artikel focust op de laatste van de drie: MBT.artikel focust op de laatste van de drie: MBT.artikel focust op de laatste van de drie: MBT.

Dit artikel is het eerste deel van een ontdekkingsreis

door het heden en de toekomst van MBT. Een

ontdekkingsreis, die ons voert ons langs de toepassing

van modellen, de kwaliteit van modellen zelf, en de

mensen die deze modellen gebruiken. Daarbij staan wij

in deel 2 stil bij de ontwikkelingen van MBT vandaag en

in deel 3 staan wij stil bij de impact, die MBT gaat

hebben op het testvak en de mensen, die daarin

werkzaam zijn.

Vroeger ..Vroeger ..Vroeger ..Vroeger ..

Applicatieontwikkeling kan op vele manieren. Heel

vroeger was het gewoon dat een programmeur samen

met iemand met businesskennis de applicatie

ontwikkelde. De businessexpert gaf aan wat hij graag

wilde, en de programmeur vertaalde dat naar code.

Ondertussen is er een veel veranderd. We hebben

geleerd methodisch te werk te gaan en om eerst goed te

bepalen wat wij willen voor het daadwerkelijk te

ontwikkelen. Ook hebben we geleerd te modellen te

maken. Ondertussen heeft testen ook een hele

ontwikkeling doorgemaakt. Van ad hoc testen tot aan

testen op basis van goedgekeurde requirements aan toe.

De laatste loot aan de testboom is MBT.

Waarom MBT?Waarom MBT?Waarom MBT?Waarom MBT?

MBT wordt gezien als de toekomstige manier van testen,

maar staat nog in de kinderschoenen. Voor bedrijven,

die zich zelf willen profileren als innovatief en als

richtinggevend op het vlak van testen, is MBT bij uitstek

geschikt om in te investeren. MBT heeft uitstekende

toekomstperspectieven maar er is tijd nodig om de

huidige testers geleidelijk de verandering in denkrichting

en vaardigheden door te laten maken.

De toenemende omvang en complexiteit van software

systemen en vooral hun kwaliteitsborging bepalen

steeds meer de grenzen van het maakbare. Wie zich

sneller kan aanpassen aan veranderende

marktomstandigheden, blijft zijn concurrentie voor. Daar

komt bij dat systemen en producten in steeds kortere

tijd operationeel dienen te zijn (time-to-market), wat

verkorte ontwikkeltijden noodzakelijk maakt. Er blijft

steeds minder ruimte om fouten later te herstellen. Dit

maakt het essentieel fouten zo vroeg mogelijk op te

sporen en te elimineren –liefst nog voordat zij in de

software van het systeem of product terecht zijn

gekomen. Dit stelt nieuwe eisen aan de manier van

testen. Bij de traditionele manier van testen begint de

testuitvoering pas aan het einde van de ontwikkelcyclus;

bij MBT is testen geïntegreerd in de ontwikkelcyclus, en

begint al tijdens het opstellen van het pakket van

vereisten.

UML, UML, UML, UML, ArchiMateArchiMateArchiMateArchiMate en en en en ArisArisArisAris

MBT, zoals in dit artikel bedoeld houdt in: testen

genereren op basis van formele modellen (als

voorbereiding voor dynamische testen), het beoordelen

van de modellen zelf (statisch testen), en het uitvoeren

en evalueren van de testen (dynamisch testen). Dit

artikel beperkt zich om redenen van eenvoud tot

modellen beschreven in UML. Naast UML modellen

zullen veel zaken, die worden besproken in dit artikel

ook gelden voor modellen die zijn opgesteld in BPML[2]

of ArchiMate[3] of in een andere formele

modelleringstaal. MBT is zeker niet tot UML beperkt;

echter UML is op dit moment de meest gebruikte

formele modelleringstaal en daarmee de breed

geaccepteerde de-facto standaard.

Page 2: RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

Maart 2010

Hoe Model Based Testen het testvak gaat veranderenPeter Kalmijn, Rijswijk

Model Model Model Model BasedBasedBasedBased TestingTestingTestingTesting

MBT gaat uit van de veronderstelling, dat vanuit een

volledig model ook een volledige set testcases afgeleid

kan worden, die alle functionele vereisten (requirements)

van het gemodelleerde systeem afdekt. Het is daarom in

lijn van de verwachting dat MBT op termijn tot betere en

meer adequate testen leidt dan klassiek testen. De

kerngedachte achter MBT is: door het geautomatiseerd

afleiden van testgevallen van het model, zullen

menselijke fouten worden uitgesloten.

Wat bedoel ik met Wat bedoel ik met Wat bedoel ik met Wat bedoel ik met ‘‘‘‘modelmodelmodelmodel’’’’

De spil waar het bij Model De spil waar het bij Model De spil waar het bij Model De spil waar het bij Model BasedBasedBasedBased TestingTestingTestingTesting (MBT) allemaal (MBT) allemaal (MBT) allemaal (MBT) allemaal

om draait is om draait is om draait is om draait is ‘‘‘‘het modelhet modelhet modelhet model’’’’....

Het model is een formele en gestructureerde Het model is een formele en gestructureerde Het model is een formele en gestructureerde Het model is een formele en gestructureerde

beschrijving van de structuur, de functionaliteit en het beschrijving van de structuur, de functionaliteit en het beschrijving van de structuur, de functionaliteit en het beschrijving van de structuur, de functionaliteit en het

gedrag van een systeem of applicatie in een gedrag van een systeem of applicatie in een gedrag van een systeem of applicatie in een gedrag van een systeem of applicatie in een

modelleertaal zoals BPML, UML of modelleertaal zoals BPML, UML of modelleertaal zoals BPML, UML of modelleertaal zoals BPML, UML of ArchiMateArchiMateArchiMateArchiMate. Het . Het . Het . Het

model heeft meestal verschillende lagen van diepgang model heeft meestal verschillende lagen van diepgang model heeft meestal verschillende lagen van diepgang model heeft meestal verschillende lagen van diepgang

en detail. Het model van de probleemstelling beschrijft en detail. Het model van de probleemstelling beschrijft en detail. Het model van de probleemstelling beschrijft en detail. Het model van de probleemstelling beschrijft

het te bouwen systeem platform onafhankelijk en het het te bouwen systeem platform onafhankelijk en het het te bouwen systeem platform onafhankelijk en het het te bouwen systeem platform onafhankelijk en het

implementatie model beschrijft hoe het systeem implementatie model beschrijft hoe het systeem implementatie model beschrijft hoe het systeem implementatie model beschrijft hoe het systeem

daadwerkelijk gebouwd gaat worden. Op alle lagen is daadwerkelijk gebouwd gaat worden. Op alle lagen is daadwerkelijk gebouwd gaat worden. Op alle lagen is daadwerkelijk gebouwd gaat worden. Op alle lagen is

Model Model Model Model BasedBasedBasedBased TestingTestingTestingTesting relevant, zij het op een andere relevant, zij het op een andere relevant, zij het op een andere relevant, zij het op een andere

manier.manier.manier.manier.

We zullen een aantal specifieke aspecten belichten, die

van belang zijn in het kader van MBT:

Contract Contract Contract Contract

Een niet te onderschatten gegeven is het feit dat het

analyse of design model steeds vaker als (onderdeel van

een) contract tussen vragende of uitbestedende partij

(acquirer) en leverende partij (supplier) wordt

beschouwd. Dat betekent dat twee zaken uiterst

belangrijk zijn voor het succes: ten eerste dient het

model in zichzelf correct te zijn (verificatie) en de

beoogde functionaliteit en andere vereiste

eigenschappen correct weer te geven (validatie).

Ten tweede dient het model als de contractuele

referentie bij het verifiëren van het geleverde. Dit vraagt

daarom om middelen en methoden om direct vanuit het

model de verificatie middelen - de testgevallen - op te

kunnen stellen [5].

UML en testenUML en testenUML en testenUML en testen

Recent onderzoek [1] toont aan dat het gebruik van

UML modellen weliswaar voor ontwerp van systemen

sterk in opkomst is, echter dat het gebruik van UML

analyse of design modellen voor het creëren van

testgevallen nog vrij zelden voorkomt. Nu worden

testgevallen vooral gebaseerd op tekstuele

beschrijvingen van de vereisten. Ook zijn de meeste

testers op dit moment slechts zeer beperkt in staat om

een UML analyse of design model goed te lezen en

correct te interpreteren. Dit is niet verwonderlijk omdat

zij doorgaans nog nooit testware zijn tegengekomen, die

direct gebaseerd is op UML. Op dit ogenblik zijn er

slechts zeer weinig projecten, waarin UML modellen

gebruikt worden om testen op te baseren. Een kip en ei

probleem.

Als er binnen een project UML modellen worden

gebruikt voor testen, dan is dat nog voornamelijk voor

de verificatie van het geleverde systeem tegen het

model (als referentie voor het contract).

Proces IntegratieProces IntegratieProces IntegratieProces Integratie

Testen worden nu vaak nog niet goed geïntegreerd met

de andere ontwikkelfasen. Een belangrijke reden

hiervoor is dat ontwerpers, ontwikkelaars en testers van

oudsher ieder hun eigen taal, begrippen en tools

hanteren. Dit maakt de onderlinge communicatie en het

uitwisselen van informatie door documentatie

moeizamer dan nodig.

Wel zijn er belangrijke ontwikkelingen, die een

gemeenschappelijke taal en begrippenkader beloven.

Iteratief aanpassenIteratief aanpassenIteratief aanpassenIteratief aanpassen

MBT belooft een flinke stimulans te kunnen zijn voor

incrementeel en iteratief ontwikkelen. Met MBT zal het

mogelijk zijn om op elk gewenst moment en op basis

van het net aangepaste model een nieuwe en

bijgewerkte set testcases te genereren. Met een druk op

de knop, want in het model zit immers de benodigde

informatie waarop de testgevallen kunnen worden

gebaseerd. Dat maakt het praktisch mogelijk om het

model en het te realiseren product stapsgewijs te

verfijnen om zo iteratief bij de optimale oplossing te

komen.

Page 3: RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

Maart 2010

Hoe Model Based Testen het testvak gaat veranderenPeter Kalmijn, Rijswijk

UML UML UML UML TestingTestingTestingTesting ProfileProfileProfileProfile

Het UML Testing Profile (UTP) [8] is een interessante

ontwikkeling die ontwerpers en de testers nader tot

elkaar brengt door een gemeenschappelijke taal en

begrippenkader te bieden.

UTP is een gezamenlijke ontwikkeling van Ericsson,

Fraunhofer/FOKUS, IBM/Rational,

Motorola, Telelogic en de universitiet van Lübeck. Het

biedt de mogelijkheid om aan bestaande UML modellen

testspecifieke zaken toe te voegen en UML ook voor

testspecificaties te gebruiken. Daarmee wordt het UML

design op een zeer directe manier hergebruikt voor het

ontwikkelen van testware.

MBT en applicatie ontwikkelingMBT en applicatie ontwikkelingMBT en applicatie ontwikkelingMBT en applicatie ontwikkeling

Klassieke applicatie ontwikkelingKlassieke applicatie ontwikkelingKlassieke applicatie ontwikkelingKlassieke applicatie ontwikkeling

De klassieke gang van zaken bij applicatie ontwikkeling

is uiteindelijk de productie van broncode, die daarna

wordt gecompileerd. Dat kan op een meer of minder

gestructureerde manier. Soms worden als aanvulling op

de requirements ook eenvoudige modellen gebruikt.

Deze requirements worden door de programmeurs

omgezet in een werkende applicatie. De tester baseert

zijn testware op de requirements en indien beschikbaar

ook op de eenvoudige modellen.

Een trend, die nu zo langzaam gemeengoed wordt

gezien is Offshoring in al zijn varianten. De

basisgedachte is om het programmeerwerk daar te laten

doen waar het werk het goedkoopste is. De

daadwerkelijke positieve effecten worden vaak

overdreven.

Model Model Model Model BasedBasedBasedBased DevelopmentDevelopmentDevelopmentDevelopment

Model Based gaat uit van een geheel andere

gedachtegang: als je een UML design model van de

applicatie opstelt, dan kan het programmeren veel

sneller – en worden er ook minder fouten gemaakt. Het

uiteindelijke doel van deze stroming is dan ook om het

programmeerwerk geheel te laten verdwijnen. Op dit

moment zijn er generatoren, die in staat zijn om op basis

van een voldoende uitgewerkt model de bijbehorende

code te genereren. Het design model wordt leidend en

wordt bepalend voor de daadwerkelijke en uiteindelijke

applicatie. Code generatie vindt dan plaats op basis van

uit het design model, dat op zijn beurt weer is afgeleid

van het analyse model.

Omdat de code direct wordt gegenereerd, is het niet

meer nodig om het programmerwerk naar lage lonen

landen te brengen. Outsourcing wordt door Model

Based Development in principe overbodig gemaakt.

Ook voor de tester heeft het genereren van de code

effecten. Gezien de generatoren een commercieel off-

the-shelf product zijn, is het testen van de gegenereerde

code zinloos geworden. Immers testen wij ook geen

compilers voor het omzetten van code naar machinetaal.

Dit wordt als stabiel en betrouwbaar geacht – en zo zal

het ook gaan met de generatoren, die het technische

applicatie model omzetten naar de applicatie code. Er

zal dus veel technisch testwerk gaan wegvallen.

Page 4: RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1

Maart 2010

Hoe Model Based Testen het testvak gaat veranderenPeter Kalmijn, Rijswijk

ExecutableExecutableExecutableExecutable ModelsModelsModelsModels

De nieuwste loot aan de stam zijn executeerbare

modellen. Hierbij wordt er geen code meer gegenereerd,

maar wordt het model runtime geïnterpreteerd en de

applicatie door middel van een applicatie-engine

runtime gecreëerd (geïnstantieerd).

Executable modelen op business niveau steunen sterk

op twee nu nog afzonderlijke modellen: Het Business

Process Model en het Business Decission Model (of

Business Rules Model). Met name het Business

Decission Model bepaald het gedrag van de business,

dat ook door de uiteindelijke paalicatie ondersteund

dient te worden.

In de toekomst zullen deze modellen steeds verder naar

elkaar toe groeien en met elkaar gaan integreren.

Het Business Process Model (BPM) wordt nu veelal

ondersteund door workflow engines en een Business

Rules Engine (BRE) kan de geformaliseerde business

rules uit het Business Decission Model direct uitvoeren.

Er zijn op dit moment nog maar een enkel applicatie

ontwikkelplatform, dat hier daadwerkelijk toe in staat is.

Er is geen code meer nodig, het model wordt

geïnterpreteerd en is tegelijk de applicatie. Een van deze

weinigen is Mendix, een Nederlands bedrijf en in Maart

2009 door trend onderzoeker Gartner uitgeroepen tot

Cool Vendor.

Ook hier verandert het een en ander voor de tester. De

functionele specificaties en requirements in de klassieke

zin zal hij niet meer tegenkomen. Veelmeer zal hij

moeten uitgaan van beslismodellen, business rules en

workflows. Hij opereert dan geheel op business niveau,

zodat wij hier eigenlijk moeten praten over Business

Model Based Testen (BMBT). Een groot voordeel voor

de moderne tester is dat business rules een uitmuntend

uitgangspunt zijn voor testcondities. Zij vallen immers

direct af te leiden van business rules.

In het volgende deel zullen wij onze ontdekkingsreis

rondom MBT voortzetten met een blik op de huidige

ontwikkelingen en stand van zaken bij verschillende

initiatiefnemers.

[1] A. Nugroho en M. Chaudron, March 2008, A Survey

into the Rigor of UML Use and its Perceived Impact on

Quality and Productivity.

[5] Paper: Built-in Contract Testing in Model-driven,

Component Based Development, Colin Atkinson1 and

Hans-Gerhard Groß

[8] OMG ptc/04-04-02: UML 2.0 Testing Profile,

Finalized Specification

[1] De term "Model Driven Architecture" is geregistreerd

door de Object

Management Group (OMG). (zie www.omg.org/mda).

[2] BPML: Business Process Modeling Notation

[3] Archimate: Architectuur gerichte modelering taal