RT@WORK Hoe Model Based Testen Het Testvak Gaat Veranderen - 1
Click here to load reader
-
Upload
peter-kj-kalmijn -
Category
Documents
-
view
46 -
download
2
Transcript of 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.
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.
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.
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