Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Das Test-Framework JUnit

Ähnliche Präsentationen


Präsentation zum Thema: "Das Test-Framework JUnit"—  Präsentation transkript:

1 Das Test-Framework JUnit
ETIS SS05

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

3 Motivation(I) JUnit: Open source Test-Framework Autoren:
Schreiben und Ausführen automatischer Unit Tests unter Java Aktuell: Version (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,…) JUnit ETIS SS05 - Nadine Fröhlich

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 JUnit ETIS SS05 - Nadine Fröhlich

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 JUnit ETIS SS05 - Nadine Fröhlich

6 TestFirst-Ansatz (I) Ziel: Vorgehen:
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 JUnit ETIS SS05 - Nadine Fröhlich

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... JUnit ETIS SS05 - Nadine Fröhlich

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

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 JUnit ETIS SS05 - Nadine Fröhlich

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

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“) JUnit ETIS SS05 - Nadine Fröhlich

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 JUnit ETIS SS05 - Nadine Fröhlich

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 JUnit ETIS SS05 - Nadine Fröhlich

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(){} JUnit ETIS SS05 - Nadine Fröhlich

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; } JUnit ETIS SS05 - Nadine Fröhlich

16 TestSuite(II) – Komposite Pattern
<<interface>> Test 1..n tests TestCase TestSuite JUnit ETIS SS05 - Nadine Fröhlich

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

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,…) JUnit ETIS SS05 - Nadine Fröhlich

19 Literatur http://www.frankwestphal.de/UnitTestingmitJUnit.html
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 JUnit ETIS SS05 - Nadine Fröhlich


Herunterladen ppt "Das Test-Framework JUnit"

Ähnliche Präsentationen


Google-Anzeigen