Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:J�rgen Nesser Geändert vor über 9 Jahren
1
Software Engineering 3 Testvorbereitungen und Unit-Test
2
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
3
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
4
1. Testvorbereitungen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
5
1. Testvorbereitungen Überblick [B1]
Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
6
1.1 Planungsphase [T2] Netzplan
Gehört in den Bereich des Projektmanagement [B2] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
7
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
8
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
9
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
10
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
11
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
12
2. Unit-Test Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
13
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
14
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
15
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
16
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
17
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
18
2.1 JUnit Beispiel zu JUnit
Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
19
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
20
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
21
2.2 Python Beispiele zu PyUnit und DocString
Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
22
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
23
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
24
2.3 CppUnit Beispiel zu CppUnit
Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
25
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
26
3. Quellen Textquellen: [T1]: [T2]: IT-Handbuch für Fachinformatiker, Sascha Kersken, 5. aktualisierte und erweiterte Auflage 2011, Kapitel 11 Software Engineering [T3]: [T4]: [T5]: [T6]: [T7]: [T8]: [T9]: [T10]: Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
27
3. Quellen Bildquellen: Audioquellen:
[B1]: Software Engineering III (SE), Kapitel 1 Einführung, WS 11/12 [B2]: Eigenerstellung [B3]: _no_Workshop_Mapping_XP.jpg/220px-Kent_Beck_no_Workshop_ Mapping_XP.jpg [B4]: 7d256d34d59c/photo [B5]: Audioquellen: [A1]: future-of-testing-with-kent-beck/ Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler
28
Vielen Dank für Ihre Aufmerksamkeit
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.