Agile ABAP-Entwicklung
Testgetriebene Entwicklung, Scrum, Lean Development, Walking Skeleton u. v. m.
Erschienen am
28.12.2018, Auflage: 1. Auflage
Beschreibung
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 EntwicklungObjektorientiertes DesignTest-DoublesABAP UnitRedesign und NeuentwicklungKontinuierliche VerbesserungDer perfekte SprintABAP Test Isolation ToolsABAP Development Tools (ABAP in Eclipse)Ausbildungsstrategie und Skalierbarkeit
Inhalt
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
2.1 ... Stammdatenmanagement ... 48
2.2 ... Benutzeroberfläche ... 50
2.3 ... Backend ... 51
3.1 ... Einführung in den Testcode ... 55
3.2 ... Allgemeine Clean-Code-Prinzipien ... 67
3.3 ... Testorientierte Clean-Code-Prinzipien ... 76
4.1 ... Basisklasse von Testklassen ... 85
4.2 ... Verwendung von Hilfsklassen durch Testklassen ... 91
5.1 ... Verbesserungsprozess ... 99
5.2 ... Unabhängigkeit von Testmethoden ... 100
5.3 ... Wiederholbarkeit von Testmethoden ... 105
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.1 ... Transformation des Integrationstests ... 138
7.2 ... Skalierung mit einer Testsprache ... 150
7.3 ... Testgetriebene Entwicklung ... 157
7.4 ... Liskov-Substitution-Prinzip ... 161
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
9.1 ... Regeln zur Implementierung einer Methode ... 188
9.2 ... Regeln für die Signatur einer Methode ... 196
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.1 ... Paketkonzept ... 237
11.2 ... Produktpakete ... 244
11.3 ... Testpakete ... 246
12.1 ... Testdesign ... 250
12.2 ... Testpyramide ... 253
12.3 ... Testabdeckung ... 256
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.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.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.1 ... Testdatencontainer ... 335
16.2 ... Testdatenobjekte ... 343
17.1 ... Anwendungsszenarien für eine globale Testinfrastruktur ... 357
17.2 ... Entwicklungsprozesse mithilfe einer Testinfrastruktur ... 362
17.3 ... Zusammenfassung des zweiten Teils ... 365
18.1 ... Spezifikation der Beispielanwendung ... 370
18.2 ... Architektur und Design der Beispielanwendung ... 372
18.3 ... Teststrategie für die Beispielanwendung ... 377
18.4 ... Vorbereitung der testgetriebenen Entwicklung ... 380
19.1 ... Akzeptanztestgetriebene Entwicklung ... 393
19.2 ... Komponententestgetriebene Entwicklung ... 396
19.3 ... Unit-Test-getriebene Entwicklung ... 401
19.4 ... Objektbasierte Überprüfung ... 403
19.5 ... Testen des Änderns und Sicherns eines Vertrags ... 407
19.6 ... Zusammenfassung des dritten Teils ... 413
20.1 ... Artefakte ... 417
20.2 ... Rollen ... 423
20.3 ... Meetings ... 424
20.4 ... Eigenschaften ... 429
21.1 ... Refactoring ... 434
21.2 ... Testgetriebene Entwicklung ... 437
21.3 ... Paarweise Programmierung ... 441
21.4 ... Walking Skeleton ... 447
21.5 ... Gemeinsame Codeverantwortung ... 453
21.6 ... Kontinuierliche Integration ... 459
22.1 ... Grundlagen ... 463
22.2 ... Umsetzung der Lean-Prinzipien mit Agile Software Engineering ... 465
22.3 ... Testinfrastruktur ... 467
22.4 ... Agile Coaching ... 468
23.1 ... Nachhaltige Ausbildung ... 469
23.2 ... Lücken in der Ausbildung ... 473
23.3 ... Agile Coaching ... 476
23.4 ... Netzwerk für Agile Coaching ... 483
24.1 ... Design Thinking ... 486
24.2 ... User Story Mapping ... 492
25.1 ... Nachhaltige Entwicklung ... 498
25.2 ... Entwicklungsstrategien für Legacy Code ... 501
25.3 ... Entwicklungsstrategien für neuen Code ... 502
25.4 ... Zusammenfassung des vierten Teils ... 504
26.1 ... Klasse CL_ABAP_UNIT_ASSERT ... 507
26.2 ... Ausführung von Tests ... 512
26.3 ... Entwicklungsobjekte ... 518
27.1 ... Einführung ... 521
27.2 ... Testgetriebene Entwicklung mit den ABAP Development Tools ... 525
28.1 ... Beispielklasse ... 545
28.2 ... Open SQL Test Double Framework ... 548
28.3 ... Test Seams ... 551
28.4 ... ABAP Test Double Framework ... 553
28.5 ... Zusammenfassung des fünften Teils und des gesamten Buches ... 557