Lieferung 8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests

Größe: px
Ab Seite anzeigen:

Download "Lieferung 8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests"

Transkript

1 Lieferung 8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket AP 8 Test- und Qualitätssicherungsumgebung Arbeitspaketleitung Andrena Förderkennzeichen 01IS11012A-C Projektleitung andrena objects AG Jochen Winzen Partner andrena objects ag arconsis IT-Solutions GmbH FZI Forschungszentrum Informatik Autoren Christian Jansohn, Martin Küster Lieferdatum M21 Letztes Änderungsdatum Version 1.0 ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 1

2 1 Einleitung Dieses Dokument beschreibt die Erkenntnisse und den aktuellen Stand der Entwicklung im ModAgile Mobile Projekt. Den Fokus dieses Dokuments stellt der Bericht des aktuellen Entwicklungsstands im Bereich der Qualitätssicherung dar. Zwei zentrale Elemente sind dabei die domänenspezifischen Sprachen (Domain Specific Language DSL) für Unit-Tests und Oberflächen-Tests (UI-Tests) sowie die dafür erstellten textuellen Modelleditoren. In agilen Software-Entwicklungsprozessen ist die kontinuierliche Entwicklung von Tests nach dem Test- First-Ansatz ein elementarer Bestandteil. Die modellgetriebene Entwicklung von mobilen Anwendungen für unterschiedliche Zielsysteme stellt für das Testen eine erhebliche Herausforderung dar. Relativ kleine Änderungen am Anwendungs-Modell erzeugen in den Generaten für die verschiedenen Zielarchitekturen potenziell große Mengen an generiertem Code. Ein naiver Ansatz der manuellen Entwicklung von Tests für den generierten Code würde einen unverhältnismäßigen Mehraufwand erzeugen. Ebenfalls ist es wenig sinnvoll Programme auf einer Zielplattform unabhängige Ebene zu definieren und modellieren und die dazugehörigen Tests auf tieferer Ebene entwickeln zu müssen. Die logische Schlussfolgerung ist die Spezifikation von automatischen Tests auf gleicher Abstraktionsebene wie dem Anwendungs-Modell. Testen auf Modell-Ebene Das Testen auf Modell-Ebene dient der plattformunabhängigen Validierung des Modells. Dabei sollen Fehler im Modell selbst gefunden werden. Hierzu werden der Test und das zu testende Modell in einer eigenen auf das Meta-Modell zugeschnittenen virtuellen Mock-Umgebung ausgeführt. Testen von plattformspezifischen Generaten Aus den Test-Spezifikationen in der Test-DSL lassen sich durch entsprechende Transformationen plattformspezifische Tests für jede der Zielarchitekturen erstellen. Die generierten Tests verwenden Programmiersprache und Programmbibliotheken der jeweiligen Zielarchitektur und testen den generierten Programmcode für die entsprechende Zielarchitektur. Hierdurch können plattformspezifische Probleme und Fehler von Transformatoren frühzeitig erkannt werden. 2 Unit- und Akzeptanztestsprache Unit-Tests sind in der Software-Entwicklung das Standardmittel, um die korrekte Funktion von einzelnen Softwarekomponenten in der Regel einzelne Klassen und Methoden isoliert vom Rest des Systems sicherzustellen. Das Grundverfahren beim Unit-Testen ist das Aufrufen der zu testenden Methoden mit vom Entwickler definierten Parametern. Nach dem Aufruf wird das Ergebnis mit dem erwarteten Ergebnis verglichen. Kommt es hierbei zu Abweichungen, wurde ein Programmierfehler entdeckt. Bei der gewöhnlichen plattformspezifischen Entwicklung werden Unit-Tests in der Regel technisch durch ein Stück Software realisiert, welche in der gleichen Programmiersprache wie der zu testende Programmcode geschrieben wurde. Unterstützt wird das Schreiben von Programm-Code durch plattformspezifische Test-Frameworks. Diese erleichtern das Initialisieren von Testdaten sowie das Organisieren und strukturieren von Tests sowie das Erzeugen von Übersichtlichen Ausgaben von Test- Ergebnissen. ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 2

3 Im Modagile-Entwicklungsprozess ist vorgesehen, dass bestimmte Programmteile wie die anwendungsspezifische Logik vom Entwickler selbst für alle Zielplattformen entwickelt werden soll. Beim Entwurf des Domänenmodells hat der Entwickler die Möglichkeit Methoden zu deklarieren, welche die Schnittstelle zu anwendungsspezifischer Logik darstellen. Während des Transfomationsprozesses,werden aus dem plattformunabhängigen Domänenmodell plattformspezifische Generate erzeugt. Im Generat werden für alle deklarierten Methoden leere Methodenrümpfe erzeugt, welche vom Entwickler mit passendem Programmcode gefüllt werden. Es ist wünschenswert, die Qualität dieses Codes durch Unit-Tests sicherzustellen. Eine Möglichkeit hierfür wäre, für jede Implementierung einen Unit-Test von Hand zu schreiben und dabei die etablierten Frameworks der Zielplattformen zu definieren. Der hier entstehende Nachteil ist, dass die gleichen Testszenarien von Hand für jede gewünschte Zielplattform zu entwickeln. Das bringt einerseits zusätzlichen Aufwand bei der Entwicklung und birgt andererseits auch noch das Risiko, dass sich die Testszenarien unterscheiden und somit ein gleiches Verhalten der Anwendungslogik auf verschiedenen Plattformen nicht mehr sichergestellt ist. Für Modagile wurde eine Unit-Test-DSL entwickelt, welche das plattformunabhängige Entwickeln von Tests ermöglicht. Die Test-DSL ist eine Sprache, welche einen speziell für Unit-Tests zugeschnittenen Befehlssatz bereitstellt. Dabei werden folgende Aspekte von Unit-Tests berücksichtigt: Strukturierung von Testdaten: Eine Test-Datei kann eine beliebige Menge von Tests enthalten. Dabei ist jeder Test durch einen Block mit eindeutigem Namen definiert. Initialisieren von Daten: Es können Instanzen von Domänenobjekten erzeugt und initialisiert werden. Methodenaufrufe: Die zu testenden Methoden können aufgerufen werden. Überprüfung von Ergebnissen: Assertion-Ausdrücke ermöglichen das spezifizieren erwarteter Daten 2.1 Stand der Entwicklung Es wurde eine Modagile-spezifische Test-DSL entwickelt, welche alle wesentlichen Aspekte eines Unit- Tests ausdrücken kann. Dazu wurde ein Xtext-basierter Parser entwickelt, welcher die entwickelten Test- Dateien verarbeiten kann. Darauf aufbauend wurde ein Transformationswerkzeug entwickelt, welcher auf dem JUnit-Framework basierende Tests erzeugen kann. 2.2 Fazit Unit-Tests sind ein wichtiges Mittel, um die Qualität von Programmcode sicherzustellen. Dies gilt auch für die modellgetriebene Multi-Plattform-Entwicklung. Durch die Verwendung einer plattformunabhängigen Unit-Test-DSL wird die Effizienz bei der Entwickelung und Wartung von Tests reduziert. 3 Generatoren Unit-Sprache Die mit Hilfe der Test-DSL spezifizierten Unit-Tests können durch Transformation in plattformspezifischen Test-Code übersetzt werden. Der generierte Test-Code basiert auf gängigen plattformspezifischen Test- Frameworks(zum Beispiel JUnit für Java). So können für das Ausführen der Tests gewohnte Werkzeuge verwendet werden(zum Beispiel der integrierte JUnit-Runner der Eclipse-IDE für Java). Bei der ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 3

4 Transformation wird die Struktur der Tests also die Namen von Dateien und Benennung einzelner Tests beibehalten. So können die komfortablen Ausgaben der plattformspezifischen Test-Werkzeuge problemlos genutzt und vom Entwickler interpretiert werden. Abbildung 1 Klassendiagramm eines simplen Domänen-Models Abbildung 1 zeigt das Klassendiagramm eines einfachen Domänen-Models, für welches in diesem Abschnitt ein Test mit Hilfe der vorgestellten Test-DSL erstellt werden soll. Die Modellierung beinhaltet zwei Klassen. Die Person besitzt die Attribute name und age. PersonList ist eine Aggregation von Personen. Die Klasse stellt eine Methode averageage zur Berechnung des Durchschnittsalters aller Personen der Liste bereit. Deren korrekte Funktion soll durch einen Test sichergestellt werden. package "de.modagile.personexample" import "classpath://de.modagile.personexample.personmodel" testcase PersonListTest { } test berechnetdurchschnittsalter ( ) { } // Initialisiere eine PersonList mit zwei Personen var personlist = new PersonList(persons => { }) new Person(name => "Klaus", age => 23), new Person(name =>"Angelika", age => 34) // Prüfe, dass averageage das richtige Ergebnis liefert assertequals(28.5, personlist.averageage()) Listing 1 Test-Quellcode ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 4

