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 3.2 Erfahrungsbericht M24

Lieferung 3.2 Erfahrungsbericht M24 Lieferung 3.2 Erfahrungsbericht M24 für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket Arbeitspaketleitung Förderkennzeichen Projektleitung Partner

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 2.2 Validierung der Anforderungen

Lieferung 2.2 Validierung der Anforderungen Lieferung 2.2 Validierung der Anforderungen für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket Arbeitspaketleitung Förderkennzeichen Projektleitung

Mehr

Lieferung 3.2 Erfahrungsbericht M18

Lieferung 3.2 Erfahrungsbericht M18 Lieferung 3.2 Erfahrungsbericht M18 für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket Arbeitspaketleitung Förderkennzeichen Projektleitung Partner

Mehr

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 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 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 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

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Lieferung 3.1 Beschreibung der Referenzarchitektur für das BMBF-Projekt

Lieferung 3.1 Beschreibung der Referenzarchitektur für das BMBF-Projekt Lieferung 3.1 Beschreibung der Referenzarchitektur für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket AP 3 Referenzarchitektur und Benutzungsfälle

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Das Test-Framework JUnit ETIS SS04

Das Test-Framework JUnit ETIS SS04 Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen

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

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12 Vertretung von Prof. Dr. Blume WS 2011/12 Inhalt Test, Abnahme und Einführung Wartung- und Pflegephase gp Vorlesung Zusammenfassung Produkte und Recht (Folien von Prof. Blume) 2 , Abnahme und Einführung

Mehr

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests

Mehr

Lieferung 3.2 Erfahrungsbericht Stand: M6

Lieferung 3.2 Erfahrungsbericht Stand: M6 Lieferung 3.2 Erfahrungsbericht Stand: M6 für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket AP 3 Referenzarchitektur und Benutzungsfälle Arbeitspaketleitung

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

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

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen

Mehr

Unit Testing, SUnit & You

Unit Testing, SUnit & You HUMBOLDT-UNIVERSITÄT ZU BERLIN MENSCH-TECHNIK-INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Unit Testing, SUnit & You

Mehr

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr. Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 24. Juni 2015 Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode

Mehr

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte der Softwareentwicklung.

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

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

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

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

domänenspezifischenprogrammiersprachen

domänenspezifischenprogrammiersprachen Effiziente Entwicklung vonautosar-komponenten mit domänenspezifischenprogrammiersprachen Dr. Frank Höwing LINEAS Automotive GmbH Theodor-Heuss-Str. 2 D-38122 Braunschweig frank.hoewing@lineas.de Abstract:

Mehr

Akzeptanztesten mit Integrity und FitNesse Ein Vergleich

Akzeptanztesten mit Integrity und FitNesse Ein Vergleich Akzeptanztesten mit Integrity und FitNesse Ein Vergleich Dehla Sokenou GEBIT Solutions TAV35, Ingolstadt Motivation Akzeptanztest als letzte Phase im Softwareentwicklungsprozess Idealerweise durch den

Mehr

Unit Tests mit Junit 4. Dario Borchers

Unit Tests mit Junit 4. Dario Borchers Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests

Mehr

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4. SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen

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

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

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

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

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

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

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

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

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,

Mehr

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015 Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook 14. Januar 2015 Überblick Modell- und Codegenerierung (M2C, C2M) Modellinterpretation vs. Modellübersetzung PIMAR Code-Generierung am Beispiel des

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

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

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012 Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene

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

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

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

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

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

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme Michael Felderer Workshop Requirements Engineering meets Testing Bad Honnef, 5. Juni 2008 1 Überblick Grundbegriffe Motivation

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

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

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

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

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

DSLs mit Xtext entwerfen. 17.08.2012, A. Arnold

DSLs mit Xtext entwerfen. 17.08.2012, A. Arnold DSLs mit Xtext entwerfen 17.08.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was sind DSLs? 2. Xtext Konzepte 3. Einführung ins Sprachdesign 4. Hands On! 3 4 8 20 2 Was sind DSLs? Domain Specific

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

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

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

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

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

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

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

Programmiertechnik II

Programmiertechnik II Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing

Mehr

Markus Wichmann. Testen von Java Code mit. JUnit

Markus Wichmann. Testen von Java Code mit. JUnit Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig

Mehr

Spezifikationsmethode zur Generierung von Modellen und Tests. Qualifizierung von Codegeneratoren.

Spezifikationsmethode zur Generierung von Modellen und Tests. Qualifizierung von Codegeneratoren. Page 1 Spezifikationsmethode zur Generierung von Modellen und Tests. Qualifizierung von Codegeneratoren. Dr. Stefan-Alexander Schneider, Prozessentwicklung Page 2 Agenda. Motivation Vorgehen Spezifikationssprache

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

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

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

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

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

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

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

FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK

FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK DIE METHODE FÜR DEN SOFTWAREENTWURF VERNETZTER MECHATRONISCHER SYSTEME Innovative Funktionen moderner mechatronischer

Mehr

Modellbasierte Softwareentwicklung mit EMF

Modellbasierte Softwareentwicklung mit EMF Softwaretechnik I, WS 2009/10 Modellbasierte Softwareentwicklung mit EMF Übungsblatt 5 13. November 2009 Organisatorisches Zur Bearbeitung der Übungsaufgabe stehen Ihnen die folgenden 3 Wochen (Kalenderwochen

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

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

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Testen von graphischen Benutzeroberflächen. 26. Juni 2013 Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien

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

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

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

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de JSP JSTL JEE Vorlesung Teil 6 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Wiederholung / Vertiefung JSTL Grundlagen JSTL Basisbefehle Templates über JSTL

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

Modellbasierte Softwareentwicklung

Modellbasierte Softwareentwicklung CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution

Mehr

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort 1.3 PHP Vorzüge Erlernbarkeit Im Vergleich zu anderen Sprachen ist PHP relativ leicht erlernbar. Dies liegt hauptsächlich daran, dass PHP im Gegensatz zu anderen Sprachen ausschließlich für die Webserver-Programmierung

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr