Software Engineering 3 Testvorbereitungen und Unit-Test

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Software Engeniering II
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Referat von Frederik Barth
Die Softwarelebenszyklen
Das „Vorgehensmodell“
B-Bäume.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Standortfaktoren INTERN - Ausdrucksstark präsentieren.
Projektplanung Tanja Blascheck cims. Projektplanung cims Agenda Implementierung Modul Test Integration System Test Handbuch Abnahme.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Testgetriebene Entwicklung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Java: Objektorientierte Programmierung
Agenda Einführung Haskell QuickCheck Zusammenfassung
Das Test-Framework JUnit
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Das Test-Framework JUnit
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Introducing the .NET Framework
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Windows Vista Felix Lutz 14. August 2007.
Software Design Patterns Extreme Programming (XP).
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Vorgehensmodelle: Schwergewichtige Modelle
Whitebox Testen mit JUnit
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache Java
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Design and analysis of GUI test-case prioritization using weight-based methods Samra Khan.
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Vorgehensmodell mit Scrum-Elementen
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Auslegung eines Vorschubantriebes
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Java Server Pages Sergej Keterling
Marktübersicht für Content Management Systeme
Enterprise Achitect (Sparx Systems) Marius Rudolf
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Testtechniken-Praktikum WS 2005/06 1 Testgetriebene Entwicklung Andreas Höfer Dr. Matthias Müller mit Beiträgen von Johannes Link.
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Sandro Mülhauser, Patrick Beyeler
Testtechniken-Praktikum WS 2005/06 1 Arbeiten mit JUnit Andreas Höfer Dr. Matthias Müller Mit Beiträgen von Johannes Link.
Vorstellung des Ablaufs des Semesterprojekts Software Engineering 2009.
Testvorbereitungen, Unit Test
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
VirtualPatt 2000 Interaktives 3D-Schachspiel
Unit Testing Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Planung von Softwareprojekten WS 2014/15 Christoph Stollwerk.
Test-Driven Development
Software - Testung ETIS SS05.
Softwareentwicklung & Testprozess
 Präsentation transkript:

Software Engineering 3 Testvorbereitungen und Unit-Test

Gliederung 0. Vorstellung 1. Testvorbereitungen Planungsphase 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen nach Pol, Koomen und Spillner Unit-Test JUnit Python CppUnit Quellen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

Referenten: Simone Weigl Michael Kaleja Daniel Fuss Christian Adler 0. Vorstellung Referenten: Simone Weigl Michael Kaleja Daniel Fuss Christian Adler Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1. Testvorbereitungen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1. Testvorbereitungen Überblick [B1] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.1 Planungsphase [T2] Netzplan Gehört in den Bereich des Projektmanagement [B2] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.2 Definitionsphase [T2] Lastenheft Pflichtenheft Lasten- und Pflichtenheft Lastenheft Pflichtenheft Wird vom Auftraggeber erstellt Wird vom Auftragnehmer erstellt Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.3 Implementierungs-, Abnahme-und Einführungsphase [T2] Allgemeines zur Implementierung Folgende Punkte sollten beachtet werden: Konsistenz Modularisierung Versionsverwaltung Kommentare Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.3 Implementierungs-, Abnahme-und Einführungsphase [T2] Allgemeines zum Testen Unit-Test Code Review Automatisierter Test Verfahren: Test-first Test-driven-Development (= zuerst werden die Testfälle geschrie- ben und dann der Programmcode.) Zuerst wird der Programm-code geschrieben und danach wird er erst getestet. Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.4 Testphasen nach Pol, Koomen und Spillner [T1] Testplanung: Allgemeine Abwicklung Strategien Ziele und Kriterien Testverfahren Programmiersprache Beendigung Dokumentation Testdaten Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