5 Listing 1 zeigt den Quellcode des Tests. Der Quellcode beginnt mit einer Package-Deklaration. Darauf folgt die Importanweisung für das in Abbildung 1 gezeigte Domänenmodell. Dies ist notwendig um die zu testenden Klassen verfügbar zu machen. Auf das Schlüsselwort testcase folgt der Name der Testsuite. Die geschweiften Klammern beinhalten alle Tests. Im vorgestellten Beispiel ist dies der Test berechnedurchschnittsalter. Dieser enthält zwei Anweisungen: 1. Die Deklaration der Variable personlist, welche eine neu zu erzeugende PersonList zugewiesen bekommt. Die enthaltenden Personen werden im Konstruktoraufruf direkt übergeben. In diesem Fall sind das Klaus(Alter 23) und Angelika(Alter 34). 2. Ein Aufruf der Prüffunktion assertequals. Diese erhält als ersten Parameter das erwartete Durschnittsalter(28.5). Der zweite Parameter ist der durch einen Aufruf der zu testenden Methode averageage tatsächlich berechnete Wert. Aus dem vorgestellten ModAgile-Unit-Test PersonListTest können mit Hilfe der ModAgile-Tools ausführbare Unit-Tests generiert werden. Abbildung 2 zeigt einen Screenshot des Java-Test-Werkzeugs JUnit bei der Ausführung des von ModAgile generierten JUnit-Tests. Man sieht, dass Bezeichner wie Paketnamen, Testcase-Namen und Testnamen übernommen wurden, so dass sich der Entwickler in den generierten Tests problemlos zurechtfindet. Abbildung 2 JUnit in Eclipse 4 Generatoren UI-Test-Sprache Für die zwei Plattformen android und ios wurden Generatoren entwickelt, die das plattformunabhängige Akzeptanztest-Modell in die jeweilige Zielplattform übersetzt. Zunächst musste der Stand der Technik für ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 5

6 das Testen auf Akzeptanz- bzw. Abnahmeebene gefunden werden. Zur Entwicklung der Referenztests wurden die Frameworks Robotium 1 für die Android-Version und die seit ios4 integrierte Automation in XCodes Instruments 2 verwendet. Beide simulieren Endbenutzer-Aktionen, wie beispielsweise das Klicken oder die Texteingabe. Bei beiden kann beim Testlauf mitverfolgt werden, wie die im Test festgehaltenen Benutzer-Aktionen auf dem Bildschirm ausgeführt werden. Daraus ergaben sich zwei Zielsprachen bzw. Frameworks, gegen die generiert werden muss: JavaScript für die Entwicklung von ios-tests unter Instruments Java für die Entwicklung von android-tests mit Robotium. Abbildung 3 Schema der Generierung für drei Plattformen (aus [1]) Das Prinzip der Generierung für verschiedene Plattformen ist in Abbildung 3 verdeutlicht. Für jede Plattform muss eine Menge von Schablonen (engl. templates) erstellt werden, die die Modell-zu-Text- Transformation ausführt, d.h. aus dem Anwendungs- und Testmodell (mit Modell 1 und Modell 2 bezeichnet) wird direkt ausführbarer Quellcode generiert. Dieser wird auf der jeweiligen Plattform mit den entsprechenden Test-Werkzeugen zur Ausführung gebracht. In beiden Plattformen war es das Ziel, den üblicherweise handgeschrieben Test-Code so gut wie möglich aus dem plattformunabhängigen Modell zu erzeugen. Spezifika der jeweiligen Plattform mussten daher in die Generatoren verlagert werden, um das Test-Modell nicht übermäßig kompliziert werden zu lassen. Das Test-Metamodell umfasst daher insbesondere die Funktionalitäten, die sich gut auf beide Plattformen abbilden lassen. Eigenschaften, die nur in einer der unterstützen Plattformen existieren, wurden zunächst zurückgestellt. Hier sind üblicherweise handgeschriebene Erweiterungen des generierten Test-Codes vonnöten, die aber in diesem Dokument nicht dargestellt sind Introduction/Introduction.html#//apple_ref/doc/uid/TP ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 6

