Neuerscheinungen 2018Stand: 2020-02-01 |
Schnellsuche
ISBN/Stichwort/Autor
|
Herderstraße 10 10625 Berlin Tel.: 030 315 714 16 Fax 030 315 714 14 info@buchspektrum.de |
Winfried Schwarzmann
Agile ABAP-Entwicklung
Bewährte Methoden und Werkzeuge in praktischen Beispielen. Testgetriebene Entwicklung und Wartung von Legacy Code mit ABAP Unit. Regeln und Tipps für effizientes objektorientiertes Design
2018. 575 S. 24 cm
Verlag/Jahr: RHEINWERK VERLAG 2018
ISBN: 3-8362-6186-3 (3836261863)
Neue ISBN: 978-3-8362-6186-9 (9783836261869)
Preis und Lieferzeit: Bitte klicken
Über dieses Buch
Let´s go agile! Geht das überhaupt mit ABAP? Dieses Buch führt Sie passgenau in die agile Entwicklung ein und setzt dabei genau da an, wo Sie sich auskennen: bei Ihrem Legacy Code. Sie lesen, wie Sie Ihre Programme Schritt für Schritt verbessern und erlernen dabei die wichtigsten Methoden der testgetriebenen Entwicklung. Anschließend erfahren Sie, wie Sie diese und viele weitere Techniken auch in neuen Entwicklungsprojekten einsetzen können. Clean Code, Walking Skeleton, Shared Code Ownership, Executable Documentation und Co. sind schon bald keine Fremdwörter mehr für Sie!
Aus dem Inhalt:
Testgetriebene Entwicklung
Objektorientiertes Design
Test-Doubles
ABAP Unit
Redesign und Neuentwicklung
Kontinuierliche Verbesserung
Der perfekte Sprint
ABAP Test Isolation Tools
ABAP Development Tools (ABAP in Eclipse)
Ausbildungsstrategie und Skalierbarkeit
Vorwort ... 21
Einleitung ... 23
1. Einführung ... 31
1.1 ... Nachhaltigkeit: Entwicklung und Wartung mit einer Testinfrastruktur ... 32
1.2 ... Agilität: Praktiken des Agile Software Engineerings ... 37
1.3 ... Effizienz: Einhaltung von Designprinzipien ... 38
1.4 ... Kommunikation: Diagramme als Gesprächsgrundlage ... 42
TEIL I Aufbau einer Testinfrastruktur ... 45
2. Beispielanwendung für diesen Buchteil ... 47
2.1 ... Stammdatenmanagement ... 48
2.2 ... Benutzeroberfläche ... 50
2.3 ... Backend ... 51
3. Codebasierte Verbesserung eines Tests ... 55
3.1 ... Einführung in den Testcode ... 55
3.2 ... Allgemeine Clean-Code-Prinzipien ... 67
3.3 ... Testorientierte Clean-Code-Prinzipien ... 76
4. Designbasierte Verbesserung des Tests ... 85
4.1 ... Basisklasse von Testklassen ... 85
4.2 ... Verwendung von Hilfsklassen durch Testklassen ... 91
5. Robuster Integrationstest ... 99
5.1 ... Verbesserungsprozess ... 99
5.2 ... Unabhängigkeit von Testmethoden ... 100
5.3 ... Wiederholbarkeit von Testmethoden ... 105
6. Minimierung von Abhängigkeiten ... 113
6.1 ... Vereinfachung einer Verwendung ... 114
6.2 ... Abgrenzung einer Verwendung ... 121
6.3 ... Unabhängigkeit von einer Erzeugung ... 125
6.4 ... Unabhängigkeit von einer Erweiterung ... 131
7. Isolierter Komponententest ... 137
7.1 ... Transformation des Integrationstests ... 138
7.2 ... Skalierung mit einer Testsprache ... 150
7.3 ... Testgetriebene Entwicklung ... 157
7.4 ... Liskov-Substitution-Prinzip ... 161
8. Redesign mit Unit-Tests ... 165
8.1 ... Objektorientierte API für Entitäten ... 167
8.2 ... Hervorheben von Änderungen als eigenständige Einheit ... 170
8.3 ... Tests für die Highlight-Changes-Klasse ... 177
8.4 ... Zusammenfassung des ersten Teils ... 182
TEIL II Testorientiertes ABAP-Design ... 185
9. Design von Methoden ... 187
9.1 ... Regeln zur Implementierung einer Methode ... 188
9.2 ... Regeln für die Signatur einer Methode ... 196
10. Design von Klassen ... 209
10.1 ... Erzeugung eines Objekts durch seine Klasse ... 210
10.2 ... Erzeugung eines Objekts durch eine Factory-Klasse ... 213
10.3 ... Abhängigkeitsarten zwischen Klassen ... 217
10.4 ... Interfaces einer Klasse ... 220
10.5 ... Abstraktionsebenen innerhalb einer Klasse ... 222
10.6 ... Katalog-Entwurfsmuster ... 229
10.7 ... Innerer Zusammenhalt ... 231
11. Design von Paketen ... 237
11.1 ... Paketkonzept ... 237
11.2 ... Produktpakete ... 244
11.3 ... Testpakete ... 246
12. Testfälle ... 249
12.1 ... Testdesign ... 250
12.2 ... Testpyramide ... 253
12.3 ... Testabdeckung ... 256
13. Testdoubles ... 259
13.1 ... Vorteile von Testdoubles ... 259
13.2 ... Spezifikation von Testdoubles ... 263
13.3 ... Design von Testdoubles ... 269
13.4 ... Injektion von Testdoubles ... 275
14. Globale Testdoubles ... 289
14.1 ... Testdouble für eine DOM-Methode ... 290
14.2 ... Testdouble für zwei DOM-Methoden ... 295
14.3 ... Kombination zweier Methodendoubles ... 301
14.4 ... Globalisierung von Testdoubles ... 307
14.5 ... Design globaler Testdoubles ... 310
14.6 ... Anpassung globaler Testdoubles ... 313
15. Testklassen ... 319
15.1 ... Lokale Testklassen ... 321
15.2 ... Entwurfsmuster ... 324
15.3 ... Testklassenhierarchien ... 327
15.4 ... Globale Testklassen ... 331
15.5 ... Namenskonventionen für Testcode ... 333
16. Testdaten ... 335
16.1 ... Testdatencontainer ... 335
16.2 ... Testdatenobjekte ... 343
17. Testinfrastruktur ... 355
17.1 ... Anwendungsszenarien für eine globale Testinfrastruktur ... 357
17.2 ... Entwicklungsprozesse mithilfe einer Testinfrastruktur ... 362
17.3 ... Zusammenfassung des zweiten Teils ... 365
TEIL III Agile Neuentwicklung ... 367
18. Planung und Vorarbeit ... 369
18.1 ... Spezifikation der Beispielanwen