Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST.

Ähnliche Präsentationen


Präsentation zum Thema: "SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST."—  Präsentation transkript:

1 SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

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

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

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

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

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

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

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

9 1.3 Implementierungs-, Abnahme-und Einführungsphase [T2]  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. 9 Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler Unit-TestCode Review Allgemeines zum Testen

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

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

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

13 2. Unit-Test [T3] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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 CppUnit JUnit PyUnit, DocString

14 2.1 JUnit [T4, T5, A1] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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]

15 2.1 JUnit [T4, T5, A1] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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

16 2.1 JUnit [T4, T5, A1] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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

17 2.1 JUnit [T4, T5, A1] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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 Beispiel zu JUnit 2.1 JUnit 18 Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

19  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 2.2 Python [T6, T7]  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() 19 Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler Testfälle im DocStringUnit-Test PyUnit Zwei Modul-Tests, die bereits in die Standardbibliothek von Python integriert sind:

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

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

22 2.3 CppUnit [T8, T9, T10] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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]

23 2.3 CppUnit [T8, T9, T10] Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 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 Beispiel zu CppUnit 2.3 CppUnit 24 Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler

25 2.1 Fazit Unit-Tests [T4, T5, A1]  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 25 Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler Vorteile von Unit-TestNachteile von Unit-Test

26 3. Quellen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 26 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]:

27 3. Quellen Software Engineering 3 - Gruppe 1 - Weigl, Kaleja, Fuss, Adler 27 Bildquellen: [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/

28 VIELEN DANK FÜR IHRE AUFMERKSAMKEIT


Herunterladen ppt "SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST."

Ähnliche Präsentationen


Google-Anzeigen