2. Inhaltsverzeichnis
Agile Softwareentwicklung Seite 3
Test-getriebene Entwicklung Seite 4
> Grundlagen
> Tools im SAP-Umfeld
Test-getriebene Entwicklung in der Praxis Seite 6
Mock Objekte Seite 7
> Einführung
> Beispiel
> Lab-Preview Test-Seams
Referenzen / Links Seite 16
4. Test-getriebene Entwicklung – Grundlagen
Vorgehen
1. Test implementieren
2. Anwendungslogik implementieren
3. Refakturierung
Vorteile
> Bessere Softwarearchitektur
> Bessere Softwarequalität
> Bessere Wartbarkeit und Erweiterbarkeit
> Tests als Dokumentation
4
Rot
GrünRefactor
5. Test-getriebene Entwicklung – Tools im SAP-Umfeld
ABAP Unit
> xUnit-Implementierung in ABAP
test_method1( )
test_method2( )
> setup( ) test_method3( ) teardown( )
test_method4( )
test_methodN( )
Integration in SE80 und ABAP in Eclipse
> Ausführung von Tests auf Klassen oder Paketebene
> Abdeckungsanalyse
Integration in ABAP Test Cockpit
5
6. Test-getriebene Entwicklung in der Praxis
Eigenständige Entwicklungen vs. Erweiterungen des SAP Standards
> Sehr gut bei eigenständigen Entwicklungen umsetzbar
> Für Erweiterungen des SAP Standards über z.B. BAdIs ggf. schwierig
Existierenden Code vs. neue Entwicklungen
> Test-getriebene Entwicklung nur bei neuen Entwicklung umsetzbar
> Nachträgliche Entwicklung von Test für existierenden Code Problem: ggf. größer Änderungen der
Softwarearchitektur notwendig
Möglichkeit zur Test-getriebene Entwicklung ist abhängig von den verwendeten Frameworks /
Applikationen
> BOL-Layer im SAP CRM eignet sich z.B. sehr gut
> Test-getriebene Entwicklung z.B. im Umfeld der Geschäftspartner-BAPIs nahezu unmöglich
6
7. Der größte Feind des Unit Tests
7
Unit Test
Applikations
Code
Abhängige
Komponenten
Konfiguration
User Interface
Customizing
Datenbank
Remote Call
Unbekannte
Funktion
8. Der größte Feind des Unit Tests
8
Unit Test
Applikations
Code
Abhängige
Komponenten
Konfiguration
User Interface
Customizing
Datenbank
Remote Call
Unbekannte
Funktion
Mocking
10. Code Beispiel (Applikations Code)
10
„Dependency Injection“ wird
verwendet um Abhängigkeiten
zu kontrollieren
Abhängigkeiten sind mittels
Interfaces gekapselt
17. Referenzen
Getting Started with ABAP Testing and Troubleshooting - http://scn.sap.com/docs/DOC-24152
Einführung in den SAP TestDouble Framework - http://scn.sap.com/docs/DOC-61154
ABAP in Eclipse im SCN - http://scn.sap.com/community/abap/eclipse
17
Softwarearchitektur
Seperation of Concerns (One Responsibility Principle); z.B. Trennung von Datenzugriff und Verarbeitungslogik Datenzugriffsklasse
KISS-Prinzip