7 4.1 Template-Strukturen Architekturell gliedert sich die Generierung in drei Bereiche. Der plattformunabhängige UILanguageGenerator ist für Aufgaben wie das Laden der beteiligten Modelle verantwortlich. Er setzt die Generierung in Gang, in dem er den jeweiligen Plattformgenerator anstößt. Von allen Generatoren werden gemeinsame Bibliotheksfunktionen genutzt, die in den CommonHelperMethods implementiert sind. Abbildung 4 Generatoren im Überblick Die gesamte Logik der plattformspezifischen Generierung liegt also in den Generatoren, die durch die bereits angesprochenen Templates realisiert sind. Das Paradigma für die Struktur der Pakete und Templates ist hauptsächlich in Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge beschrieben. Zusammengefasst: Pro Typ der generierten Klasse gibt es ein eigenes Xtend-Template. Diese sind gemäß ihren inhaltlichen Bezügen zu Paketen zusammengefasst, die einzelne Belange der Generierung umfassen. Da für die Testgenerierung nur ein Zielklassentyp notwendig ist, genügt es, die Information in einer Template-Datei zusammenzuführen. Die Abbildung 5 zeigt, wie die Templates mit der UI-Test-Sprache verwoben sind. Als Teil eines großen Projekts, das die UI-Test-Sprache und ihre Generatoren umfasst, ist ein Xtext-Projekt entstanden. Hervorgehoben sind die Elemente, die speziell für die Generierung notwendig sind. Oben sieht man die Templates und der Workflow, der ausgeführt wird, um plattformspezifische Tests zu generieren. Unten ist der Ordner hervorgehoben, der die von Xtend generierten Java-Quelldateien enthält. Semantisch sind diese äquivalent zu den Templates. Jedoch ist ihre Ausführung viel performanter als eine Ausführung der Templates mit einem interpretierenden Ansatz (wie früher bei Xpand). Die Konfiguration des Editors, der aus der Sprachdefinition generiert wurde, erlaubt es, Generatoren einzuhängen, die aufgerufen werden, sobald die UI-Test-Datei gespeichert wird. Im Hintergrund läuft dann der Prozess der Generierung für die unterstützten Plattformen los. Zunächst wird der UI-Test-Code in ein Modell übersetzt. Dieses Modell wird in den Templates zur Generierung traversiert und schreibt an die eingestellten Stellen im Dateisystem die Testklassen und Testmethoden. ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 7

8 Abbildung 5 Struktur von Test-UI-Sprache und Generatortemplates 4.2 Generierung für android Zunächst soll ein Beispiel zeigen, was das Ziel der Generierung unter android ist. Dazu ist in Abbildung 6 ein Referenztest abgebildet, der die Anwendung Mamex testet. Es wird zunächst eine Person angelegt, danach ihr Geburtsdatum gesetzt und gespeichert. Die Zusicherung prüft, ob die Person in der Liste angezeigt wird. ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 8

9 Abbildung 6 Referenztest unter android (aus [1]) Für die Templates ist das plattformunabhängige Test-Modell nötig. Der textuelle Editor für diese Testsprache wurde bereits im Detail in Lieferung 6.3 Textuelle Editoren für alle identifizierten Sichten beschrieben, daher wird an dieser Stelle nur darauf verwiesen. Im Kern wird die Ausführungslogik des Tests sowie die Zusicherung am Ende in der in Abbildung 7 dargestellten Form als Eingabe verwendet. Abbildung 7 Plattformunabhängiger Test-Code (aus [1]) Die android-spezifischen Templates bauen daraus Quellcode, der in möglichst großem Umfang der handgeschriebenen Referenz aus Abbildung 6 entspricht. Das Ergebnis der Generierung ist in Abbildung 8 abgebildet. ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 9

10 Abbildung 8 Generat des UI-Tests unter Robotium/android (aus [1]) In dem illustrierten Fall ist wegen der Einfachheit des Tests das Generat mit der Referenz bis auf die Kommentare sogar identisch. Normalerweise werden aber Konstrukte enthalten sein, die schwerer lesbar sind, weil sie generiert sind. Über dies kann sich der Tester jedoch hinweg setzen, weil der vollständig ausführbare Code lediglich zur Ausführung gebracht werden muss. Die Spezifikation des Testfalls findet schließlich nur noch in der plattformunabhängigen Variante statt. 4.3 Generierung für ios Ähnlich wie für den android-fall startet man mit einer Spezifikation des Tests in der plattformunabhängigen Sprache (Abbildung 7). Das Ziel der Generierung unterscheidet sich jedoch deutlich von der Java-basierten Variante mit Robotium. In ios werden Anwendungen mit dem Appleeigenen Werkzeug Instruments getestet. Dieser benutzt JavaScript, um das Verhalten, das auf dem Simulator ausgeführt werden soll, zu beschreiben. Auch für ios wird zunächst ein Referenztest, geschrieben von Hand, gezeigt. Danach bietet das Generat, das von dem entwickelten UI-Test-Generator herauskommt, die Möglichkeit zum Vergleich mit der Referenz. Abbildung 9 Referenztest unter ios ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 10

