• Save
ESEconf2011 - Moser Basil: "Software testing with DSL"
Upcoming SlideShare
Loading in...5
×
 

ESEconf2011 - Moser Basil: "Software testing with DSL"

on

  • 876 views

 

Statistics

Views

Total Views
876
Views on SlideShare
876
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Willkommenzu der ‘Software Testing with DSL’ session.
  • Aufteilung in 3 TeileTheorieFallstuieErfahrungenmit der DSL
  • Kurzuebermich:- arbeite in der Softwareentwicklungim .NET Bereich- Interessantzusehenwie manneueTechnologienbrauchenkann
  • Ziel von den naechsten 40 min:Verstehen waseine DSL ist und wie man einekreiert.
  • EinbisschenTheorie:- Verschiedenedefinitionen,
  • 2 verschiedenetypenGrafisch, SimulinkTextuell, textuelle DSL’s gibtesschonsehrviele z. B. SQL, Mathlab
  • Das ist das Ziel von einer DSL?Weniger mapping von der IdeebiszumentsprechendenProdukt.Jedes mapping is einepotentielleFehlerquelle, missverstaendnisseusw. In SW, problememitAdaptern, verscheidenen DB’s, Type konvertierungVerstehen von Diagrammen, mitverschiedenenElementenusw.
  • Eine DSL ziehtsichdurch diefolgenden Layer:Meta-Meta Model, Spezifizierung von der SpracheMeta Model: Erstellen von der Building Blocks, EinheitenwelchegenutztwerdenkoennenModel: Wirdvom DSL BenuetzererstelltSystem: Ist was ausdem Model erstelltwird z. B. mitCodegenerierung.
  • HiereinpaarBeispiele:z. B. Uml. Umlbasiert auf Mof, mit der Umlspezifikationkannein Modell erzeugtwerden, und mittelsdiesem Modell istesmoeglicheineApplikationzuerstellenNun miteiner DSL mitdem Microsoft DSL ToolkitDas Meta Meta Modell hat keinendefiniertennamen, dies istjedochauchnicht von Bedeutung. Im Meta Modell koennendann die Building Blocks erstelltwerdenwelchedem DSL EndanwenderzurVerfuegungstehen. Dannachkann der Endanwender die DSL nehmen und ein Modell erstellen welches dann z. B. Code geniert welches im System gebrauchtwerdenkann. Eskann das Gundsaetzlich das ganze System erstelltwerden, meistenswirdjedochnureinkleinerTeilgeniert. Z. B. ein Xml Konfigurationsfile um die SW Komponentenzusammenzustellen (z. B. beiIoCKontainern)Istetwaskomplex, jedochsolle dies nach der Fallstudieetwasklarerwerden… Hoffeichjedenfalls
  • KonkreteBeispiele: Z. Regualar expressions. Super um strings zufinden und zumanipulieren. EinensolchenAlgorithmus in eineranderenProgrammiersprachezuerstellenkannsehrmuehsamseinXaml:Erstellen von einemUi, in Xml ist die Definition ehereinfach, jedoch dies in C# Code zuerstellenkannsehrmuehsamsein.
  • NunwerdenwiretwaskonkreterDSL Framworks, fuerverschiedenePlattformen. Wirwerdenunsjedeskurzansehen.
  • Eclipse Projekt.Ecore Model ist der wichtige Punkt. Dort wird das Modell erstellt welches dann in Java code umgewandelt wird.--Java Emitter Templates. JET ist besonders für die generative Erzeugung von Code geeignet
  • - Freier downloadKomplet in Visual Studio integriertC#Support in DSL Bestandteilenwie: Shell, Validation, …
  • GrobeArchitektur von dem Framework. Kompilierter source, muss nichtveraendertwerdenTools fuer den generierten codeSelbstgeschriebener code.Wirwerden dies nochim Detail sehen in unsererFallstudie
  • Kommerzielles tool, welches in diversenFirmeneingestztwird.Gutekonfigurationsmoeglichkeitenerlaubeneinem, das Tool in jedemGebieteinzusetzen.
  • DSM, Domain specific modelling; Ueberbegriffwelcher die DSL beinhaltetProzessistsehr gut und wirdauchim Microsoft Tool angewendet.
  • Die Frameworkssindsehrahnlich und unterscheidensichnichtallzu gross.Der Grundgedankeist der gleichefueralle Frameworks
  • Nichtbezogen auf Unit Testing. DiesePunktebeziehensich auf automatischesTestenimBereich System TestNun kommenwirzumautomatisiertentesten:Automatiertestestenistschwierig. Dies kannverscheideneGruendehaben.Schlussendlichfehltmeistenseingutes Framework in welchem die Tests gehostetwerden.
  • EineDslkannverschiedenePunkteaddressieren.Gutes framework fuerautomatische system tests--Language is shared by the developers and the business experts (users, customers) and promotes a common understanding of the BusinessDomain
  • KommenwirzumzurFallstudie. Diesesoll die Theorieetwasklarermachen. UnsereAufgabe:Wirarbeitenim PET Flaschen business und wirmuesseneinautomatisches test framework erstellen, welches dem business erlaubt die SW zutesten.
  • Schritt:Verstehen was gefordertwird. MitjederParteisprechen.
  • Wirhabenfolgendesherausgefunden.….AuchhabenwirsomiteineeinheitlicheSpracheerstell. Die Interfaces heissennicht ApplyT44Heat
  • Wirkoennen auf diefolgende Test Façade zugreifen. BeiAenderungenwerdenwirinformiert.
  • DSL isteinezentraleKomponente.
  • Nun muessenwir das Meta Model definieren.Dies isteinsehrzentralerSchritt, da sichalles auf diem Aufbaut
  • Grafikenaus Visual Studio DSL ToolAbstrakte Operation welche die konkreten operation beinhaltet. Habenurein subset von den Operationendargestellt.
  • Input/Output container:Infrastruktur, hat nichtsmit der eigentlichen DSL zutun.Isteingenerischer Building Block um den state von einer App zuerhalten.
  • Unser Meta Model
  • Auseinemerstellen Modell soll code generiertwerden.
  • Die Codegenerierungkannfolgendermassengeschehen. Der Output istein .cs file.
  • BeideAnsatzekoennengebrauchtwerden. Wer C# mag nimmteher den 2ten
  • T4 templating code
  • Zugriff auf jede Domain class vom C# code aus.Hierwirdein property, BottleNamezurueckgegeben.
  • Das Model per se bringtnichtsehrviel. Das Modell muss im System ausgefuehrtwerdenkoennen. Wieschonerwahntwird das Model in eineInfrastruktureingebettet.
  • Ein Model Executor isteinProgramm welches eseinemerlaubt, das Modell auszufuehren. Dies istein Standard .Net program
  • Das wars’ wirhaben nun unsereKomponenten fur die DSL erstellt.
  • Gruen =habenwirerledigtGelb = istnochzumachen.BisjetzthabenwirnurInfrastrukturerstellt. Nun wechselnwirvomDsl Developer zumDslModellierer.
  • Nun erstellenwireineneinfachen Test auf unserer DSL
  • Hiereinensehreinfacher Test, welcherdirekt auf Visual Studio kommt.In Und out portOperationenVerifizierung
  • Nun wollenwirgegen die Bottle Software testen
  • Der Modell executerliest das model ein, und stellt dieses grafischdarDer aktuelleschrittwirdgeheighleitetBreakpoints
  • Unsere DSL in 6 Schrittenerstellt. Was wirjetzt in 20 min geht in realitaetlaenger.
  • Nun, was habenwirgelernt:
  • Wassind die Pluspunkte.
  • Wassind die Minuspunkte
  • Vielmalswird in FirmenPlattformbasierendeSwentwickelt. Dies kann und sollauchbeieinerDslberuecksichtigtwerden.Esmacht Sinn, eine basis DSL zuhaben, welche die Infrastrukturbeinhaltet. Z. B. comparison, refernz repository usw.Auf dieserkann nun fuereinbestimmtesProdukteine DSL erstelltwerden.
  • Miteiner DSL konnten in Projektenautomatische system tests biszueinemFaktor 3 beschleunigtwerden.
  • In naherZukunftwerdenwirsichereiniges von modellgetriebenerSwentwicklunghoeren. Die inkludiertauch die DSL.Esgibt diverse guteBuecherueber das Dslthema.
  • So, das wars.HoffeSiewissen nun was eineDslist und wie man dieseimautomatisierten Testing einsetzenkann.Vielen Dank und beiweiterenFragenkoennenSiemich per E-Mail erreichen.

ESEconf2011 - Moser Basil: "Software testing with DSL" ESEconf2011 - Moser Basil: "Software testing with DSL" Presentation Transcript