1.4 Testphasen nach Pol, Koomen und Spillner [T1] Weitere Testphasen Testvorbereitung Umsetzung der Testplanung Testspezifikation Testdurchführung Dynamisch Statisch Testauswertung Fehler Alles in Ordnung Testabschluss Komplett durchlaufen Abbruch Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2. Unit-Test Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2. Unit-Test [T3] Ausschnitt aus einer Liste von Unit-Test-Abwandlungen: ABAP: ABAP Unit C: CUnit, cfix, Embedded Unit, uCUnit C++: CppUnit, Boost Java: JUnit JavaScript: JSUnit .NET: NUnit PHP: PHPUnit PL/SQL: utPLSQL Python: PyUnit, DocString MATLAB/Simulink: Simulink Design Verifier Smalltalk: SUnit CppUnit JUnit PyUnit, DocString Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 JUnit [T4, T5, A1] Was ist JUnit? (1/2) JUnit ist ein Framework zum Testen von Java-Programmen entwickelt von Kent Beck & Erich Gamma Kent Beck [B3] Erich Gamma [B4] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 JUnit [T4, T5, A1] Was ist JUnit? (2/2) JUnit basiert auf der Struktur von Smalltalks SUnit, der Mutter aller Unit Tests. Kent Beck übernahm die Struktur von SUnit und benutzte sie für das objektorientiere Modell von Java. Der Arbeitsraum wurde die Klasse, aus Variablen wurden Instanzvariablen und das zu Testende wurde zu Methoden Besonderheit: Automatisierte Tests, die es damals unter SUnit noch nicht gab Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 JUnit [T4, T5, A1] Funktionsweise von JUnit Kennt nur zwei Ergebnisse: grün für „Test gelingt“ rot für „Test gescheitert“ Mögliche Ursachen für das Scheitern sind ein Fehler (Error) oder ein falsches Ergebnis (Failure) Failures werfen eine sogenannte „AssertionFailedError“-Exception alle anderen Exceptions werden von JUnit als Error interpretiert Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 JUnit [T4, T5, A1] Vorgehensweise bei JUnit Idee : möglichst fehlerarmen Code Ein Programmierer liefert zu seinen Code immer die passenden JUnit Tests. Bei Änderung des Codes durch andere Programmierer können sich diese über die mitgelieferten Unit Tests vergewissern, dass das Programm läuft. Treten nach der Änderung Fehler im Unit Test auf, ist klar, dass der Dritte dafür verantwortlich ist. => Korrektur bis Unit Tests wieder „grün“ zeigen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 JUnit Beispiel zu JUnit Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.2 Python [T6, T7] Testfälle im DocString Unit-Test PyUnit Zwei Modul-Tests, die bereits in die Standardbibliothek von Python integriert sind: Testfälle im DocString Unit-Test PyUnit Im Paket doctest Seit Python 2.1 Testfälle werden in Docstrings geschrieben Testfälle können aus dem Interaktivmodus kopiert werden Ausführbar mit doctest.testmod() Im Paket unittest Aus der Idee von JUnit entstanden und für Python umgesetzt Autor: Steve Purcell Seit Python 2.1 Eigenständige Python-module für die Testfälle Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.2 Python [T6, T7] Vorteile Nachteile Vergleich von PyUnit zu doctest Test getrennt von Quellcode in eigenen Testklassen Vollständig in Python-Code geschrieben Einfacher ausführbar Höherer Arbeitsaufwand Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.2 Python Beispiele zu PyUnit und DocString Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.3 CppUnit [T8, T9, T10] Was ist CppUnit? (1/2) CppUnit ist eine Portierung von JUnit zu C++. Das CppUnit-Projekt basiert auf den ersten Portierungen von Michael Feathers und Jerome Lacoste Michael Feathers [B5] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.3 CppUnit [T8, T9, T10] Was ist CppUnit? (2/2) Die Community um CppUnit setzt auf beiden Arbeiten auf und kombinierte sie zu einem Framework, welches auf Solaris/Unix- und Windows-Rechnern läuft. CppUnit unterstützt Unix Compiler (z.B. GNU C++ Compiler), Microsoft Visual C++ und Borland C++ Besitz u.a. folgende Eigenschaften: XML-Ausgabe mit Elementen für zusätzliche Angaben Compiler-ähnliche Ausgabe für Integration in IDE Makros zur Realisierung von Test-Suiten Unterstützung von GUI-basierten Test-Runnern Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.3 CppUnit Beispiel zu CppUnit Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

2.1 Fazit Unit-Tests [T4, T5, A1] Vorteile von Unit-Test Nachteile von Unit-Test Schnelle Überprüfung des Codes Wiederverwendbarkeit der Tests Trennung von Code und Tests Übersichtlichkeit beim Testen Zusätzliche Methoden und Klassen für das Testen Unterbricht den Programmier-fluss Gefahr, zu wenig zu testen, da man davon ausgeht, dass bei grünem Balken der Code fehlerfrei ist Es können nur solche Fehler entdeckt werden, auf die die Tests ausgelegt sind. => grüner Balken ungleich fehlerfreier Code Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

3. Quellen Textquellen: [T1]: http://de.wikipedia.org/wiki/Softwaretest [T2]: IT-Handbuch für Fachinformatiker, Sascha Kersken, 5. aktualisierte und erweiterte Auflage 2011, Kapitel 11 Software Engineering [T3]: http://de.wikipedia.org/wiki/Liste_von_Modultest-Software [T4]: http://de.wikipedia.org/wiki/JUnit [T5]: http://www.junit.org/ [T6]: http://docs.python.org/library/ [T7]: http://openbook.galileocomputing.de/python/ [T8]: http://cppunit.sourceforge.net/doc/1.11.6/ [T9]: http://de.inforapid.org/ [T10]: http://de.wikipedia.org/wiki/CppUnit Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

3. Quellen Bildquellen: Audioquellen: [B1]: Software Engineering III (SE), Kapitel 1 Einführung, WS 11/12 [B2]: Eigenerstellung [B3]: http://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Kent_Beck _no_Workshop_Mapping_XP.jpg/220px-Kent_Beck_no_Workshop_ Mapping_XP.jpg [B4]: http://javazone.no/incogito/speaker/d5503464-a8c7-41c1-aade- 7d256d34d59c/photo [B5]: http://www.chicagotribune.com/media/photo/2011-03/60045270.jpg Audioquellen: [A1]: http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the- future-of-testing-with-kent-beck/ Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

Vielen Dank für Ihre Aufmerksamkeit