11 Abbildung 9 zeigt den Test, wie man ihn von Hand in JavaScript schreiben würde, Abbildung 10 zeigt das Generat. Abbildung 10 Generierter ios-test in JavaScript Wieder ist die Ähnlichkeit hoch. Allerdings gibt es diesmal einen kleinen Unterschied. Dadurch, dass die Buttons in Android und in ios nicht immer einen Namen haben, müssen sie im Generat über ihren Index gefunden werden und können danach gedrückt werden (Zeile 8). Da der Imagebutton mit dem Label x office calendar unter Android keinen Namen hat, wird er einfach über seine Ordnungsnummer (0) im Bereich der Zellen gefunden und gedrückt. Der Umfang der gesamten Sprache kann hier nicht in Gänze erläutert werden. Für eine Übersicht der Features der UI-Test-Sprache verweisen wir daher auf die Lieferung 6.3 Textuelle Editoren für alle identifizierten Sichten, in der das Metamodell sowie die konkrete textuelle Syntax der Sprache erläutert sind. 5 Schluss Es wurden Modagile-spezifische Test-DSLs entwickelt, welche alle wesentlichen Aspekte von Unit- und UI-Tests ausdrücken können. Dazu wurden Xtext-basierte Parser entwickelt, welche die entwickelten Test-Dateien verarbeiten können. Darauf aufbauend wurden Transformationswerkzeuge entwickelt, welche Tests für die jeweiligen Zielplattformen erzeugen können. Das vorliegende Dokument erläutert die Phasen und Bestandteile der plattformspezifischen Generierung. Tests sind ein wichtiges Mittel, um die Qualität von Programmcode sicherzustellen. Dies gilt auch für die modellgetriebene Multi-Plattform-Entwicklung. Durch die Verwendung plattformunabhängiger Test-DSLs wird die Effizienz bei der Entwicklung und Wartung von Tests reduziert. 6 Literaturverzeichnis [1] N. Kaiser, Eine DSL zum szenariobasierten Testen mobiler Anwendungen, Institut für Programmstrukturen und Datenorganisation, Karlsruhe, ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 11

12 ModAgile Mobile L8.1 DSL und Generator für automatisierte Unit- und Akzeptanz-Tests 12

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile

Mehr

Lieferung 4.3 Entwicklungsprozess für mobile Anwendungen

Lieferung 4.3 Entwicklungsprozess für mobile Anwendungen Lieferung 4.3 Entwicklungsprozess für mobile Anwendungen für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket Arbeitspaketleitung Förderkennzeichen

Mehr

Lieferung 4.2 Entwicklungsumgebung für die Integration von der modellgetriebenen Entwicklung in den Entwicklungszyklus

Lieferung 4.2 Entwicklungsumgebung für die Integration von der modellgetriebenen Entwicklung in den Entwicklungszyklus Lieferung 4.2 Entwicklungsumgebung für die Integration von der modellgetriebenen Entwicklung in den Entwicklungszyklus für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile

Mehr

Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen

Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket

Mehr

Lieferung 8.2 Erweiterung von ISIS um Metriken auf der Modell-Ebene

Lieferung 8.2 Erweiterung von ISIS um Metriken auf der Modell-Ebene Lieferung 8.2 Erweiterung von ISIS um Metriken auf der Modell-Ebene für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket AP 8 Test- und Qualitätssicherungsumgebung

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

Lieferung 8.3 Erweiterung von USUS um Metriken auf der Modell-Ebene

Lieferung 8.3 Erweiterung von USUS um Metriken auf der Modell-Ebene Lieferung 8.3 Erweiterung von USUS um Metriken auf der Modell-Ebene für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket AP 8 Test- und Qualitätssicherungsumgebung

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

Lieferung 5.3 Integrierter agiler Prozess zur modellgetriebenen Software-Entwicklung mit Werkzeugunterstützung

Lieferung 5.3 Integrierter agiler Prozess zur modellgetriebenen Software-Entwicklung mit Werkzeugunterstützung Lieferung 5.3 Integrierter agiler Prozess zur modellgetriebenen Software-Entwicklung mit Werkzeugunterstützung für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile)

Mehr

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de Innovator 2007 Anbindung an openarchitectureware Klaus Weber Connect www.mid.de Anbindung an openarchitectureware (oaw) Wozu dient die Anbindung an openarchitectureware? Für Innovator Object excellence

Mehr

Model Driven Architecture

