Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Das Test-Framework JUnit ETIS SS05. ETIS SS05 - Nadine FröhlichJUnit 2 Gliederung Motivation Extreme Programming Test-First Das Framework –Grundlagen.

Ähnliche Präsentationen


Präsentation zum Thema: "Das Test-Framework JUnit ETIS SS05. ETIS SS05 - Nadine FröhlichJUnit 2 Gliederung Motivation Extreme Programming Test-First Das Framework –Grundlagen."—  Präsentation transkript:

1 Das Test-Framework JUnit ETIS SS05

2 ETIS SS05 - Nadine FröhlichJUnit 2 Gliederung Motivation Extreme Programming Test-First Das Framework –Grundlagen –Assert –TestCase –TestSuite Zusammenfassung

3 ETIS SS05 - Nadine FröhlichJUnit 3 Motivation(I) JUnit: Open source Test-Framework –Schreiben und Ausführen automatischer Unit Tests unter Java –Aktuell: Version (http://www.junit.org/)http://www.junit.org/ –In jeder gängigen Java-IDE verwendbar Autoren: –Kent Beck (Extreme Programming) –Erich Gamma (Mitglied Gang of Four - Design Pattern) Entsprechende Frameworks für gängige Programmier- sprachen erhältlich (PhpUnit, CppUnit,…)

4 ETIS SS05 - Nadine FröhlichJUnit 4 Extreme Programming (XP) Unit-Tests vor XP wenig in Praxis angewandt - in XP: zentrale Tätigkeit XP: agiler Softwareentwicklungsprozess –Schlüsselaktivität: Programmieren –für kleine bis mittelgroße Teams –außergewöhnlich stark durch den Kunden gesteuert –während Entwicklung Reaktion auf vage und rasch ändernde Anforderungen möglich –ermöglicht Erstellung langlebiger Software

5 ETIS SS05 - Nadine FröhlichJUnit 5 Extreme Programming (XP) - Prinzipen Pair Programming + Gemeinsame Verantwortlichkeit Programmierstandards festlegen und einhalten möglichst einfaches Design + häufiges Refactoring Ständige isolierte, automatisierte Unit-Tests –Unit-Test müssen zu 100% laufen –i.d.R. verbunden mit Test-First-Ansatz Kunde gehört zum Team Ständige Integrationstests Kurze Iterationszyklen

6 ETIS SS05 - Nadine FröhlichJUnit 6 TestFirst-Ansatz (I) Ziel: –Qualitätssicherung: Testbarkeit, Einfachheit Vorgehen: –Vor eigentlicher Codierung Test schreiben –Erst wenn Test fehlerfrei, dann ist Code fertig –Nur soviel Produktionscode wie Test verlangt –Kleine Schritte (abwechselnd Test- und Produktionscode) –Vor Integration in Gesamtsystem muss Unit Test erfolgreich sein

7 ETIS SS05 - Nadine FröhlichJUnit 7 TestFirst-Ansatz (II) Vorteile: –gesamter Code ist getestet (Zerstörung funktionierenden Codes sofort entdeckt) –Tests dokumentieren Code –Schnelles Feedback durch kurze Wechsel Erzeugung von Test- und Produktionscode –Einfaches Design, da durch Test bestimmtes Design Vorsicht: –Wenn nur triviale Testfälle betrachtet, nutzen Tests wenig...

8 ETIS SS05 - Nadine FröhlichJUnit 8 Screenshoot – JUnit in eclipse

9 ETIS SS05 - Nadine FröhlichJUnit 9 Grundlagen (I) Name der Testklasse: Zielklassenname + Endung Test, z.B. EuroTest Einbinden von Testklassen in JUnit durch Ableiten von Framework-Basisklasse junit.framework.TestCase JUnit erkennt Methode als Testfall, wenn sie Konvention public void test…() folgt assert-Methoden, z.B. assertTrue(...) zum Test von Bedingungen bei Fehlerfall bricht JUnit den laufenden Testfall mit AssertionFailedError ab

10 ETIS SS05 - Nadine FröhlichJUnit 10 Grundlagen (II) Assert assertTrue() assertEquals() assertNull()... TestCase setUp() tearDown() EigenerTest testMethode() JUnit-Framework

11 ETIS SS05 - Nadine FröhlichJUnit 11 Die Framework-Klasse Assert definiert Tests von Werten und Bedingungen, die erfüllt sein müssen Testklassen erben die Testmethoden über TestCase, Beispiele: Test, ob Bedingung wahr –assertTrue(boolean condition) –assertTrue(Fritz.isRadioStation()) Test, ob zwei Objekte gleich (über equals - Methode) –assertEquals(Object expected, Object actual) –assertEquals(JUnit, J + Unit)

12 ETIS SS05 - Nadine FröhlichJUnit 12 Test – Fixture Testbasis, für Testfälle Bestandteile: fester Satz zu testender Objekte alle Testfälle einer Testklasse sollen gemeinsame Fixture nutzen Test - Fixture vor jedem Testfall neu initialisieren, um Beeinflussungen der Testfälle untereinander zu vermeiden

13 ETIS SS05 - Nadine FröhlichJUnit 13 Die Framework-Klasse TestCase (I) TestCase vererbt setUp() und tearDown() an Testklassen setUp() –vor Ausführung eines Testfalls aufgerufen –zu überschreiben, um Instanzvariablen zu initialisieren, d.h., enthält Code für Aufbau der Test-Fixture tearDown() –nach Ausführung eines Testfalls aufgerufen –zu überschreiben, um Ressouren (DB-Verbindung u.ä.) freizugeben

14 ETIS SS05 - Nadine FröhlichJUnit 14 Die Framework-Klasse TestCase (II) public class EuroTest extends TestCase{ private Euro two; public EuroTest(String name){ super (name); } protected void setUp(){ two = new Euro(2.00); } protected void tearDown(){} }

15 ETIS SS05 - Nadine FröhlichJUnit 15 TestSuite (I) dient dem Zusammenfassen von Tests TestSuite: Objekt, dem beliebig viele Tests und Testsuiten hinzugefügt werden können statische suite - Methode definiert, welche Tests zusammen auszuführen sind public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(CustomerTest.class); suite.addTestSuite(MovieTest.class); return suite; }

16 ETIS SS05 - Nadine FröhlichJUnit 16 TestSuite(II) – Komposite Pattern > Test TestCaseTestSuite 1..n tests

17 ETIS SS05 - Nadine FröhlichJUnit 17 Lebenszyklus TestCase 1.Testframework sucht in Testklassen nach öffentlichen Methoden, ohne Parameter und Rückgabewert, die mit test beginnen (Reflection) 2.Sammeln der Methoden in Testsuite + unabhängige Ausführung 3.Für jeden Testfall neue Instanz der Testklasse und damit Test- Fixture erzeugen, um Seiteneffekte zu vermeiden 4.Vor Ausführung Testfall setUp() aufgerufen (falls neu definiert) 5.test-Methoden ausgeführt 6.Nach Test tearDown (falls neu definiert) 7.Schritte ab 3 wiederholen, bis alle Testfälle einmal ausgeführt

18 ETIS SS05 - Nadine FröhlichJUnit 18 Zusammenfassung JUnit: Framework für Test von Java - Programmen Komponententest erleichtert es, dem Testcode gleiche Aufmerksamkeit wie Programmcode widmen Investition in die Zukunft Entsprechende Frameworks für gängige Programmier- sprachen erhältlich (PhpUnit, CppUnit,…)

19 ETIS SS05 - Nadine FröhlichJUnit 19 Literatur Johannes Link, Unit Tests mit Java, dpunkt.Verlag, 2002 Johannes Link et al., Softwaretests mit JUnit, dpunkt.Verlag, 2005 Barbara Beenen, Einführung in JUnit - Rot - grünes Wechselspiel, javamagazin, 05/04 Martin Backschat, Stefan Edlich, J2EE - Entwicklung mit Open - Source - Tools, Spektrum Akademischer Verlag, München, 2004 Kent Beck, Extreme Programming. Das Manifest. Addison- Wesley, München, 2000


Herunterladen ppt "Das Test-Framework JUnit ETIS SS05. ETIS SS05 - Nadine FröhlichJUnit 2 Gliederung Motivation Extreme Programming Test-First Das Framework –Grundlagen."

Ähnliche Präsentationen


Google-Anzeigen