SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST



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

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

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

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

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

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Testen mit JUnit. Motivation

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Unit Testing, SUnit & You

Einführung in PHP. (mit Aufgaben)

Präsentation Von Laura Baake und Janina Schwemer

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Projektmanagement in der Spieleentwicklung

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

Praktikum Grundlagen der Programmierung. Dokumentation. Dr. Karsten Tolle

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Einführung in die Informatik Tools

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

WARENWIRT- SCHAFT UND ERP BERATUNG Mehr Sicherheit für Ihre Entscheidung

How to do? Projekte - Zeiterfassung

2. Psychologische Fragen. Nicht genannt.

SDD System Design Document

Herzlich willkommen! SIEVERS-SNC - IT mit Zukunft.

Bedienungsanleitung für den Online-Shop

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Powermanager Server- Client- Installation

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Fortgeschrittenes Programmieren mit Java. Test Driven Development

DATENSICHERUNG / BACKUP. Backupstrategien

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Whitebox-Tests: Allgemeines

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Qt-Projekte mit Visual Studio 2005

Software - Testung ETIS SS05

Lizenzierung von StarMoney 8.0 bzw. StarMoney Business 5.0 durchführen

FUTURE NETWORK REQUIREMENTS ENGINEERING

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

Anleitung für die Umstellung auf das plus Verfahren mit manueller und optischer Übertragung

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Lexware eservice personal - Nutzung ab Januar 2014

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

Java Entwicklung für Embedded Devices Best & Worst Practices!

Test-Driven Developement Eine Einführung

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Hochschule Darmstadt Fachbereich Informatik

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Informationsmappe. deltatron GmbH. zum Thema VIRTUAL OFFICE

Avira SPACE Kurzanleitung

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Version 0.3. Installation von MinGW und Eclipse CDT

Dokumentation zur Browsereinrichtung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Ausgangslage, Rolle und Auftrag

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Abschlussbericht. Einführung in Python. Gruppe: 1 Autoren: Thomas Merkel (19868) David Höss (19182) Stefan Bisinger (19227)

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Professionelle Seminare im Bereich MS-Office

Projektmanagement. Einleitung. Beginn. Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes:

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

ecambria experts IT-Projekte in der Krise Ursachen und Vermeidungsstrategien aus Sicht eines Gerichtssachverständigen

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Internet Explorer Version 6

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Zimmertypen. Zimmertypen anlegen

ÖKB Steiermark Schulungsunterlagen

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Test-Driven Design: Ein einfaches Beispiel

Klausur Software Engineering für WI (EuI)

Was versteht man unter Softwaredokumentation?

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Konfiguration einer Sparkassen-Chipkarte in StarMoney

Step by Step Webserver unter Windows Server von Christian Bartl

Entwicklungswerkzeuge

Konventionen. Danksagung

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Erstellen eines Formulars

SEP 114. Design by Contract

! " # $ " % & Nicki Wruck worldwidewruck

Grundlagen der Theoretischen Informatik, SoSe 2008


Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Leichte-Sprache-Bilder

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Testmanagement in IT-Projekten

Testen Prinzipien und Methoden

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

3. Stored Procedures und PL/SQL

Transkript:

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

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

0. Vorstellung 3 Referenten: Simone Weigl Michael Kaleja Daniel Fuss Christian Adler

4 1. Testvorbereitungen

1. Testvorbereitungen 5 Überblick [B1]

1.1 Planungsphase [T2] 6 Netzplan Gehört in den Bereich des Projektmanagement [B2]

1.2 Definitionsphase [T2] 7 Lasten- und Pflichtenheft Lastenheft Pflichtenheft Wird vom Auftraggeber erstellt Wird vom Auftragnehmer erstellt

8 1.3 Implementierungs-, Abnahmeund Einführungsphase [T2] Allgemeines zur Implementierung Folgende Punkte sollten beachtet werden: Konsistenz Modularisierung Versionsverwaltung Kommentare

9 1.3 Implementierungs-, Abnahmeund Einführungsphase [T2] Allgemeines zum Testen Unit-Test Code Review Automatisierter Test Verfahren: Test-first Test-driven- Development (= zuerst werden die Testfälle geschrieben und dann der Programmcode.) Zuerst wird der Programmcode geschrieben und danach wird er erst getestet.

1.4 Testphasen nach Pol, Koomen 10 und Spillner [T1] Testplanung: Allgemeine Abwicklung Strategien Ziele und Kriterien Testverfahren Programmiersprache Beendigung Dokumentation Testdaten

1.4 Testphasen nach Pol, Koomen 11 und Spillner [T1] Weitere Testphasen Testvorbereitung Umsetzung der Testplanung Testspezifikation Testdurchführung Dynamisch Statisch Testauswertung Fehler Alles in Ordnung Testabschluss Komplett durchlaufen Abbruch

12 2. Unit-Test

2. Unit-Test [T3] 13 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

2.1 JUnit [T4, T5, A1] 14 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]

2.1 JUnit [T4, T5, A1] 15 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

2.1 JUnit [T4, T5, A1] 16 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

2.1 JUnit [T4, T5, A1] 17 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

18 2.1 JUnit Beispiel zu JUnit

2.2 Python [T6, T7] 19 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 Pythonmodule für die Testfälle

2.2 Python [T6, T7] 20 Vergleich von PyUnit zu doctest Vorteile Nachteile Test getrennt von Quellcode in eigenen Testklassen Vollständig in Python-Code geschrieben Einfacher ausführbar Höherer Arbeitsaufwand

21 2.2 Python Beispiele zu PyUnit und DocString

2.3 CppUnit [T8, T9, T10] 22 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]

2.3 CppUnit [T8, T9, T10] 23 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

24 2.3 CppUnit Beispiel zu CppUnit

2.1 Fazit Unit-Tests [T4, T5, A1] 25 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 Programmierfluss 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

3. Quellen 26 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

3. Quellen 27 Bildquellen: [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-thefuture-of-testing-with-kent-beck/

VIELEN DANK FÜR IHRE AUFMERKSAMKEIT