Model Driven Architecture { AKTUELLES SCHLAGWORT* / MODEL DRIVEN ARCHITECTURE Model Driven Architecture Martin Kempa Zoltán Ádám Mann Bei der Model Driven Architecture (MDA) bilden Modelle die zentralen Elemente des Softwareentwicklungsprozesses.

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Graphischer Editor für die technologieunabhängige User Interface Modellierung

Graphischer Editor für die technologieunabhängige User Interface Modellierung Universität Augsburg Lehrstuhl für Softwaretechnik und Programmiersprachen Prof. Dr. Bernhard Bauer Praktikum Modellgetriebene Softwareentwicklung SS 2008 Graphischer Editor für die technologieunabhängige

Mehr

Java Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit Prof. Dr. Nikolaus Wulff JUnit JUnit ist das Opensource Testframework. Es existieren Portierungen für fast alle objektorientierten

Mehr

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen

Mehr

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg Modellgetriebene Softwareentwicklung von mobilen Anwendungen WS 2014/15 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter:, Daniel Strüber, Steffen Vaupel Kontakt:

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 4: Domänenspezifische Sprachen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 4: Domänenspezifische Sprachen Nutzung vorhandener Sprachen

Mehr

Whitepaper. Automatisierte Akzeptanztests mit FIT. Einleitung. Die Bedeutung von Akzeptanztests

Whitepaper. Automatisierte Akzeptanztests mit FIT. Einleitung. Die Bedeutung von Akzeptanztests Automatisierte Akzeptanztests mit FIT Einleitung Dieses beschreibt, wie man Tests aus Anwender-/Kundensicht mit dem Open-Source-Werkzeug FIT beschreibt und durchführt. Das ist für Kunden, Anwender und

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Software Systems Engineering. Sommersemester 2013. Prof. Dr. Klaus Schmid. 28.01.2013, SoSe 13 Prof. Dr. Klaus Schmid 1

Software Systems Engineering. Sommersemester 2013. Prof. Dr. Klaus Schmid. 28.01.2013, SoSe 13 Prof. Dr. Klaus Schmid 1 Software Sommersemester 2013 Prof. Dr. Klaus Schmid 1 Kapitel 1: Java - Grundlagen Inhalt 1. Veranstaltungen im Sommersemester 2013 2 2. Aktuelle Abschluss- und Projektarbeiten 8 3. Offene HiWi Stellen

Mehr

Thomas Freitag achelos GmbH SmartCard-Workshop. 1 2012 achelos GmbH

Thomas Freitag achelos GmbH SmartCard-Workshop. 1 2012 achelos GmbH Thomas Freitag achelos GmbH SmartCard-Workshop 2012 1 2012 achelos GmbH Übersicht 1. 2. 3. 4. 5. 6. 7. Einführung / Motivation Historie des Testens Schnittstellen im Testbereich Eclipse Plugins Automatisierung,

Mehr

Unit Testing mit JUnit. Dr. Andreas Schroeder

Unit Testing mit JUnit. Dr. Andreas Schroeder Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?

Mehr

Release 1.3 Produktspezifikation

Release 1.3 Produktspezifikation Release 1.3 Produktspezifikation Dokument Nr. Königsallee 43 71638 Ludwigsburg Germany www.savignano.net/savvytest 2 Inhaltsverzeichnis Produkteigenschaften...5 Übersicht...5 Produktvarianten...6 savvytest

Mehr

A Domain Specific Language for Project Execution Models

A Domain Specific Language for Project Execution Models A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche

Mehr

Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung

Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung Testen II (Management, Tools) Daniela Rose Fachgebiet Softwaretechnik und Systemgestaltung 12.12.2007 Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4.

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann. Softwaretests Werkzeuge zur Automatisierung für Thementag Wer testet, ist feige 24.06.2009 Autor: Markus Alvermann Seite 2 / 39 Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by Mobile Apps mit DSLs C1 und entfernter Codegenerierung Codierst Du noch oder generierst Du schon? Generative Software GmbH Freiburg Inhalt Plattformabhängige Entwicklung JavaScript Firefox OS Java Android

Mehr

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH Automatisierte Akzeptanztests für ios-apps Sven Günther it-agile GmbH Wer entwickelt native Apps? Wer testet die Apps selbst? Wer hat externe Testdienstleister? Wer hat Unit-Tests? Wer hat Akzeptanztests?

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R Vector Software W H I T E P A P E R Test Automation mit VectorCAST während der gesamten Softwareentwicklung VectorCAST Produktfamilie Die VectorCAST Produktfamilie automatisiert Testaktivitäten über den

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009 Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Test-Driven Developement Eine Einführung

Test-Driven Developement Eine Einführung Test-Driven Developement Eine Einführung 2007 by Tobias Hagen Im Rahmen der Veranstaltung Aktuelle Themen der Informatik bei Prof. Dr. Friedbert Kaspar Hochschule Furtwangen University Übersicht Einführung...

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren Mirko Seifert, DevBoost GmbH 12. November 2013, ASQF Modeling Day 2013, Nürnberg Agenda 1. Der

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung Software-Qualität im Rahmen modellgetriebener Softwareentwicklung OFFIS Technologiecluster Enterprise Application Integration niels.streekmann@offis.de 09.07.2008 Seite 1 / 13 Software-Qualität: Unterschiedliche

Mehr

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen vorgestellt am 29.09.2008 in der PASS Regionalgruppe Karlsruhe Michael Riedmüller inovex GmbH Project

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben

Mehr

SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen

SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen Christian Langmann langmann@softwareloft.de Stefan Kohrs kohrs@softwareloft.de Oktober 2013 SoftwareLoft IT-Solutions GmbH gegründet 2004

Mehr

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012 Qualitätssicherung von Software am Beispiel von Unit Testing Klaus Kusche, Mai 2012 Inhalt Motivation Definition von Unit Tests, Einordnung in der QA, Nutzen Einordnung im V-Modell (==> Tafel) Inhalt,

Mehr

Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen

Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen Präsentation bei den Stuttgarter Testtagen 21.März 2013 NovaTec - Ingenieure für neue Informationstechnologien GmbH Leinfelden-Echterdingen,

Mehr

Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung

Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung Neuerungen in SASUnit Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung Dr. Patrick René Warnat HMS Analytical Software GmbH Rohrbacher Str. 26 69115 Heidelberg patrick.warnat@analytical-software.de

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim Test- Grundsätzliches - - - Ablauf von Tests Grundsätzliche Test- -Tests Äquivalenzklassenbildung Randwertanalyse -Tests Man unterscheidet verschiedene Überdeckungsgrade: Statement Coverage Decision Coverage,

Mehr

Erwin Grüner 15.12.2005

Erwin Grüner 15.12.2005 FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:

Mehr

Spock und Geb: Übersichtlich und nachvollziehbar Testen für alle!

Spock und Geb: Übersichtlich und nachvollziehbar Testen für alle! Spock und Geb: Übersichtlich und nachvollziehbar Testen für alle! Entwicklertag Karlsruhe, 20.05.2015 Ralf D. Müller, Freelancer Tobias Kraft, exensio GmbH Meine Software wird durch automatisierte Tests

Mehr

Das automatisierte Testen mit JUnit

Das automatisierte Testen mit JUnit Das automatisierte Testen mit JUnit SWT Seminar (SS03) Ausgearbeitet von Sundui Baatarjav Am Fachbereich Informatik der TU-Berlin EINLEITUNG 3 JUNIT - FRAMEWORK 4 Aufbau und Struktur 4 TestCase 4 Assert

Mehr

Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7.

Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7. Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7. July, 2009 WIR FORSCHEN FÜR SIE Dr.-Ing. Steffen Becker sbecker@fzi.de Abteilungsleiter

Mehr

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 Projektbezeichnung Projektleiter Verantwortlich - Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 MSP-13 - Integration eines Semantischen Tagging Systems in Microsoft Sharepoint Martin

Mehr

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

Mehr

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2 Inhaltsverzeichnis 1 Einführung 2 1.1 Warum Softwaretests?.................................... 2 2 Durchgeführte Tests 2 2.1 Test: allgemeine Funktionalität............................... 2 2.1.1 Beschreibung.....................................

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc.

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc. Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 4: Stand: 03.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische Universität Eichstätt-Ingolstadt

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

Wiki-basierte Dokumentation von Software-Entwicklungsprozessen

Wiki-basierte Dokumentation von Software-Entwicklungsprozessen Wiki-basierte Dokumentation von Software-Entwicklungsprozessen Erfahrungen aus der industriellen Praxis Fraunhofer IESE Kaiserslautern Inhalt Wiki-basierte Dokumentation von Software-Entwicklungsprozessen

Mehr

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling)

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling) 1. BlueJ installieren... 1 2. BlueJ auf die deutsche Version umstellen... 1 3. BlueJ Extensions... 2 a. Klassenkarte... 2 i. UML Extension... 2 ii. Klassenkarte zum Schulbuch... 3 b. CNU BlueJ Code Formatter...

Mehr

objectif / SOA /.NET Inhalt Technologien ObjectiF Beispiel Vergleich: ObjectiF Rational Rose Quellenverzeichnis 20.01.2008 Christian Reichardt 2 Technologien 20.01.2008 Christian Reichardt 3 Methodenaufruf

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Softwareentwicklungsprozesse. 18. Oktober 2012

Softwareentwicklungsprozesse. 18. Oktober 2012 Softwareentwicklungsprozesse 18. Oktober 2012 Überblick Was soll ein Softwareentwicklungsprozess leisten? Überblick über Softwareentwicklungsprozesse Welche gibt es? Warum gibt es mehrere? Diskussion:

Mehr

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus]

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] ESB Open Source ESB: Mule Flightreservation Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] Inhalt 1. Open Source ESB: Mule... 2 1.1. Überblick... 2 1.1.1. Das Beispiel Zeigt:... 2 1.2. Installationsanleitung...

Mehr

Inhaltsübersicht. n Aufgabenstellung. n Lösungsüberblick. n Herausforderungen. n Entwicklung der Generatoren. n Zusammenfassung/Schlussfolgerungen

Inhaltsübersicht. n Aufgabenstellung. n Lösungsüberblick. n Herausforderungen. n Entwicklung der Generatoren. n Zusammenfassung/Schlussfolgerungen Dr. Christoph Niemann otris software AG Königswall 21 D-44137 Dortmund Tel. +49 (0)231 958069 0 www.otris.de Modellgetriebene Entwicklung eines WLAN-Management- Systems copyright by by otris software AG:

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklung 30.10.2008 Dr. Georg Pietrek, itemis AG Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 2 Vorstellung IT-Dienstleister Software-Entwicklung

