Effizientes Programmieren
|
|
- Anneliese Morgenstern
- vor 6 Jahren
- Abrufe
Transkript
1 Effizientes Programmieren Praktikum ( ) Christopher Pietsch
2 Agenda / 32 ( )
3 Teil 1 von Softwareentwicklungsmethoden 2 / 32 ( )
4 Methodenlose Softwareentwicklung Softwareentwicklung Methodische Softwareentwicklung Klassische Methoden Agile Methoden 2 / 32 ( )
5 Methodenlose Softwareentwicklung Ad-Hoc-sprozess: - Motto: Code & fix - Kleine Projekte mit kurzer Laufzeit, z.b.: - (Wegwerf-)Prototyp - Proof-of-Concept - Demo Softwareentwicklung Methodische Softwareentwicklung Klassische Methoden Agile Methoden 3 / 32 ( )
6 Methodenlose Softwareentwicklung Softwareentwicklung Phasen-basierter sprozess, gesteuert durch: - Wasserfallmodell Klassische - Spiralmodell Methoden - V-Modell - Projekte mit (relativ) stabilem Umfeld Methodische Softwareentwicklung Agile Methoden 4 / 32 ( )
7 Beispiel: Wasserfallmodell nach Royce Analyse Entwurf Systemanforderungen Softwareanforderungen Implementierung Testen Betrieb [Roy87] 5 / 32 ( )
8 Methodenlose Softwareentwicklung Softwareentwicklung Agiler sprozess, gesteuert durch.: - Kanban Klassische - SCRUM Methoden - Extreme Programming Praktiken: Methodische Softwareentwicklung Agile Methoden 6 / 32 ( )
9 Testbegriff Test-First Ansatz Teil 2 7 / 32 ( )
10 Integration Tests Teste mich TEST Business Logik zu testende Klasse Hilfs- Klasse Ausfallstelle Testbegriff Test-First Ansatz Datenzugriff Integration Testing: [Z]wei oder mehr voneinander abhängige Softwaremodule [werden] als eine Gruppe getestet [...]. [Osh10] Daten- Hilfsdienst Datenbank Ausfallstelle Ausfallstelle 7 / 32 ( )
11 (Gute) Unit Tests Testbegriff Test-First Ansatz Definition: Unit Eine Unit ist eine Methode oder Funktion [...], die logischen Code enthält. [Osh10] Logischer Code: Bedingte Anweisungen: if, switch Schleifen: while, for Operationen: +, -,... Ausnahmen: throws Bemerkung: Getters/Setters nur dann, wenn sie logischen Code enthalten. 8 / 32 ( )
12 (Gute) Unit Tests Testbegriff Test-First Ansatz Definition: Unit Test Ein Unit Test ist ein automatisiertes Stück Code, das eine zu testende Methode oder Klasse aufruft und dann einige Annahmen über das logische Verhalten dieser Methode oder Klasse prüft[...]. [Ein guter Unit Test] kann einfach geschrieben und schnell ausgeführt werden. Er ist vollständig automatisiert, vertrauenswürdig, lesbar und wartbar. [Osh10] 9 / 32 ( )
13 (Gute) Unit Tests Testbegriff Test-First Ansatz Automatisierbar und jederzeit wiederholbar Accidental Bugging, Refactorings Einfach zu implementieren erhöhter Abdeckungsgrad Jeder sollte den Test ausführen können Collective Ownership Ausführung erfolgt auf Knopfdruck keine Konfiguration Läuft schnell erhöhte Ausführungsrate 10 / 32 ( )
14 Traditionelles Unit Testen Testbegriff Test-First Ansatz Schreibe Methode, Klasse oder Applikation optional Schreibe Unit Tests (wenn Zeit) optional Führe Unit Tests aus (wenn Zeit) Fehlerkorrektur [Osh10] 11 / 32 ( )
15 Test-First Ansatz Schreibe Test Lasse alle Tests laufen Testbegriff Test-First Ansatz Erfülle Testanforderungen durch das Schreiben von Produktionscode Lasse alle Tests laufen Wenn alle Tests erfolgreich und kein Refactoring notwendig, schreibe einen neuen Test Refactoring des Produktionscode wenn Tests erfolgreich Fehlerkorrektur wenn Tests fehlschlagen [Osh10] 12 / 32 ( )
16 Test-First Ansatz Testbegriff Test-First Ansatz Red-Green-Refactor Mantra: 1 Schreiben einer Testmethode die fehlschlägt: Fail (Testen des Tests) 2 Schreiben des Produktionscode: Pass 3 Überarbeitung des Codes Red Green Refactor 13 / 32 ( )
17 Unit Testing Framework Testbegriff Test-First Ansatz Framwork unterstützt den Entwickler beim 1 Schreiben von Tests stellt Klassenbibliothek bereit 2 Ausführen von Tests ermöglicht die automatisierte Ausführung eines oder mehrerer Tests auf Knopfdruck 3 Auswerten von Tests gibt diverse Informationen bzgl. der ausgeführten Tests zurück xunit Frameworks: CppUnit: C++ : Java NUnit:.Net / 32 ( )
18 Teil 3 15 / 32 ( )
19 Testframework Annotation-basiertes Testframework für Java Projektseite: Vollständige Integration in Eclipse IDE 15 / 32 ( )
20 Struktur von Testprojekten Testfall (Test Case): Klasse bestehend aus - Setup-Methode: Methode zum initialisieren der Testumgebung - Testmethode: Methode zum Ausführen der zu testenden Funktionalität und zum Prüfen der jeweiligen Annahmen - Teardown-Methode: Methode zum Aufräumen der Testumgebung Test Suite: Klasse zum Ausführen mehrerer Testfälle 16 / 32 ( )
21 Konventionen Testfall: [Klassenname]Test.java Testmethode: test [Methodenname()] Anmerkung: u.u. gibt es mehrere Testmethoden für eine Klassenmethode: [Methodenname] [Testbedingungen] [ErwartetesVerhalten]() 17 / 32 ( )
22 Annotierte Methode wird vor jedem Testfall Annotierte Methode wird nach jedem Testfall Annotierte Methode wird vor jeder Testmethode Annotierte Methode wird nach jeder Testmethode aufgerufen 18 / 32 ( )
23 Annotierte Methode führt den zu testenden Code aus und überprüft das erwartete = Exception.class): Annotierte Methode führt zu testenden Code aus und erwartet eine entsprechende Annotierte Methode führt zu testenden Code aus und überprüft deren Annotierte Methode wird ignoriert 19 / 32 ( )
24 Testphasen public class AllTests {} teardown() weitere Testmethode? Ja Ja Nein Fertig Nein weitere teardownafterclass() 20 / 32 ( )
25 Assertions Klasse Assert (siehe javadoc/org/junit/assert.html): fail(string): Methode schlägt immer fehl asserttrue([message], boolean condition): Prüft ob die Bedingung wahr ist assertfalse([message], boolean condition): Prüft ob die Bedingung falsch ist / 32 ( )
26 Beispiel: Calculator.java 1 public class Calculator { 2 3 private Stack<Long> mem; 4 5 public Calculator() {...} 6 7 public long add(long n1, long n2) { 8 mem.push(n1+n2); 9 return mem.peek(); 10 } public long sub(long n1, long n2) {...} public long mult(long n1, long n2) {...} public long div(long n1, long n2) throws ArithmeticException {...} public void clear() {...} public Stack<Long> getmem() {...} 21 } 22 / 32 ( )
27 Beispiel: CalculatorTest.java 1 public class CalculatorTest { 2 3 Calculator calculator; 4 6 public static void setupbeforeclass() throws Exception {...} 7 9 public static void teardownafterclass() throws Exception {...} public void setup() throws Exception { 13 calculator = new Calculator(); 14 } public void teardown() throws Exception { 18 calculator = null; 19 } 23 / 32 ( )
28 Beispiel: CalculatorTest.java 2 public void testadd() { 3 calculator.add(5, 5); 4 asserttrue(calculator.getmem().peek() == 10); 5 } 6 8 public void testsub() {...} 9 11 public void testmult() {...} public void testdiv() {...} 24 / 32 ( )
29 Beispiel: CalculatorTest.java = ArithmeticException.class) 2 public void testdiv_arithmeticexception() { 3 calculator.div(5, 0); 4 } 5 7 public void testclear() {...} 8 } 25 / 32 ( )
30 Teil 4 26 / 32 ( )
31 Problem: Externe Abhängigkeiten Definition: Externe Abhängigkeit Eine externe Abhängigkeit ist ein Objekt [...], mit dem der zu testende Code interagiert und welches außerhalb der Kontrolle des Entwickler liegt. [Osh10] Beispiele: Dateisystem Threads Zeit / 32 ( )
32 Lösung: Stubs Definition: Stub Ein Stub ist ein kontrollierbarer Ersatz für eine vorhandene Abhängigkeit [...] im System. Durch die Verwendung von Stubs kann der Code getestet werden, ohne die Abhängigkeit direkt handhaben zu müssen. [Osh10] 27 / 32 ( )
33 Lösung: Definition: Mock Ein Mock-Objekt ist ein nachgeahmtes Objekt im System, das entscheidet, ob ein Unit Test funktioniert hat oder fehlgeschlagen ist. Es macht dies, indem es verifiziert, ob das zu testende Objekt mit dem nachgeahmten Objekt wie erwartet interagiert. [Osh10] 28 / 32 ( )
34 Stub vs. Mock Stub: Ersetzt Abhängigkeit beim zustandsbasierten Testen Kann nicht fehlschlagen Mock: Ersetzt Abhängigkeit beim interaktionsbasierten Testen kann fehlschlagen Integration durch Indirektionsschicht 29 / 32 ( )
35 Stub vs. Mock Test zu testende Klasse Test Assert Kommunikation Assert Stub Mock vgl. [Osh10] 30 / 32 ( )
36 Teil 5 31 / 32 ( )
37 nstellung Implementierung einer digitalen Geldbörse (Money Bag) nach dem Test-First Ansatz ExchangeRatesDataBaseAdapterFactory -adapter: IExchangeRatesDataBaseAdapter +create(): IExchangeRatesDataBaseAdapter +setexchangeratesdatabaseadapter(adapter:iexchangeratesdatabaseadapter) 1 MoneyBag -monies: Money[] +add(in money:ioney): Money +sub(in money:money): Money +times(in d:double): MoneyBag +divide(in d:double): MoneyBag +saldo(in c:string): String +getmonies(): Money[] adapter 1 IExchangeRatesDataBaseAdapter +connect(in database:string) +disconnect() +select(in s:string): Map<String,Double> 1 Currency -name: String -rates: Map<String,Double> +getname(): String +getrates(): Map<String,Double> +equals(in obj:object): boolean +currency 1 -monies * Money -amount: Double +add(in money:money): Money +sub(in money:money): Money +times(in d:double): Money +divide(in d:double): Money +saldo(in c:string): String +getamount(): Double ExchangeRatesDataBaseAdapterStub -name: String -currencies: Map<String,Map<String,Double>> Abbildung: Projekt: 2015s pep junit money 31 / 32 ( )
38 Teil 6 32 / 32 ( )
39 Quellen: [Osh10] R. Osherove. The Art of Unit Testing - Deutsche Ausgabe. mitp, [Roy87] W. W. Royce. Managing the Development of Large Software Systems: Concepts and Techniques. In Proceedings of the 9th International Conference on Software Engineering, ICSE 87, pages , Los Alamitos, CA, USA, IEEE Computer Society Press. Weiterführende : http: // 32 / 32 ( )
Systematisches Testen
Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn
MehrUnit 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
MehrProgrammieren 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.
MehrUnit 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
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrUnit 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?
MehrThe Art of Unit Testing
The Art of Unit Testing 01.02.2011 Marco Heimeshoff Heimeshoff@gmx.de Übersicht Grundlagen des Unit Testing Test Driven Development Stubs & Mocks Behavior Driven Design The Art of Unit Testing Definition
MehrKurzanleitung JUnit. 1 Grundlagen. 1.1 Begriffsdefinitionen. 1.2 Empfehlungen
JUnit ist ein Testframework zum Testen von Java-Code. Es eignet sich besonders gut zum automatisierten Testen und ist ein wichtiges Hilfsmittel des Extreme Programmings, bei dem der Test-First-Ansatz angewendet
MehrSwp08-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,
MehrDas 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
MehrFWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java
FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java Hochschule München FK 07 SS 2009 Theis Michael - Senior Developer HVB Information Services GmbH März 2009 Grundlagen des
MehrJUnit - 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
MehrQualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit
1 DYNAMISCHER TEST Whitebox Testen mit JUnit Übersicht 2 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe
MehrProgrammierung 2 Studiengang MI / WI
Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung
MehrUnit 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
MehrSemesterprojekt Semantic Text Browsing. Ulf Leser, Philippe Thomas (, Lars Döhling)
Semesterprojekt Semantic Text Browsing Ulf Leser, Philippe Thomas (, Lars Döhling) Testing Was ist ein Test? Warum testen wir? Arten von Tests JUnit: Testing in Java Best Practises Test driven development
MehrProgrammiertechnik 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
MehrJava 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
MehrUnit Tests in der Testgetriebenen Entwicklung
Unit Tests in der Testgetriebenen Entwicklung Reduzierung des Testanteils am Gesamtsoftwareentwicklungsaufwand -- neue Strategien und Tools -- Hauptseminar Systemorientierte Informatik Christian Krauß
MehrPraktische Übung 'JUnit-Test'
Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse
MehrTesten 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
MehrMarkus 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
MehrDas 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
MehrSoftware-Engineering Software-Management
Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3
MehrWeb-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum
1 Web-Testen mit JUnit und HttpUnit Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 2 Inhalt Entwicklertests in der Praxis Unit-Testing JUnit HttpUnit Praktisches Beispiel Bewertung
MehrA very very very very short intro to. Testing
A very very very very short intro to Testing Testen ist Teil von V&V V&V Validierung und Verifikation Validierung Erstellen wir das richtige Produkt? Soll gewährleisten, dass das Softwaresystem die Kundenerwartungen
MehrTesten mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang
Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da
MehrProgrammieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Testen von Programmen 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte
MehrProgrammierung 2 Studiengang MI / WI
Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung
MehrProgrammieren 2 04 Testen und Testautomatisierung
Programmieren 2 04 Testen und Testautomatisierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Das Programm funktioniert super!...denkt
MehrSoftwaretechnik II. Sommersemester 2014. Software-Qualität. Stefan Berlik
1 / 43 Softwaretechnik II Sommersemester 2014 Software-Qualität Stefan Berlik Fachgruppe Praktische Informatik Fakultät IV, Department Elektrotechnik und Informatik Universität Siegen 8. Mai 2014 Gliederung
MehrTesten 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
MehrThema: Testen von objektorientierter Software
Seminar Simulation und Bildanalyse mit Java Thema: Testen von objektorientierter Software Uta Dienst 1. Teil: Einführung in den Software-Test 2. Teil: JUnit-Einführung Uta Dienst 17.11.2003 2 1. Teil:
MehrSoftware Engineering in der Praxis
Software Engineering in der Praxis Praktische Übungen Dirk Wischermann Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 18. Dezember 2006 Inhalt Nachlese
MehrTest Driven Development
Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)
MehrUnit-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/
MehrAllgemein: 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:
MehrInfo: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen
Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels
MehrSystematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015
Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von
Mehr1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2
1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing
MehrTesten von Softwaresystemen. 13. Januar 2015
Testen von Softwaresystemen 13. Januar 2015 Überblick Was umfasst das Testen von Software? Warum sollte man Software testen? Motivation für Software-Tests Wie sollte man Software testen? Grundlegende Teststrategien
MehrTest-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
MehrCode verifizieren mittels
Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren
MehrJUnit. Unit testing unter Java
JUnit Unit testing unter Java Was ist Junit? einfaches Framework zum Schreiben von wiederholbaren Tests Besonders geeignet für unit testing Erlaubt Hierarchie von Testsuites Schreiben eines Test Case 1.
MehrProgrammierprojekt. Anne0e Bieniusa Sommersemester 2014
Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrSoftware Engineering Test Automatiserung und Junit, Test Driven ( test first) Development
Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik Prof. A. Müller, HS KL Software
MehrSoftware Engineering in der Praxis
Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Funktionales Testen 1 / 17 Funktionales Testen Matthias Meitner Marc Spisländer Lehrstuhl für Software Engineering
MehrTDD für iphone OS. xpdays 2009. Tammo Freese
TDD für iphone OS xpdays 2009 Tammo Freese Inhalt Unit Testing für iphone OS Mockobjekte für iphone OS TDD für iphone OS? Unit Testing auf dem iphone Vor iphone OS 3.0: kaum dokumentiert nur auf dem Entwicklungsrechner
MehrEffizientes und effektives Testen von Embedded SW mit Google Test. Michael Bernhard
Effizientes und effektives Testen von Embedded SW mit Google Test Michael Bernhard 1 Agenda Warum testen? Wie testen? Google Test und Google Mock Toolintegration Schlussfolgerung 2 Die Norm fordert es
MehrUnit Tests und Fehlersuche
Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein
MehrUnit Testing mit NUnit
Unit Testing mit NUnit Vortrag in der Praktikumsveranstaltung SWAT Sommersemester 2013 Michael Fiedler 16. Mai 2013 1 / 22 Überblick 1 Erinnerung: Unit-Tests 2 NUnit 3 Kurze Vorführung
MehrSoftware - 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
MehrKomponenten-basierte Entwicklung Teil 6: Einführung in JUnit
Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit 31.10.14 1 Literatur und Web [6-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [6-2] Westphal,
MehrTesten mit JUnit. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03
Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da die meisten Programme
MehrTesten 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
MehrProgrammierpraktikum Java Entdecken. Merkblatt 3
Technische Universität München Fakultät für Informatik Prof. Dr. Helmut Seidl Michael Petter Melanie Dietz Raphael Geissler SS 2005 Programmierpraktikum Java Entdecken 1 extreme Programming Merkblatt 3
MehrAufgaben Objektentwurf
Aufgaben Objektentwurf (Einschub zum 5. Tutorium) Tutorium 6 13. März 2009 Svetlana Matiouk, Uni Bonn Ferientutorien zur Vorlesung Softwaretechnologie WS 2008 6. Treffen, Aufgabe 1 Vorwärtsmodellierung
MehrÜ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
MehrKapitel 5.2 Testwerkzeuge
Kapitel 5.2 Testwerkzeuge SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und
MehrTesten im Software- Lebenszyklus
TestNG TestNG Testen im Software- Lebenszyklus White-Box vs Black-Box Testing White-Box-Testing Black-Box-Testing Test-Driven Development (TDD) testgetriebene Entwicklung zuerst werden die Unit-Tests erstellt.
MehrKonzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest
Konzeption und prototypische Implementierung eines Werkzeuges für den funktionalen Klassentest Übersicht Motivation Zielsetzung Lösungsansatz und dessen Realisierung Anwendungs-Szenarien Präsentation von
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrTesten 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
Mehr4 Testgetriebene Entwicklung mit PHPUnit
57 4 Testgetriebene Entwicklung mit PHPUnit»The fewer tests you write, the less productive you are and the less stable your code becomes.«erich Gamma 4. 1 Einleitung Das Testen von Software ist wichtig.
MehrAutomatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven
Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Dipl.-Inf (FH) Matthias Müller 09.06.2010 Regressionstests Unter einem Regressionstest
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrEin erster Blick. Eclipse und Debugging. Anlegen von Projekten. Wissenswertes...
Eclipse und Debugging Ein erster Blick Starten mittels /usr/bin/eclipse oder auch Applications > Programming Legt workspace in eurem Homedir an! CoMa SS 09 Wissenswertes... CoMa II SS 09 1/24 CoMa II SS
MehrSoftware Engineering. 3. JUnit und ANT. Franz-Josef Elmer, Universität Basel, HS 2012
Software Engineering 3. JUnit und ANT Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 3. JUnit und ANT 2 Unit Testing Unit Test: Automatischer Test welcher eine Einheit (z.b. Modul,
MehrHöhere Programmierkonzepte Testklausur
Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length
MehrTesten und Debugging
Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit
MehrDer EMF-generierte Code. 7. November 2012
Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen
MehrReflection. Arthur Zaczek. Nov 2014
Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken
4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung
MehrStructr: Neues CMS auf Basis der Graphdatenbank Neo4j 48. Deutschland 9,80. Java 8 Streams. Seiteneffekte: verboten oder erlaubt?
Structr: Neues CMS auf Basis der Graphdatenbank Neo4j 48 Java Mag Deutschland 9,80 Österreich 10,80 Schweiz sfr 19,50 Luxemburg 11,15 12.2014 magazin Java Architekturen Web Agile www.javamagazin.de Knorxx
MehrSoftwaretests 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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrFramework zur Unterstützung von Unit-Tests
JUnit Framework zur Unterstützung von Unit-Tests Automatisierte Ausführung von Tests Ideen dahinter Testgetriebene Entwicklung: Erst testen, dann programmieren Alle Testfälle häufig ausführen (nach jeder
MehrIT-Projekt-Management
IT-Projekt-Management email: vuongtheanh@netscape.net http: www.dr-vuong.de 2005 by, Bielefeld Seite 1 Vorgehensmodell 2005 by, Bielefeld Seite 2 Was ist ein Vorgehensmodell? Strukturbeschreibung über
Mehr1. 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:
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrJavaFX & Eclipse. e(fx)clipse: JavaFX-Tooling für Eclipse > 16 Ungeahnte Dimensionen für Entwickler : Interview mit Tom Schindl > 32
tion EXKLUSIV FÜR ABONNENTEN: JAHRESARCHIV UND BONUSVIDEOS AUF DVD! 2.13 Deutschland 9,80 Österreich 10,80, Schweiz sfr 19,20 JavaFX & Eclipse JavaFX: Was bisher geschah > 14 e(fx)clipse: JavaFX-Tooling
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrEJB3.0 Unit-Testing Reloaded
EJB3.0 Unit-Testing Reloaded Werner Eberling werner.eberling@mathema.de www.mathema.de Werner Eberling, MATHEMA Software GmbH - EJB3.0 - Unit-Testing Reloaded (G4 - Folie 1) Java Forum Stuttgart 2007 Automatisiertes
MehrKapitel 10b Test-Automatisierung
Vorlesung Softwaretechnologie Wintersemester 2010 R O O T S Kapitel 10b Test-Automatisierung Stand: 24.1.2011 Warum automatisierte Tests? Automatisierte Modultests mit JUnit Test First Development und
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Mehr2.2 Prozesse in Java
2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.
MehrDesign for Testability in der Praxis David Völkel, codecentric AG
Design for Testability in der Praxis David Völkel, codecentric AG http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg David Völkel *
MehrÜberblick. Einleitung. Unit-Tests. JUnit. HelloWorld Beispiel. Praktische Beispiele. Referenzen
Testen mit JUnit 1 Überblick Einleitung Unit-Tests JUnit HelloWorld Beispiel Praktische Beispiele Referenzen 2 Einleitung Irren ist menschlich Überprüfung auf Knopfdruck Entwicklung richtiger Tests ->
MehrSoftware-Qualität: Übung 1 Evolutionäres Entwickeln
Software-Qualität: Übung 1 Evolutionäres Entwickeln Versionskontrolle Automatisiertes Testen Bugtracking University of Zurich Department of Informatics 2007, University of Zurich, Department of Informatics,
Mehraformatik Training & Consulting GmbH & Co. KG Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss
aformatik Training & Consulting GmbH & Co. KG 1 Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss Fahrplan Agenda aformatik Training & Consulting GmbH & Co. KG 2 Vorstellung
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
MehrBeispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrCode und Qualität 2: Testing
Code und Qualität 2: Testing Proseminar Objektorientiertes Programmieren mit.net und C# Trung Hieu Dao Institut für Informatik Software & Systems Engineering Agenda Motivation Unit Tests in Visual Studio
Mehr