Testgetriebene Entwicklung mit Oracle Werkzeugen Thomas Papendieck, Consultant OPITZ-CONSULTING Bad Homburg GmbH Vodafone D2 GmbH. Alfred-Herrhausen-Allee 1, 65760 Eschborn, 02.11.2010 OPITZ CONSULTING GmbH 2010 Seite 1
Agenda 1. Testgetriebe Entwicklung Warum? TGE-Kreislauf Werkzeuge 2. SQLDeveloper UnitTester einsetzen OPITZ CONSULTING GmbH 2010 Seite 2
Fakten über das Testen Tests finden Fehler in der Implementierung Tests sind Nachweis der implementierten Funktionalität Tests erfordern fachspezifisches und implementierungsspezifisches Wissen Tests müssen wiederholt werden frühes Testen senkt Kosten OPITZ CONSULTING GmbH 2010 Seite 3
Was ist Testgetriebene Entwicklung? automatisierte Tests mit Ja/Nein-Ergebnis Implementierung des Tests vor der Implementierung der getesteten Eigenschaft funktionale Erweiterung nur wenn fehlschlagender Test existiert wiederholte Ausführung aller existierenden Test. OPITZ CONSULTING GmbH 2010 Seite 4
Der Kreislauf der Testgetriebenen Entwicklung Definition der Tests Spezifikation Iterative Implementierung: Test implementieren Prüfen, ob der Test fehl schlägt produktiven Code implementieren Prüfen, ob alle Tests bestehen produktiven Code und Testcode refaktorisieren Prüfen, ob alle Tests bestehen Refactoring Test Code OPITZ CONSULTING GmbH 2010 Seite 5
Warum Testgetriebene Entwicklung (TGE/TDD)? reflektiert den Wert von Tests erhöht die Testabdeckung erkennt Fehler schon bei der Implementierung fördert zielgerichtete Programmierung fördert guten Programmierstil OPITZ CONSULTING GmbH 2010 Seite 6
Was spricht gegen Testgetriebene Entwicklung? erfordert Disziplin verändert gewohnte Abläufe Ablehnung durch Kollegen / Vorgesetzte OPITZ CONSULTING GmbH 2010 Seite 7
Werkzeuge allgemenin: selbst programmierte Umgebung xunit Oracle Integration von JUnit im JDeveloper UnitTester in SQLDeveloper OPITZ CONSULTING GmbH 2010 Seite 8
SQLDeveloper UnitTester - Weiterentwicklung des UTPLSQL-Frameworks - seit Version 2.1 - eigenständige Ansicht - Test-Repository in einem DB-Schema OPITZ CONSULTING GmbH 2010 Seite 9
Repository einrichten OPITZ CONSULTING GmbH 2010 Seite 10
UnitTester Ansicht OPITZ CONSULTING GmbH 2010 Seite 11
UnitTest erstellen OPITZ CONSULTING GmbH 2010 Seite 12
Weitere Implementierung (Testfall) erstellen OPITZ CONSULTING GmbH 2010 Seite 13
UnitTest ausführen OPITZ CONSULTING GmbH 2010 Seite 14
UnitTester Katalog OPITZ CONSULTING GmbH 2010 Seite 15
Benutzer-PL/SQL-Code OPITZ CONSULTING GmbH 2010 Seite 16
Tabellen- oder Zeilenkopie OPITZ CONSULTING GmbH 2010 Seite 17
Tabelle löschen OPITZ CONSULTING GmbH 2010 Seite 18
Validierungen OPITZ CONSULTING GmbH 2010 Seite 19
Lookups OPITZ CONSULTING GmbH 2010 Seite 20
Test Suites OPITZ CONSULTING GmbH 2010 Seite 21
Fazit negativ Testfälle nur für bestehende Programmteile gemeinsame Ausführung aller Tests nur als Suite, nicht alle Suites gemeinsam. positiv zentrale Speicherung der Testfälle und der Ergebnisse Wizard-gesteuerte Testfallgenerierung Pool für Validierungen, Setup- und Teardown-Vorgänge Übersichtliche Ergebnispräsentation OPITZ CONSULTING GmbH 2010 Seite 22
Fragen und Antworten OPITZ CONSULTING GmbH 2010 Seite 23