Mehr

Model Driven Development einige wichtige Grundprinzipien

Model Driven Development einige wichtige Grundprinzipien Model Driven Development einige wichtige Grundprinzipien Johannes Scheier j@scheier software.ch Copyright by Scheier Software Engineering Seite 1 Inhalt Was ist Model Driven Development (MDD)? Was verspricht

Mehr

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung Übersicht s s Gregoire Kemgne 1 Motivation Problem: Software wird immer größer und komplexer, dadurch ist diese immer schwerer zu überschauen Ein Projekt benötigt mehr Zeit und/oder Entwickler. Lösung:

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS

PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS DIPL.-WIRT.INFORM. HENNING HEITKÖTTER PRAKTISCHE INFORMATIK, UNIVERSITÄT MÜNSTER 1 GEGENÜBERSTELLUNG NATIVE VS. PLATTFORMÜBERGREIFENDE ENTWICKLUNG 2 ENTWICKLUNGSANSÄTZE

Mehr

Erweiterbare Programmiersprachen und DSLs

Erweiterbare Programmiersprachen und DSLs Erweiterbare Programmiersprachen und DSLs Markus Voelter, Freiberufler/itemis Bernhard Merkle, SICK AG Dieser Vortrag (und dieses Paper) beschreiben einen neuartigen Ansatz für die Entwicklung eingebetteter

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Datenhaltung für Android. Model First

Datenhaltung für Android. Model First Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

Alles unter Kontrolle

Alles unter Kontrolle Alles unter Kontrolle Messung der Testabdeckung mit Open-Source-Tools Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de 29.06.2008 Zusammenfassung: Unit-Tests sind vielleicht nicht

Mehr

Michael Piechotta - CASE Tools. openarchitecture Ware

Michael Piechotta - CASE Tools. openarchitecture Ware Model Driven Development Michael Piechotta - CASE Tools openarchitecture Ware Gliederung 1.Einleitung - Was ist MDD? - Wozu MDD? 2.Model Driven Development - OMG Konzepte: Modelle,Transformationen Meta-Modellierung

Mehr

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6 Prof. Dr. Wilhelm Schäfer Paderborn, 24. November 204 Christian Brenner Tristan Wittgen Besprechung der Aufgaben:. - 4. Dezember 204 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester

Mehr

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung Block R (Rahmen): SE Aktivitäten 21.10.04 1 Vorlesung Methoden des Software Engineering Block R Rahmen Aktivitäten der Software-Entwicklung Martin Wirsing Einheit R.2, 21.10.2004 Block R (Rahmen): SE Aktivitäten

Mehr

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung 2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer Beitrag von Peter Küsters Formen des Datentransfers bei der Erfassung von Websites Im folgenden werden Methoden und Software zur Erfassung vorgestellt.

Mehr

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de Programmieren ohne Programmierer Das GeneSEZ Generator Framework Gerrit Beine gerrit.beine@sapat.de Vogelperspektive Theorie: Model driven software development Praxis: Konzepte von GeneSEZ Lösungen für

Mehr

Übung zur Vorlesung Einführung in Software Engineering

Übung zur Vorlesung Einführung in Software Engineering Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei

Mehr

Polarion QA. POLARION ALM StartUp Training. Testmanagement in Polarion

Polarion QA. POLARION ALM StartUp Training. Testmanagement in Polarion Polarion QA POLARION ALM StartUp Training Index: Polarion QA im V-Modell TestCases / Test Steps TestRun und TestRun Template Execute Test & TestStep Table Suchabfragen Traceability Übungen Testmanagement

Mehr