Test-driven development with ABAP Objects:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston
Rheinwerk Publishing
[2019]
|
Ausgabe: | 1st edition |
Schriftenreihe: | SAP Press
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | Auf dem Cover: "Use test-driven and agile development to write more robust ABAP programs, clean up new and legacy code, minimize dependencies, and improve development efficiency, create integration tests, components tests, and more" |
Beschreibung: | 594 Seiten Illustrationen, Diagramme 22.9 cm x 17.5 cm |
ISBN: | 9781493218325 1493218328 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV047061395 | ||
003 | DE-604 | ||
005 | 20210422 | ||
007 | t | ||
008 | 201214s2019 gw a||| |||| 00||| eng d | ||
015 | |a 19,N18 |2 dnb | ||
016 | 7 | |a 1184686033 |2 DE-101 | |
020 | |a 9781493218325 |c : EUR 89.95 (DE) (freier Preis), EUR 92.50 (AT) (freier Preis), CHF 115.95 (freier Preis) |9 978-1-4932-1832-5 | ||
020 | |a 1493218328 |9 1-4932-1832-8 | ||
024 | 3 | |a 9781493218325 | |
028 | 5 | 2 | |a Bestellnummer: 459/21832 |
035 | |a (OCoLC)1159213083 | ||
035 | |a (DE-599)DNB1184686033 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a gw |c XA-DE | ||
049 | |a DE-11 | ||
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Schwarzmann, Winfried |e Verfasser |0 (DE-588)1174769165 |4 aut | |
245 | 1 | 0 | |a Test-driven development with ABAP Objects |c Winfried Schwarzmann |
250 | |a 1st edition | ||
264 | 1 | |a Boston |b Rheinwerk Publishing |c [2019] | |
264 | 4 | |c © 2019 | |
300 | |a 594 Seiten |b Illustrationen, Diagramme |c 22.9 cm x 17.5 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a SAP Press | |
500 | |a Auf dem Cover: "Use test-driven and agile development to write more robust ABAP programs, clean up new and legacy code, minimize dependencies, and improve development efficiency, create integration tests, components tests, and more" | ||
653 | |a Hardback | ||
653 | |a COM000000 | ||
653 | |a U | ||
653 | |a TDD | ||
653 | |a 21111 | ||
653 | |a COM000000 | ||
653 | |a U | ||
653 | |a 1633: Hardcover, Softcover / Informatik, EDV/Programmiersprachen | ||
710 | 2 | |a Galileo Press Inc. |0 (DE-588)106510992X |4 pbl | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-1-4932-1833-2 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=45c6fe58883c4259aaff7ce51cf39151&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032468545&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-032468545 |
Datensatz im Suchindex
_version_ | 1804182056759984128 |
---|---|
adam_text | CONTENTS
AT
A
GLANCE
1
INTRODUCTION
............................................................................................
33
PART
I
BUILDING
A
TEST
INFRASTRUCTURE
2
THE
SAMPLE
APPLICATION
..........................................................................
49
3
CODE-BASED
TEST
IMPROVEMENT
..............................................................
57
4
DESIGN-BASED
TEST
IMPROVEMENT
..........................................................
87
5
ROBUST
INTEGRATION
TEST
.........................................................................
103
6
MINIMIZING
DEPENDENCIES
.....................................................................
117
7
ISOLATED
COMPONENT
TEST
.......................................................................
141
8
REDESIGN
WITH
UNIT
TESTS
.......................................................................
169
PART
II
TEST-ORIENTED
ABAP
DESIGN
9
DESIGNING
METHODS
................................................................................
191
10
DESIGNING
CLASSES
...................................................................................
215
11
DESIGNING
PACKAGES
................................................................................
245
12
TEST
CASES
................................................................................................
257
13
TEST
DOUBLES
............................................................................................
267
14
GLOBAL
TEST
DOUBLES
................................................................................
297
15
TEST
CLASSES
.............................................................................................
327
16
TEST
DATA
.................................................................................................
343
17
TEST
INFRASTRUCTURES
................................................................................
363
PART
III
AGILE
DEVELOPMENT
OF
A
NEW
APPLICATION
18
PREPARATION
FOR
TEST-DRIVEN
DEVELOPMENT
...........................................
377
19
TEST-DRIVEN
DEVELOPMENT
......................................................................
403
PART
IV
AGILE
METHODOLOGY
20
SCRUM
.......................................................................................................
429
21
AGILE
SOFTWARE
ENGINEERING
....................................................................
445
22
LEAN
DEVELOPMENT
MODEL
......................................................................
475
23
TEAM
DEVELOPMENT
................................................................................
481
24
BACKLOG
DEVELOPMENT
............................................................................
497
25
PRODUCT
DEVELOPMENT
............................................................................
509
PART
V
TEST-ORIENTED
ABAP
TOOLS
26
ABAP
UNIT
.................................................................................................
519
27
ABAP
DEVELOPMENT
TOOLS
.......................................................................
535
28
ABAP
TOOLS
FOR
TEST
ISOLATION
.................................................................
559
CONTENTS
FOREWORD
........................................................................................................................
23
PREFACE
............................................................................................................................
25
1
INTRODUCTION
33
1.1
SUSTAINABILITY:
DEVELOPMENT
AND
MAINTENANCE
WITH
A
TEST
INFRASTRUCTURE
......................................................................................
34
1.2
AGILITY:
PRACTICES
OF
AGILE
SOFTWARE
ENGINEERING
.......................................
39
1.3
EFFICIENCY:
COMPLIANCE
WITH
DESIGN
PRINCIPLES
...........................................
40
1.3.1
SOLID
PRINCIPLES
...................................................................................
40
1.3.2
FIRST
PRINCIPLES
.....................................................................................
42
1.4
EFFECTIVITY:
COMMUNICATION
WITH
DIAGRAMS
..............................................
44
1.5
SUMMARY
.....................................................................................................
46
PART
I
BUILDING
A
TEST
INFRASTRUCTURE
2
THE
SAMPLE
APPLICATION
49
2.1
MASTER
DATA
MANAGEMENT
.........................................................................
50
2.1.1
CHANGE
REQUEST
...................................................................................
50
2.1.2
DEFINITION
OF
A
MASTER
DATA
MODEL
.....................................................
51
2.2
USER
INTERFACE
..............................................................................................
52
2.3
BACKEND.......................................................................................................
54
2.4
SUMMARY
.....................................................................................................
56
3
CODE-BASED
TEST
IMPROVEMENT
57
3.1
INTRODUCTION
TO
THE
TEST
CODE
....................................................................
57
3.1.1
DEFINING
A
TEST
CLASS
............................................................................
58
3.1.2
IMPLEMENTING
A
TEST
CLASS
..................................................................
59
3.1.3
ABAP
UNIT
LOG
.......................................................................................
66
3.1.4
DIAGRAMS
..............................................................................................
67
3.2
GENERAL
CLEAN
CODE
PRINCIPLES....................................................................
70
3.2.1
IMPROVEMENT
PROCESS
..........................................................................
70
3.2.2
IMPROVING
THE
DEFINITION
OF
THE
TEST
CLASS
........................................
72
3.2.3
IMPROVING
THE
IMPLEMENTATION
OFTHE
TEST
CLASS
..............................
73
3.2.4
DIAGRAMS
..............................................................................................
77
3.3
TEST-ORIENTED
CLEAN
CODE
PRINCIPLES
..........................................................
79
3.3.1
IMPROVEMENT
PROCESS
..........................................................................
79
3.3.2
IMPROVING
THE
IMPLEMENTATION
OFTHE
TEST
CLASS
..............................
80
3.3.3
DIAGRAMS
..............................................................................................
83
3.4
SUMMARY
.....................................................................................................
86
4
DESIGN-BASED
TEST
IMPROVEMENT
87
4.1
BASE
CLASSES
OF
TEST
CLASSES
.......................................................................
87
4.1.1
IMPROVEMENT
PROCESS
..........................................................................
88
4.1.2
EXTRACTING
A
BASE
CLASS
FROM
A
TEST
CLASS
............................................
88
4.1.3
DIAGRAMS
..............................................................................................
90
4.2
USAGEOF
HELP
CLASSES
BY
TEST
CLASSES.......................................................
93
4.2.1
IMPROVEMENT
PROCESS
..........................................................................
93
4.2.2 DESIGN
PATTERNS
FOR
CLASSES
.................................................................
93
4.2.3
DEFINING
AND
USING
THE
TEST
DATA
CLASS
..............................................
94
4.2.4
DIAGRAMS
..............................................................................................
97
4.3
SUMMARY
.....................................................................................................
100
5
ROBUST
INTEGRATION
TEST
103
5.1
IMPROVEMENT
PROCESS
.................................................................................
103
5.2
INDEPENDENCE
OF
TEST
METHODS
..................................................................
104
5.2.1
TEST
DATA
CONTAINER
.............................................................................
104
5.2.2
SINGLETON
DESIGN
PATTERN
.....................................................................
106
5.3
REPEATABILITY
OF
TEST
METHODS
...................................................................
108
5.3.1
AUTOMATED
TEST
SETUP
.........................................................................
109
5.3.2
HELP
METHODS
FOR
TEST
CLASS
................................................................
110
5.3.3
DIAGRAMS
..............................................................................................
113
5.4
SUMMARY
.....................................................................................................
116
6
MINIMIZING
DEPENDENCIES
117
6.1
SIMPLIFICATION
OF
USE
...................................................................................
118
6.1.1
IMPROVEMENT
PROCESS
..........................................................................
119
6.1.2
SIMPLIFYING
THE
PRODUCTIVE
API
............................................................
119
6.1.3
ACCESS
TO
THE
TEST
DATA
CONTAINER
......................................................
120
6.1.4
DELEGATING
TEST
CLASSES
.......................................................................
121
6.1.5
DIAGRAMS
..............................................................................................
122
6.2
SEGREGATION
OF
USE
......................................................................................
125
6.2.1
IMPROVEMENT
PROCESS
..........................................................................
126
6.2.2
NESTED
INTERFACES
................................................................................
126
6.2.3
DIAGRAMS
..............................................................................................
127
6.3
INDEPENDENCE
OF
CREATIONS
........................................................................
129
6.3.1
IMPROVEMENT
PROCESS
..........................................................................
129
6.3.2
DEFINING
A
FACTORY
................................................................................
129
6.3.3
IMPLEMENTING
A
FACTORY
......................................................................
130
6.3.4
DIAGRAMS
..............................................................................................
132
6.4
INDEPENDENCE
OF
EXTENSIONS
.......................................................................
135
6.4.1
IMPROVEMENT
PROCESS
...........................................................................
135
6.4.2
ABSTRACT
SUPERCLASS
FOR
ALL
ENTITIES
.....................................................
135
6.4.3
CONCRETE
SUBCLASS
FOR
FLIGHT
CONNECTIONS
..........................................
137
6.5
SUMMARY
.......................................................................................................
139
7
ISOLATED
COMPONENT
TEST
141
7.1
TRANSFORMING
THE
INTEGRATION
TEST
.............................................................
142
7.1.1
IMPROVEMENT
PROCESS
..........................................................................
143
7.1.2
ISOLATION
WITH
A
GOVERNANCE
API
TEST
DOUBLE
.....................................
143
7.1.3
CONFIGURING
THE
GOVERNANCE
API
TEST
DOUBLE
.....................................
148
7.1.4
DIAGRAMS
..............................................................................................
151
7.2
SCALING
WITH
A
TEST
LANGUAGE
.....................................................................
154
7.2.1
IMPROVEMENT
PROCESS
..........................................................................
154
7.2.2
STATE
OF
AN
ENTITY
..................................................................................
155
7.2.3
TEST
METHOD:
UNSAVED
CHANGES
.........................................................
157
7.2.4
TEST
METHOD:
CHANGES
TO
A
NEW
ENTITY
TYPE
.....................................
159
7.2.5
TEST
METHOD:
CONTAINED
CHANGES
.......................................................
160
7.3
TEST-DRIVEN
DEVELOPMENT
..........................................................................
161
7.3.1
TEST
CLASS
FOR
HIGHLIGHTING
DELETIONS
..................................................
162
7.3.2
DIAGRAMS
..............................................................................................
163
7.4
LISKOV
SUBSTITUTION
PRINCIPLE
......................................................................
165
7.4.1
VIOLATION
...............................................................................................
165
7.4.2
COMPLIANCE
..........................................................................................
167
7.5
SUMMARY
.....................................................................................................
167
8
REDESIGN
WITH
UNIT
TESTS
169
8.1
OBJECT-ORIENTED
API
FOR
ENTITIES
.................................................................
171
8.1.1
ENTITY
TYPE
CLASS
..................................................................................
171
8.1.2
SELECTION
CLASS
.....................................................................................
171
8.1.3
ENTITY
SET
CLASS
.....................................................................................
173
8.1.4
ENTITY
API
CLASS
....................................................................................
173
8.2
HIGHLIGHTING
CHANGES
AS
AN
INDEPENDENT
COMPONENT
.............................
174
8.2.1
HIGHLIGHT
CHANGES
INTERFACE
................................................................
175
8.2.2
HIGHLIGHT
CHANGES
CLASS
.....................................................................
175
8.2.3
CALCULATION
METHOD
FOR
ENTITY
NODES
.................................................
176
8.2.4
CALCULATION
METHOD
FOR
ENTITY
TREES
...................................................
178
8.2.5
USING
THE
HIGHLIGHT
CHANGES
CLASS
.....................................................
179
8.3
TESTS
FOR
THE
HIGHLIGHT
CHANGES
CLASS........................................................
182
8.3.1
UNIT
TESTS
.............................................................................................
182
8.3.2
COMPONENT
TESTS
................................................................................
185
8.4
SUMMARY
.....................................................................................................
187
PART
II
TEST-ORIENTED
ABAP
DESIGN
9
DESIGNING
METHODS
191
9.1
RULES
FOR
IMPLEMENTING
METHODS
..............................................................
192
9.1.1
COMMENTING
........................................................................................
192
9.1.2
FORMATTING
...........................................................................................
194
9.2
RULES
FOR
METHOD
SIGNATURES
......................................................................
200
9.2.1
SIMPLE
EXAMPLE
OF
IMPROVING
METHOD
SIGNATURES
.............................
200
9.2.2
COMPACTING
METHOD
SIGNATURES
.........................................................
202
9.2.3
ADVANCED
EXAMPLE
OF
IMPROVING
METHOD
SIGNATURES
.........................
204
9.3
SUMMARY
.....................................................................................................
213
10
DESIGNING
CLASSES
215
10.1
CREATION
OF
AN
OBJECT
BY
ITS
CLASS
...............................................................
216
10.1.1
CREATION
METHODS
................................................................................
216
10.1.2
TESTABILITY
OFTHE
CONSTRUCTOR
.............................................................
217
10.2
CREATION
OF
AN
OBJECT
BY
A
FACTORY
CLASS....................................................
219
10.2.1
CREATION
WITHOUT
A
FACTORY
..................................................................
219
10.2.2
CREATION
WITH
A
CONCRETE
FACTORY
........................................................
220
10.2.3
CREATION
WITH
AN
ABSTRACT
FACTORY
......................................................
221
10.3
TYPES
OF
DEPENDENCIES
BETWEEN
CLASSES
....................................................
222
10.3.1
INTERNAL
DEPENDENCIES
.........................................................................
223
10.3.2
EXTERNAL
DEPENDENCIES
........................................................................
224
10.4
INTERFACES
OF
A
CLASS
....................................................................................
225
10.4.1
AUTHORIZATION-SPECIFIC
INTERFACES
.......................................................
226
10.4.2
ROLE-SPECIFIC
INTERFACES
........................................................................
227
10.4.3
INTERFACE
PRINCIPLES
..............................................................................
228
10.5
LEVELSOF
ABSTRACTION
WITHIN
A
CLASS
............................................................
228
10.5.1
ENTITY
SET
CLASS
WITH
TABLES
.................................................................
230
10.5.2
ENTITY
SET
CLASS
WITH
OBJECTS
..............................................................
232
10.5.3
EFFICIENCY
...............................................................................................
233
10.6
CATALOG
DESIGN
PATTERN
..............................................................................
235
10.7
COHESION
......................................................................................................
237
10.7.1
COMPONENT
GRAPH
...............................................................................
238
10.7.2
HORIZONTAL
SPLIT
OF
A
CLASS
...................................................................
239
10.7.3
VERTICAL
SPLIT
OF
A
CLASS
........................................................................
239
10.7.4
EXAMPLE
OFTHE
SPLIT
OF
A
CLASS
............................................................
241
10.8
SUMMARY
.....................................................................................................
242
11
DESIGNING
PACKAGES
245
11.1
PACKAGE
CONCEPT
.........................................................................................
245
11.1.1
VISIBILITY
................................................................................................
247
11.1.2
PACKAGE
INTERFACES
...............................................................................
248
11.1.3
USE
ACCESSES
........................................................................................
250
11.2
PRODUCT
PACKAGES
........................................................................................
251
11.3
TEST
PACKAGES
..............................................................................................
253
11.3.1
TRANSPORT
LAYERS
...................................................................................
253
11.3.2
SHORTENING
OF
NOTE
CHAINS
..................................................................
255
11.4
SUMMARY
.....................................................................................................
255
12
TEST
CASES
257
12.1
TEST
DESIGN
..................................................................................................
257
12.1.1
PARAMETER-ORIENTED
TESTING
................................................................
258
12.1.2
STATE-ORIENTED
TESTING
........................................................................
261
12.2
TEST
PYRAMID
...............................................................................................
261
12.2.1
FURTHER
DEVELOPMENT
OF
LEGACY
CODE
.................................................
261
12.2.2
NEW
DEVELOPMENT
...............................................................................
262
12.3
TEST
COVERAGE
..............................................................................................
264
12.3.1
RESPONSIBILITIES
OFTHE
TEST
TYPES
.......................................................
265
12.3.2
COMPLETION
OF
TEST
COVERAGE
..............................................................
265
12.4
SUMMARY
.....................................................................................................
266
13
TEST
DOUBLES
267
13.1
ADVANTAGES
OF
TEST
DOUBLES
.......................................................................
267
13.1.1
DEPENDENCIES
OF
A
TEST
........................................................................
267
13.1.2
VERIFYING
THE
BEHAVIOR
OF
A
METHOD
....................................................
269
13.2
SPECIFYING
TEST
DOUBLES
..............................................................................
271
13.2.1
TEST
DOUBLE
TYPES
...............................................................................
271
13.2.2
USING
TEST
DOUBLES
..............................................................................
275
13.3
DESIGNING
TEST
DOUBLES
..............................................................................
277
13.3.1
INTERFACE
AND
SUBCLASS
DOUBLES
...........................................................
278
13.3.2
PROXY
DOUBLES
......................................................................................
279
13.3.3
CHANGES
TO
THE
PRODUCT
DESIGN
IN
FAVOR
OF
TESTABILITY
......................
280
13.4
INJECTING
TEST
DOUBLES
................................................................................
282
13.4.1
INJECTION
MECHANISMS
OFFERED
BY
THE
CLASS
UNDER
TEST
.....................
282
13.4.2
INJECTION
MECHANISMS
ENABLED
BY
THE
CLASS
UNDER
TEST
....................
285
13.4.3
INJECTION
MECHANISMS
ENABLED
BY
A
DEPENDED-ON
SINGLETON
CLASS
...
287
13.4.4
INJECTION
MECHANISMS
ENABLED
BY
A
STATIC
FACTORY
............................
291
13.4.5
INJECTION
MECHANISMS
ENABLED
BY
A
SINGLETON
FACTORY
......................
292
13.4.6
INJECTION
MECHANISMS
ENABLED
BY
AN
ABSTRACT
FACTORY
......................
293
13.5
SUMMARY
.....................................................................................................
296
14
GLOBAL
TEST
DOUBLES
297
14.1
TEST
DOUBLE
FOR
A
METHOD
..........................................................................
298
14.1.1
DOUBLE
CLASS
WITH
MANY
CREATION
METHODS
.......................................
300
14.1.2
DOUBLE
CLASS
WITH
ONE
CREATION
METHOD
...........................................
302
14.2
TEST
DOUBLE
FOR
TWO
METHODS
....................................................................
303
14.2.1
DEFINITION
AND
IMPLEMENTATION
OF
THE
TEST
DOUBLE
CLASS
.................
303
14.2.2
DEFINITION
AND
IMPLEMENTATION
OFTHE
TEST
CLASS
.............................
306
14.3
METHOD
DOUBLES
AND
THEIR
COMBINATIONS
.................................................
309
14.3.1
COHESION
OF
A
DOUBLE
CLASS
.................................................................
309
14.3.2
DECORATOR
DOUBLE
CLASS
.......................................................................
311
14.4
GLOBALIZING
TEST
DOUBLES
............................................................................
316
14.5
DESIGNING
GLOBAL
TEST
DOUBLES
...................................................................
318
14.6
ADAPTING
THE
DESIGN
OF
GLOBAL
TEST
DOUBLES
.............................................
320
14.6.1
JOB
INTERFACE
........................................................................................
321
14.6.2
GLOBAL
JOB
DOUBLE
CLASS
.......................................................................
322
14.6.3
TEST
CLASS
FOR
A
JOB
USER
CLASS
.............................................................
324
14.7
SUMMARY
.....................................................................................................
325
15
TEST
CLASSES
327
15.1
ABAP
UNIT
TEST
FRAMEWORK
........................................................................
327
15.2
LOCAL
TEST
CLASSES........................................................................................
329
15.3
DESIGN
PATTERNS
FOR
TEST
CLASSES
.................................................................
332
15.3.1
GIVEN-WHEN-THEN
DESIGN
PATTERN
......................................................
332
15.3.2
TEST
CLASS
DESIGN
PATTERN
....................................................................
333
15.4
TEST
CLASS
HIERARCHIES
.................................................................................
335
15.5
GLOBAL
TEST
CLASSES.....................................................................................
339
15.6
SUMMARY
.....................................................................................................
342
16
TEST
DATA
343
16.1
TEST
DATA
CONTAINER
....................................................................................
343
16.1.1
USING
TEST
DATA
CONTAINERS
IN
ABAP
UNIT
...........................................
343
16.1.2
TESTING
WITH
AND
WITHOUT
TEST
DATA
CONTAINERS
................................
344
16.2
TEST
DATA
OBJECTS
........................................................................................
352
16.3
SUMMARY
.....................................................................................................
362
17
TEST
INFRASTRUCTURES
363
17.1
COMPONENTS
OF
TEST
INFRASTRUCTURES
..........................................................
363
17.2
APPLICATION
SCENARIOS
FOR
A
GLOBAL
TEST
INFRASTRUCTURE
..............................
365
17.2.1
COMPONENT
TESTS
................................................................................
365
17.2.2
INTEGRATION
TESTS
..................................................................................
367
17.3
DEVELOPMENT
PROCESSES
USING
A
TEST
INFRASTRUCTURE
.................................
370
17.3.1
DEVELOPING
AN
API
FOR
LEGACY
COMPONENTS
........................................
370
17.3.2
CROSS-TEAM
TEST
INFRASTRUCTURE
...........................................................
372
17.4
SUMMARY
.....................................................................................................
373
PART
III
AGILE
DEVELOPMENT
OF
A
NEW
APPLICATION
18
PREPARATION
FOR
TEST-DRIVEN
DEVELOPMENT
377
18.1
SPECIFICATION
OFTHE
SAMPLE
APPLICATION
....................................................
378
18.2
ARCHITECTURE
AND
DESIGN
OFTHE
SAMPLE
APPLICATION
.................................
380
18.2.1
PACKAGE
STRUCTURE
................................................................................
380
18.2.2
DATA
MODEL
..........................................................................................
382
18.2.3
OBJECT
MODEL
........................................................................................
383
18.3
TEST
STRATEGY
FOR
THE
SAMPLE
APPLICATION
..................................................
385
18.3.1
ACCEPTANCE
TESTS
..................................................................................
386
18.3.2
PROCESS
COMPONENT
TESTS
...................................................................
386
18.3.3
MODEL
COMPONENT
TESTS
.....................................................................
387
18.3.4
ACCESS
INTEGRATION
TESTS
......................................................................
387
18.4
SKELETON
OF
THE
SAMPLE
APPLICATION
...........................................................
388
18.4.1
ALL
COMPONENTS
....................................................................................
388
18.4.2
MODEL
COMPONENT
...............................................................................
391
18.4.3
EXTERNAL
FACTORY
CLASS
..........................................................................
392
18.4.4
INTERNAL
FACTORY
CLASS
..........................................................................
394
18.4.5
API
CLASS
...............................................................................................
395
18.4.6
TEST
DATA
CLASS
.....................................................................................
397
18.4.7
BASE
CLASS
FOR
COMPONENT
TESTS
.........................................................
400
18.5
SUMMARY
......................................................................................................
401
19
TEST-DRIVEN
DEVELOPMENT
403
19.1
ACCEPTANCE
TEST-DRIVEN
DEVELOPMENT
.......................................................
403
19.1.1
BASE
CLASS
FOR
THE
ACCEPTANCE
TESTS
...................................................
403
19.1.2
ACCEPTANCE
TEST
(GIVEN
AND
WHEN
PHASE)
.........................................
405
19.2
COMPONENT
TEST-DRIVEN
DEVELOPMENT
......................................................
406
19.2.1
COMPONENT
TEST
CLASS
FOR
THE
CREATION
PROCESS
................................
407
19.2.2
GLOBAL
DOUBLE
OFTHE
CONTRACT
MANAGER
.............................................
408
19.2.3
DEVELOPMENT
TACTICS
...........................................................................
410
19.3
UNIT
TEST-DRIVEN
DEVELOPMENT
...................................................................
411
19.4
COMPLETION
AND
IMPROVEMENT
OF
THE
FIRST
ACCEPTANCE
TEST
.....................
414
19.4.1
ACCEPTANCE
TEST
(THEN
PHASE)
.............................................................
414
19.4.2
OBJECT-BASED
COMPARISON
..................................................................
415
19.4.3
REFACTORING
OFTHE
ACCEPTANCE
TEST
....................................................
417
19.5
EXTENSION
OF
THE
ACCEPTANCE
TEST
SUITE
.....................................................
418
19.5.1
TEST
DEVELOPMENT
STRATEGY
.................................................................
418
19.5.2
COMPONENT
TEST
..................................................................................
422
19.5.3
INTEGRATION
TEST
...................................................................................
423
19.6
SUMMARY
425
PART
IV
AGILE
METHODOLOGY
20
SCRUM
429
20.1
ARTIFACTS
.......................................................................................................
430
20.1.1
PRODUCT
BACKLOG
....................................................................................
430
20.1.2
READY
CRITERIA
.......................................................................................
431
20.1.3
DONE
CRITERIA
........................................................................................
432
20.1.4
SPRINT
BACKLOG
......................................................................................
433
20.1.5
SPRINT
BURNDOWN
CHART
.......................................................................
434
20.1.6
RELEASE
BURNDOWN
CHART
.....................................................................
435
20.2
ROLES
............................................................................................................
436
20.2.1
PRODUCT
OWNER
....................................................................................
436
20.2.2
SCRUM
MASTER
.......................................................................................
437
20.2.3
TEAM
....................................................................................................
437
20.3
MEETINGS
.....................................................................................................
437
20.3.1
BACKLOG
GROOMING
...............................................................................
438
20.3.2
SPRINT
PLANNING:
PART
1
.........................................................................
438
20.3.3
SPRINT
PLANNING:
PART
2
.........................................................................
439
20.3.4
DAILY
SCRUM
..........................................................................................
439
20.3.5
SPRINT
REVIEW
.......................................................................................
440
20.3.6
SPRINT
RETROSPECTIVE
............................................................................
440
20.3.7
SCRUM
CYCLE
.........................................................................................
440
20.4
CHARACTERISTICS
.............................................................................................
442
20.5
SUMMARY
.....................................................................................................
443
21
AGILE
SOFTWARE
ENGINEERING
445
21.1
REFACTORING
.................................................................................................
445
21.1.1
IMPLEMENTATION
...................................................................................
446
21.1.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
446
21.1.3
DIFFERENTIATION
.....................................................................................
447
21.2
TEST-DRIVEN
DEVELOPMENT
..........................................................................
449
21.2.1
IMPLEMENTATION
...................................................................................
449
21.2.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
451
21.2.3
ALTERNATIVES
..........................................................................................
453
21.3
PAIR
PROGRAMMING
.......................................................................................
453
21.3.1
IMPLEMENTATION
...................................................................................
454
21.3.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
456
21.3.3
ALTERNATIVES
..........................................................................................
458
21.4
WALKING
SKELETON
........................................................................................
459
21.4.1
IMPLEMENTATION
...................................................................................
460
21.4.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
463
21.5
SHARED
CODE
OWNERSHIP
..............................................................................
465
21.5.1
IMPLEMENTATION
...................................................................................
466
21.5.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
468
21.5.3
ALTERNATIVES
..........................................................................................
468
21.6
CONTINUOUS
INTEGRATION
..............................................................................
470
21.6.1
CONTINUOUS
INTEGRATION
WITH
ABAP
.....................................................
471
21.6.2
LOCAL
CHANGE
........................................................................................
471
21.7
SUMMARY
.....................................................................................................
473
22
LEAN
DEVELOPMENT
MODEL
475
22.1
BASICS...........................................................................................................
475
22.2
IMPLEMENTING
LEAN
PRINCIPLES
WITH
AGILE
SOFTWARE
ENGINEERING
.............
477
22.2.1
REFACTORING
...........................................................................................
477
22.2.2
TEST-DRIVEN
DEVELOPMENT
...................................................................
477
22.2.3
PAIR
PROGRAMMING
................................................................................
478
22.2.4
WALKING
SKELETON
.................................................................................
478
22.2.5
SHARED
CODE
OWNERSHIP
......................................................................
479
22.3
TEST
INFRASTRUCTURE
......................................................................................
479
22.4
SUMMARY
.....................................................................................................
480
23
TEAM
DEVELOPMENT
48I
23.1
SUSTAINABLE
LEARNING
...................................................................................
481
23.2
LEARNING
CAPS
..............................................................................................
484
23.2.1
NO
UNIT
TESTS
........................................................................................
484
23.2.2
LONG
METHODS
......................................................................................
485
23.2.3
LEARNING
PLAN
.......................................................................................
486
23.3
AGILE
COACHING
............................................................................................
487
23.3.1
IMPLEMENTATION
...................................................................................
488
23.3.2
ADVANTAGES
AND
DISADVANTAGES
..........................................................
492
23.4
NETWORK
FOR
AGILE
COACHING........................................................................
494
23.5
SUMMARY
.....................................................................................................
495
24
BACKLOG
DEVELOPMENT
497
24.1
DESIGN
THINKING
..........................................................................................
498
24.1.1
UNDERSTAND
..........................................................................................
500
24.1.2
OBSERVE
................................................................................................
501
24.1.3
DEFINE
POINT
OF
VIEW
............................................................................
502
24.1.4
IDEATE
...................................................................................................
502
24.1.5
PROTOTYPE
..............................................................................................
503
24.1.6
TEST
.......................................................................................................
503
24.2
USER
STORY
MAPPING
....................................................................................
503
24.2.1
STRUCTURE
OF
A
USER
STORY
MAP
.............................................................
504
24.2.2
REVIEW
OF
A
USER
STORY
MAP
................................................................
506
24.3
SUMMARY
.....................................................................................................
506
25
PRODUCT
DEVELOPMENT
509
25.1
SUSTAINABLE
DEVELOPMENT
.........................................................................
510
25.1.1
MAINTAINING
PRODUCTIVITY
.....................................................................
510
25.1.2
IMPROVING
PRODUCTIVITY
........................................................................
511
25.2
DEVELOPMENT
STRATEGIES
FOR
LEGACY
CODE
..................................................
513
25.2.1
CHARACTERIZATION
...................................................................................
513
25.2.2
TRANSFORMATION
....................................................................................
513
25.3
DEVELOPMENT
STRATEGIES
FOR
NEW
CODE
.....................................................
514
25.4
SUMMARY
.....................................................................................................
516
PARTV
TEST-ORIENTEDABAPTOOLS
26
ABAP
UNIT
519
26.1
CL_ABAP_UNIT_ASSERT
CLASS
....................................................................
519
26.1.1
METHODS
...............................................................................................
520
26.1.2
PARAMETERS
...........................................................................................
520
26.1.3
CONSTRAINTS
...........................................................................................
521
26.2
EXECUTION
OF
TESTS
.......................................................................................
525
26.2.1
STATIC
BASICS
OF
TEST
EXECUTION
............................................................
525
26.2.2
DYNAMIC
BASICS
OF
TEST
EXECUTION
.......................................................
526
26.2.3
TEST
RELATIONS
.......................................................................................
528
26.3 DEVELOPMENT
OBJECTS
..................................................................................
530
26.4
SUMMARY
.....................................................................................................
532
27
ABAP
DEVELOPMENT
TOOLS
535
27.1
INTRODUCTION
.................................................................................................
535
27.1.1
SAP
HELP
...............................................................................................
535
27.1.2
CREATING
A
PROJECT
.................................................................................
536
27.1.3
CREATING
A
PRODUCT
CLASS
......................................................................
537
27.2
TEST-DRIVEN
DEVELOPMENT
WITH
ABAP
DEVELOPMENT
TOOLS
.......................
539
27.2.1
AUTHORITY
CHECK
AS
TEST
STUB
..............................................................
540
27.2.2
AUTHORITY
CHECK
AS
TEST
SPY
................................................................
548
27.2.3
AUTHORITY
CHECK
AS
MOCK
OBJECT
.........................................................
554
27.3
SUMMARY
.....................................................................................................
557
28
ABAP
TOOLS
FOR
TEST
ISOLATION
559
28.1
SAMPLE
CLASS
...............................................................................................
559
28.2
OPEN
SQL
TEST
DOUBLE
FRAMEWORK
.............................................................
562
28.3
TEST
SEAMS
..................................................................................................
565
28.4
ABAP
TEST
DOUBLE
FRAMEWORK
....................................................................
568
28.5
SUMMARY
.....................................................................................................
571
APPENDICES
573
A
NAMING
CONVENTIONS
FOR
ABAP
CODE
..........................................................
575
A.1
CLASSES
...................................................................................................
575
A.2
STORAGES
.................................................................................................
576
A.3
METHODS
.................................................................................................
577
B
BIBLIOGRAPHY
.................................................................................................
579
C
THE
AUTHOR
...................................................................................................
581
INDEX
...............................................................................................................................
583
|
adam_txt |
CONTENTS
AT
A
GLANCE
1
INTRODUCTION
.
33
PART
I
BUILDING
A
TEST
INFRASTRUCTURE
2
THE
SAMPLE
APPLICATION
.
49
3
CODE-BASED
TEST
IMPROVEMENT
.
57
4
DESIGN-BASED
TEST
IMPROVEMENT
.
87
5
ROBUST
INTEGRATION
TEST
.
103
6
MINIMIZING
DEPENDENCIES
.
117
7
ISOLATED
COMPONENT
TEST
.
141
8
REDESIGN
WITH
UNIT
TESTS
.
169
PART
II
TEST-ORIENTED
ABAP
DESIGN
9
DESIGNING
METHODS
.
191
10
DESIGNING
CLASSES
.
215
11
DESIGNING
PACKAGES
.
245
12
TEST
CASES
.
257
13
TEST
DOUBLES
.
267
14
GLOBAL
TEST
DOUBLES
.
297
15
TEST
CLASSES
.
327
16
TEST
DATA
.
343
17
TEST
INFRASTRUCTURES
.
363
PART
III
AGILE
DEVELOPMENT
OF
A
NEW
APPLICATION
18
PREPARATION
FOR
TEST-DRIVEN
DEVELOPMENT
.
377
19
TEST-DRIVEN
DEVELOPMENT
.
403
PART
IV
AGILE
METHODOLOGY
20
SCRUM
.
429
21
AGILE
SOFTWARE
ENGINEERING
.
445
22
LEAN
DEVELOPMENT
MODEL
.
475
23
TEAM
DEVELOPMENT
.
481
24
BACKLOG
DEVELOPMENT
.
497
25
PRODUCT
DEVELOPMENT
.
509
PART
V
TEST-ORIENTED
ABAP
TOOLS
26
ABAP
UNIT
.
519
27
ABAP
DEVELOPMENT
TOOLS
.
535
28
ABAP
TOOLS
FOR
TEST
ISOLATION
.
559
CONTENTS
FOREWORD
.
23
PREFACE
.
25
1
INTRODUCTION
33
1.1
SUSTAINABILITY:
DEVELOPMENT
AND
MAINTENANCE
WITH
A
TEST
INFRASTRUCTURE
.
34
1.2
AGILITY:
PRACTICES
OF
AGILE
SOFTWARE
ENGINEERING
.
39
1.3
EFFICIENCY:
COMPLIANCE
WITH
DESIGN
PRINCIPLES
.
40
1.3.1
SOLID
PRINCIPLES
.
40
1.3.2
FIRST
PRINCIPLES
.
42
1.4
EFFECTIVITY:
COMMUNICATION
WITH
DIAGRAMS
.
44
1.5
SUMMARY
.
46
PART
I
BUILDING
A
TEST
INFRASTRUCTURE
2
THE
SAMPLE
APPLICATION
49
2.1
MASTER
DATA
MANAGEMENT
.
50
2.1.1
CHANGE
REQUEST
.
50
2.1.2
DEFINITION
OF
A
MASTER
DATA
MODEL
.
51
2.2
USER
INTERFACE
.
52
2.3
BACKEND.
54
2.4
SUMMARY
.
56
3
CODE-BASED
TEST
IMPROVEMENT
57
3.1
INTRODUCTION
TO
THE
TEST
CODE
.
57
3.1.1
DEFINING
A
TEST
CLASS
.
58
3.1.2
IMPLEMENTING
A
TEST
CLASS
.
59
3.1.3
ABAP
UNIT
LOG
.
66
3.1.4
DIAGRAMS
.
67
3.2
GENERAL
CLEAN
CODE
PRINCIPLES.
70
3.2.1
IMPROVEMENT
PROCESS
.
70
3.2.2
IMPROVING
THE
DEFINITION
OF
THE
TEST
CLASS
.
72
3.2.3
IMPROVING
THE
IMPLEMENTATION
OFTHE
TEST
CLASS
.
73
3.2.4
DIAGRAMS
.
77
3.3
TEST-ORIENTED
CLEAN
CODE
PRINCIPLES
.
79
3.3.1
IMPROVEMENT
PROCESS
.
79
3.3.2
IMPROVING
THE
IMPLEMENTATION
OFTHE
TEST
CLASS
.
80
3.3.3
DIAGRAMS
.
83
3.4
SUMMARY
.
86
4
DESIGN-BASED
TEST
IMPROVEMENT
87
4.1
BASE
CLASSES
OF
TEST
CLASSES
.
87
4.1.1
IMPROVEMENT
PROCESS
.
88
4.1.2
EXTRACTING
A
BASE
CLASS
FROM
A
TEST
CLASS
.
88
4.1.3
DIAGRAMS
.
90
4.2
USAGEOF
HELP
CLASSES
BY
TEST
CLASSES.
93
4.2.1
IMPROVEMENT
PROCESS
.
93
4.2.2 DESIGN
PATTERNS
FOR
CLASSES
.
93
4.2.3
DEFINING
AND
USING
THE
TEST
DATA
CLASS
.
94
4.2.4
DIAGRAMS
.
97
4.3
SUMMARY
.
100
5
ROBUST
INTEGRATION
TEST
103
5.1
IMPROVEMENT
PROCESS
.
103
5.2
INDEPENDENCE
OF
TEST
METHODS
.
104
5.2.1
TEST
DATA
CONTAINER
.
104
5.2.2
SINGLETON
DESIGN
PATTERN
.
106
5.3
REPEATABILITY
OF
TEST
METHODS
.
108
5.3.1
AUTOMATED
TEST
SETUP
.
109
5.3.2
HELP
METHODS
FOR
TEST
CLASS
.
110
5.3.3
DIAGRAMS
.
113
5.4
SUMMARY
.
116
6
MINIMIZING
DEPENDENCIES
117
6.1
SIMPLIFICATION
OF
USE
.
118
6.1.1
IMPROVEMENT
PROCESS
.
119
6.1.2
SIMPLIFYING
THE
PRODUCTIVE
API
.
119
6.1.3
ACCESS
TO
THE
TEST
DATA
CONTAINER
.
120
6.1.4
DELEGATING
TEST
CLASSES
.
121
6.1.5
DIAGRAMS
.
122
6.2
SEGREGATION
OF
USE
.
125
6.2.1
IMPROVEMENT
PROCESS
.
126
6.2.2
NESTED
INTERFACES
.
126
6.2.3
DIAGRAMS
.
127
6.3
INDEPENDENCE
OF
CREATIONS
.
129
6.3.1
IMPROVEMENT
PROCESS
.
129
6.3.2
DEFINING
A
FACTORY
.
129
6.3.3
IMPLEMENTING
A
FACTORY
.
130
6.3.4
DIAGRAMS
.
132
6.4
INDEPENDENCE
OF
EXTENSIONS
.
135
6.4.1
IMPROVEMENT
PROCESS
.
135
6.4.2
ABSTRACT
SUPERCLASS
FOR
ALL
ENTITIES
.
135
6.4.3
CONCRETE
SUBCLASS
FOR
FLIGHT
CONNECTIONS
.
137
6.5
SUMMARY
.
139
7
ISOLATED
COMPONENT
TEST
141
7.1
TRANSFORMING
THE
INTEGRATION
TEST
.
142
7.1.1
IMPROVEMENT
PROCESS
.
143
7.1.2
ISOLATION
WITH
A
GOVERNANCE
API
TEST
DOUBLE
.
143
7.1.3
CONFIGURING
THE
GOVERNANCE
API
TEST
DOUBLE
.
148
7.1.4
DIAGRAMS
.
151
7.2
SCALING
WITH
A
TEST
LANGUAGE
.
154
7.2.1
IMPROVEMENT
PROCESS
.
154
7.2.2
STATE
OF
AN
ENTITY
.
155
7.2.3
TEST
METHOD:
UNSAVED
CHANGES
.
157
7.2.4
TEST
METHOD:
CHANGES
TO
A
NEW
ENTITY
TYPE
.
159
7.2.5
TEST
METHOD:
CONTAINED
CHANGES
.
160
7.3
TEST-DRIVEN
DEVELOPMENT
.
161
7.3.1
TEST
CLASS
FOR
HIGHLIGHTING
DELETIONS
.
162
7.3.2
DIAGRAMS
.
163
7.4
LISKOV
SUBSTITUTION
PRINCIPLE
.
165
7.4.1
VIOLATION
.
165
7.4.2
COMPLIANCE
.
167
7.5
SUMMARY
.
167
8
REDESIGN
WITH
UNIT
TESTS
169
8.1
OBJECT-ORIENTED
API
FOR
ENTITIES
.
171
8.1.1
ENTITY
TYPE
CLASS
.
171
8.1.2
SELECTION
CLASS
.
171
8.1.3
ENTITY
SET
CLASS
.
173
8.1.4
ENTITY
API
CLASS
.
173
8.2
HIGHLIGHTING
CHANGES
AS
AN
INDEPENDENT
COMPONENT
.
174
8.2.1
HIGHLIGHT
CHANGES
INTERFACE
.
175
8.2.2
HIGHLIGHT
CHANGES
CLASS
.
175
8.2.3
CALCULATION
METHOD
FOR
ENTITY
NODES
.
176
8.2.4
CALCULATION
METHOD
FOR
ENTITY
TREES
.
178
8.2.5
USING
THE
HIGHLIGHT
CHANGES
CLASS
.
179
8.3
TESTS
FOR
THE
HIGHLIGHT
CHANGES
CLASS.
182
8.3.1
UNIT
TESTS
.
182
8.3.2
COMPONENT
TESTS
.
185
8.4
SUMMARY
.
187
PART
II
TEST-ORIENTED
ABAP
DESIGN
9
DESIGNING
METHODS
191
9.1
RULES
FOR
IMPLEMENTING
METHODS
.
192
9.1.1
COMMENTING
.
192
9.1.2
FORMATTING
.
194
9.2
RULES
FOR
METHOD
SIGNATURES
.
200
9.2.1
SIMPLE
EXAMPLE
OF
IMPROVING
METHOD
SIGNATURES
.
200
9.2.2
COMPACTING
METHOD
SIGNATURES
.
202
9.2.3
ADVANCED
EXAMPLE
OF
IMPROVING
METHOD
SIGNATURES
.
204
9.3
SUMMARY
.
213
10
DESIGNING
CLASSES
215
10.1
CREATION
OF
AN
OBJECT
BY
ITS
CLASS
.
216
10.1.1
CREATION
METHODS
.
216
10.1.2
TESTABILITY
OFTHE
CONSTRUCTOR
.
217
10.2
CREATION
OF
AN
OBJECT
BY
A
FACTORY
CLASS.
219
10.2.1
CREATION
WITHOUT
A
FACTORY
.
219
10.2.2
CREATION
WITH
A
CONCRETE
FACTORY
.
220
10.2.3
CREATION
WITH
AN
ABSTRACT
FACTORY
.
221
10.3
TYPES
OF
DEPENDENCIES
BETWEEN
CLASSES
.
222
10.3.1
INTERNAL
DEPENDENCIES
.
223
10.3.2
EXTERNAL
DEPENDENCIES
.
224
10.4
INTERFACES
OF
A
CLASS
.
225
10.4.1
AUTHORIZATION-SPECIFIC
INTERFACES
.
226
10.4.2
ROLE-SPECIFIC
INTERFACES
.
227
10.4.3
INTERFACE
PRINCIPLES
.
228
10.5
LEVELSOF
ABSTRACTION
WITHIN
A
CLASS
.
228
10.5.1
ENTITY
SET
CLASS
WITH
TABLES
.
230
10.5.2
ENTITY
SET
CLASS
WITH
OBJECTS
.
232
10.5.3
EFFICIENCY
.
233
10.6
CATALOG
DESIGN
PATTERN
.
235
10.7
COHESION
.
237
10.7.1
COMPONENT
GRAPH
.
238
10.7.2
HORIZONTAL
SPLIT
OF
A
CLASS
.
239
10.7.3
VERTICAL
SPLIT
OF
A
CLASS
.
239
10.7.4
EXAMPLE
OFTHE
SPLIT
OF
A
CLASS
.
241
10.8
SUMMARY
.
242
11
DESIGNING
PACKAGES
245
11.1
PACKAGE
CONCEPT
.
245
11.1.1
VISIBILITY
.
247
11.1.2
PACKAGE
INTERFACES
.
248
11.1.3
USE
ACCESSES
.
250
11.2
PRODUCT
PACKAGES
.
251
11.3
TEST
PACKAGES
.
253
11.3.1
TRANSPORT
LAYERS
.
253
11.3.2
SHORTENING
OF
NOTE
CHAINS
.
255
11.4
SUMMARY
.
255
12
TEST
CASES
257
12.1
TEST
DESIGN
.
257
12.1.1
PARAMETER-ORIENTED
TESTING
.
258
12.1.2
STATE-ORIENTED
TESTING
.
261
12.2
TEST
PYRAMID
.
261
12.2.1
FURTHER
DEVELOPMENT
OF
LEGACY
CODE
.
261
12.2.2
NEW
DEVELOPMENT
.
262
12.3
TEST
COVERAGE
.
264
12.3.1
RESPONSIBILITIES
OFTHE
TEST
TYPES
.
265
12.3.2
COMPLETION
OF
TEST
COVERAGE
.
265
12.4
SUMMARY
.
266
13
TEST
DOUBLES
267
13.1
ADVANTAGES
OF
TEST
DOUBLES
.
267
13.1.1
DEPENDENCIES
OF
A
TEST
.
267
13.1.2
VERIFYING
THE
BEHAVIOR
OF
A
METHOD
.
269
13.2
SPECIFYING
TEST
DOUBLES
.
271
13.2.1
TEST
DOUBLE
TYPES
.
271
13.2.2
USING
TEST
DOUBLES
.
275
13.3
DESIGNING
TEST
DOUBLES
.
277
13.3.1
INTERFACE
AND
SUBCLASS
DOUBLES
.
278
13.3.2
PROXY
DOUBLES
.
279
13.3.3
CHANGES
TO
THE
PRODUCT
DESIGN
IN
FAVOR
OF
TESTABILITY
.
280
13.4
INJECTING
TEST
DOUBLES
.
282
13.4.1
INJECTION
MECHANISMS
OFFERED
BY
THE
CLASS
UNDER
TEST
.
282
13.4.2
INJECTION
MECHANISMS
ENABLED
BY
THE
CLASS
UNDER
TEST
.
285
13.4.3
INJECTION
MECHANISMS
ENABLED
BY
A
DEPENDED-ON
SINGLETON
CLASS
.
287
13.4.4
INJECTION
MECHANISMS
ENABLED
BY
A
STATIC
FACTORY
.
291
13.4.5
INJECTION
MECHANISMS
ENABLED
BY
A
SINGLETON
FACTORY
.
292
13.4.6
INJECTION
MECHANISMS
ENABLED
BY
AN
ABSTRACT
FACTORY
.
293
13.5
SUMMARY
.
296
14
GLOBAL
TEST
DOUBLES
297
14.1
TEST
DOUBLE
FOR
A
METHOD
.
298
14.1.1
DOUBLE
CLASS
WITH
MANY
CREATION
METHODS
.
300
14.1.2
DOUBLE
CLASS
WITH
ONE
CREATION
METHOD
.
302
14.2
TEST
DOUBLE
FOR
TWO
METHODS
.
303
14.2.1
DEFINITION
AND
IMPLEMENTATION
OF
THE
TEST
DOUBLE
CLASS
.
303
14.2.2
DEFINITION
AND
IMPLEMENTATION
OFTHE
TEST
CLASS
.
306
14.3
METHOD
DOUBLES
AND
THEIR
COMBINATIONS
.
309
14.3.1
COHESION
OF
A
DOUBLE
CLASS
.
309
14.3.2
DECORATOR
DOUBLE
CLASS
.
311
14.4
GLOBALIZING
TEST
DOUBLES
.
316
14.5
DESIGNING
GLOBAL
TEST
DOUBLES
.
318
14.6
ADAPTING
THE
DESIGN
OF
GLOBAL
TEST
DOUBLES
.
320
14.6.1
JOB
INTERFACE
.
321
14.6.2
GLOBAL
JOB
DOUBLE
CLASS
.
322
14.6.3
TEST
CLASS
FOR
A
JOB
USER
CLASS
.
324
14.7
SUMMARY
.
325
15
TEST
CLASSES
327
15.1
ABAP
UNIT
TEST
FRAMEWORK
.
327
15.2
LOCAL
TEST
CLASSES.
329
15.3
DESIGN
PATTERNS
FOR
TEST
CLASSES
.
332
15.3.1
GIVEN-WHEN-THEN
DESIGN
PATTERN
.
332
15.3.2
TEST
CLASS
DESIGN
PATTERN
.
333
15.4
TEST
CLASS
HIERARCHIES
.
335
15.5
GLOBAL
TEST
CLASSES.
339
15.6
SUMMARY
.
342
16
TEST
DATA
343
16.1
TEST
DATA
CONTAINER
.
343
16.1.1
USING
TEST
DATA
CONTAINERS
IN
ABAP
UNIT
.
343
16.1.2
TESTING
WITH
AND
WITHOUT
TEST
DATA
CONTAINERS
.
344
16.2
TEST
DATA
OBJECTS
.
352
16.3
SUMMARY
.
362
17
TEST
INFRASTRUCTURES
363
17.1
COMPONENTS
OF
TEST
INFRASTRUCTURES
.
363
17.2
APPLICATION
SCENARIOS
FOR
A
GLOBAL
TEST
INFRASTRUCTURE
.
365
17.2.1
COMPONENT
TESTS
.
365
17.2.2
INTEGRATION
TESTS
.
367
17.3
DEVELOPMENT
PROCESSES
USING
A
TEST
INFRASTRUCTURE
.
370
17.3.1
DEVELOPING
AN
API
FOR
LEGACY
COMPONENTS
.
370
17.3.2
CROSS-TEAM
TEST
INFRASTRUCTURE
.
372
17.4
SUMMARY
.
373
PART
III
AGILE
DEVELOPMENT
OF
A
NEW
APPLICATION
18
PREPARATION
FOR
TEST-DRIVEN
DEVELOPMENT
377
18.1
SPECIFICATION
OFTHE
SAMPLE
APPLICATION
.
378
18.2
ARCHITECTURE
AND
DESIGN
OFTHE
SAMPLE
APPLICATION
.
380
18.2.1
PACKAGE
STRUCTURE
.
380
18.2.2
DATA
MODEL
.
382
18.2.3
OBJECT
MODEL
.
383
18.3
TEST
STRATEGY
FOR
THE
SAMPLE
APPLICATION
.
385
18.3.1
ACCEPTANCE
TESTS
.
386
18.3.2
PROCESS
COMPONENT
TESTS
.
386
18.3.3
MODEL
COMPONENT
TESTS
.
387
18.3.4
ACCESS
INTEGRATION
TESTS
.
387
18.4
SKELETON
OF
THE
SAMPLE
APPLICATION
.
388
18.4.1
ALL
COMPONENTS
.
388
18.4.2
MODEL
COMPONENT
.
391
18.4.3
EXTERNAL
FACTORY
CLASS
.
392
18.4.4
INTERNAL
FACTORY
CLASS
.
394
18.4.5
API
CLASS
.
395
18.4.6
TEST
DATA
CLASS
.
397
18.4.7
BASE
CLASS
FOR
COMPONENT
TESTS
.
400
18.5
SUMMARY
.
401
19
TEST-DRIVEN
DEVELOPMENT
403
19.1
ACCEPTANCE
TEST-DRIVEN
DEVELOPMENT
.
403
19.1.1
BASE
CLASS
FOR
THE
ACCEPTANCE
TESTS
.
403
19.1.2
ACCEPTANCE
TEST
(GIVEN
AND
WHEN
PHASE)
.
405
19.2
COMPONENT
TEST-DRIVEN
DEVELOPMENT
.
406
19.2.1
COMPONENT
TEST
CLASS
FOR
THE
CREATION
PROCESS
.
407
19.2.2
GLOBAL
DOUBLE
OFTHE
CONTRACT
MANAGER
.
408
19.2.3
DEVELOPMENT
TACTICS
.
410
19.3
UNIT
TEST-DRIVEN
DEVELOPMENT
.
411
19.4
COMPLETION
AND
IMPROVEMENT
OF
THE
FIRST
ACCEPTANCE
TEST
.
414
19.4.1
ACCEPTANCE
TEST
(THEN
PHASE)
.
414
19.4.2
OBJECT-BASED
COMPARISON
.
415
19.4.3
REFACTORING
OFTHE
ACCEPTANCE
TEST
.
417
19.5
EXTENSION
OF
THE
ACCEPTANCE
TEST
SUITE
.
418
19.5.1
TEST
DEVELOPMENT
STRATEGY
.
418
19.5.2
COMPONENT
TEST
.
422
19.5.3
INTEGRATION
TEST
.
423
19.6
SUMMARY
425
PART
IV
AGILE
METHODOLOGY
20
SCRUM
429
20.1
ARTIFACTS
.
430
20.1.1
PRODUCT
BACKLOG
.
430
20.1.2
READY
CRITERIA
.
431
20.1.3
DONE
CRITERIA
.
432
20.1.4
SPRINT
BACKLOG
.
433
20.1.5
SPRINT
BURNDOWN
CHART
.
434
20.1.6
RELEASE
BURNDOWN
CHART
.
435
20.2
ROLES
.
436
20.2.1
PRODUCT
OWNER
.
436
20.2.2
SCRUM
MASTER
.
437
20.2.3
TEAM
.
437
20.3
MEETINGS
.
437
20.3.1
BACKLOG
GROOMING
.
438
20.3.2
SPRINT
PLANNING:
PART
1
.
438
20.3.3
SPRINT
PLANNING:
PART
2
.
439
20.3.4
DAILY
SCRUM
.
439
20.3.5
SPRINT
REVIEW
.
440
20.3.6
SPRINT
RETROSPECTIVE
.
440
20.3.7
SCRUM
CYCLE
.
440
20.4
CHARACTERISTICS
.
442
20.5
SUMMARY
.
443
21
AGILE
SOFTWARE
ENGINEERING
445
21.1
REFACTORING
.
445
21.1.1
IMPLEMENTATION
.
446
21.1.2
ADVANTAGES
AND
DISADVANTAGES
.
446
21.1.3
DIFFERENTIATION
.
447
21.2
TEST-DRIVEN
DEVELOPMENT
.
449
21.2.1
IMPLEMENTATION
.
449
21.2.2
ADVANTAGES
AND
DISADVANTAGES
.
451
21.2.3
ALTERNATIVES
.
453
21.3
PAIR
PROGRAMMING
.
453
21.3.1
IMPLEMENTATION
.
454
21.3.2
ADVANTAGES
AND
DISADVANTAGES
.
456
21.3.3
ALTERNATIVES
.
458
21.4
WALKING
SKELETON
.
459
21.4.1
IMPLEMENTATION
.
460
21.4.2
ADVANTAGES
AND
DISADVANTAGES
.
463
21.5
SHARED
CODE
OWNERSHIP
.
465
21.5.1
IMPLEMENTATION
.
466
21.5.2
ADVANTAGES
AND
DISADVANTAGES
.
468
21.5.3
ALTERNATIVES
.
468
21.6
CONTINUOUS
INTEGRATION
.
470
21.6.1
CONTINUOUS
INTEGRATION
WITH
ABAP
.
471
21.6.2
LOCAL
CHANGE
.
471
21.7
SUMMARY
.
473
22
LEAN
DEVELOPMENT
MODEL
475
22.1
BASICS.
475
22.2
IMPLEMENTING
LEAN
PRINCIPLES
WITH
AGILE
SOFTWARE
ENGINEERING
.
477
22.2.1
REFACTORING
.
477
22.2.2
TEST-DRIVEN
DEVELOPMENT
.
477
22.2.3
PAIR
PROGRAMMING
.
478
22.2.4
WALKING
SKELETON
.
478
22.2.5
SHARED
CODE
OWNERSHIP
.
479
22.3
TEST
INFRASTRUCTURE
.
479
22.4
SUMMARY
.
480
23
TEAM
DEVELOPMENT
48I
23.1
SUSTAINABLE
LEARNING
.
481
23.2
LEARNING
CAPS
.
484
23.2.1
NO
UNIT
TESTS
.
484
23.2.2
LONG
METHODS
.
485
23.2.3
LEARNING
PLAN
.
486
23.3
AGILE
COACHING
.
487
23.3.1
IMPLEMENTATION
.
488
23.3.2
ADVANTAGES
AND
DISADVANTAGES
.
492
23.4
NETWORK
FOR
AGILE
COACHING.
494
23.5
SUMMARY
.
495
24
BACKLOG
DEVELOPMENT
497
24.1
DESIGN
THINKING
.
498
24.1.1
UNDERSTAND
.
500
24.1.2
OBSERVE
.
501
24.1.3
DEFINE
POINT
OF
VIEW
.
502
24.1.4
IDEATE
.
502
24.1.5
PROTOTYPE
.
503
24.1.6
TEST
.
503
24.2
USER
STORY
MAPPING
.
503
24.2.1
STRUCTURE
OF
A
USER
STORY
MAP
.
504
24.2.2
REVIEW
OF
A
USER
STORY
MAP
.
506
24.3
SUMMARY
.
506
25
PRODUCT
DEVELOPMENT
509
25.1
SUSTAINABLE
DEVELOPMENT
.
510
25.1.1
MAINTAINING
PRODUCTIVITY
.
510
25.1.2
IMPROVING
PRODUCTIVITY
.
511
25.2
DEVELOPMENT
STRATEGIES
FOR
LEGACY
CODE
.
513
25.2.1
CHARACTERIZATION
.
513
25.2.2
TRANSFORMATION
.
513
25.3
DEVELOPMENT
STRATEGIES
FOR
NEW
CODE
.
514
25.4
SUMMARY
.
516
PARTV
TEST-ORIENTEDABAPTOOLS
26
ABAP
UNIT
519
26.1
CL_ABAP_UNIT_ASSERT
CLASS
.
519
26.1.1
METHODS
.
520
26.1.2
PARAMETERS
.
520
26.1.3
CONSTRAINTS
.
521
26.2
EXECUTION
OF
TESTS
.
525
26.2.1
STATIC
BASICS
OF
TEST
EXECUTION
.
525
26.2.2
DYNAMIC
BASICS
OF
TEST
EXECUTION
.
526
26.2.3
TEST
RELATIONS
.
528
26.3 DEVELOPMENT
OBJECTS
.
530
26.4
SUMMARY
.
532
27
ABAP
DEVELOPMENT
TOOLS
535
27.1
INTRODUCTION
.
535
27.1.1
SAP
HELP
.
535
27.1.2
CREATING
A
PROJECT
.
536
27.1.3
CREATING
A
PRODUCT
CLASS
.
537
27.2
TEST-DRIVEN
DEVELOPMENT
WITH
ABAP
DEVELOPMENT
TOOLS
.
539
27.2.1
AUTHORITY
CHECK
AS
TEST
STUB
.
540
27.2.2
AUTHORITY
CHECK
AS
TEST
SPY
.
548
27.2.3
AUTHORITY
CHECK
AS
MOCK
OBJECT
.
554
27.3
SUMMARY
.
557
28
ABAP
TOOLS
FOR
TEST
ISOLATION
559
28.1
SAMPLE
CLASS
.
559
28.2
OPEN
SQL
TEST
DOUBLE
FRAMEWORK
.
562
28.3
TEST
SEAMS
.
565
28.4
ABAP
TEST
DOUBLE
FRAMEWORK
.
568
28.5
SUMMARY
.
571
APPENDICES
573
A
NAMING
CONVENTIONS
FOR
ABAP
CODE
.
575
A.1
CLASSES
.
575
A.2
STORAGES
.
576
A.3
METHODS
.
577
B
BIBLIOGRAPHY
.
579
C
THE
AUTHOR
.
581
INDEX
.
583 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Schwarzmann, Winfried |
author_GND | (DE-588)1174769165 |
author_facet | Schwarzmann, Winfried |
author_role | aut |
author_sort | Schwarzmann, Winfried |
author_variant | w s ws |
building | Verbundindex |
bvnumber | BV047061395 |
classification_rvk | ST 233 |
ctrlnum | (OCoLC)1159213083 (DE-599)DNB1184686033 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1st edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02238nam a2200541 c 4500</leader><controlfield tag="001">BV047061395</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20210422 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">201214s2019 gw a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">19,N18</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1184686033</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781493218325</subfield><subfield code="c">: EUR 89.95 (DE) (freier Preis), EUR 92.50 (AT) (freier Preis), CHF 115.95 (freier Preis)</subfield><subfield code="9">978-1-4932-1832-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1493218328</subfield><subfield code="9">1-4932-1832-8</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9781493218325</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Bestellnummer: 459/21832</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1159213083</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1184686033</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-11</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Schwarzmann, Winfried</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1174769165</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Test-driven development with ABAP Objects</subfield><subfield code="c">Winfried Schwarzmann</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1st edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston</subfield><subfield code="b">Rheinwerk Publishing</subfield><subfield code="c">[2019]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2019</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">594 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield><subfield code="c">22.9 cm x 17.5 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">SAP Press</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Auf dem Cover: "Use test-driven and agile development to write more robust ABAP programs, clean up new and legacy code, minimize dependencies, and improve development efficiency, create integration tests, components tests, and more"</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Hardback</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">COM000000</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">U</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">TDD</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">21111</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">COM000000</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">U</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">1633: Hardcover, Softcover / Informatik, EDV/Programmiersprachen</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Galileo Press Inc.</subfield><subfield code="0">(DE-588)106510992X</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-1-4932-1833-2</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=45c6fe58883c4259aaff7ce51cf39151&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032468545&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032468545</subfield></datafield></record></collection> |
id | DE-604.BV047061395 |
illustrated | Illustrated |
index_date | 2024-07-03T16:11:43Z |
indexdate | 2024-07-10T09:01:29Z |
institution | BVB |
institution_GND | (DE-588)106510992X |
isbn | 9781493218325 1493218328 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032468545 |
oclc_num | 1159213083 |
open_access_boolean | |
owner | DE-11 |
owner_facet | DE-11 |
physical | 594 Seiten Illustrationen, Diagramme 22.9 cm x 17.5 cm |
publishDate | 2019 |
publishDateSearch | 2019 |
publishDateSort | 2019 |
publisher | Rheinwerk Publishing |
record_format | marc |
series2 | SAP Press |
spelling | Schwarzmann, Winfried Verfasser (DE-588)1174769165 aut Test-driven development with ABAP Objects Winfried Schwarzmann 1st edition Boston Rheinwerk Publishing [2019] © 2019 594 Seiten Illustrationen, Diagramme 22.9 cm x 17.5 cm txt rdacontent n rdamedia nc rdacarrier SAP Press Auf dem Cover: "Use test-driven and agile development to write more robust ABAP programs, clean up new and legacy code, minimize dependencies, and improve development efficiency, create integration tests, components tests, and more" Hardback COM000000 U TDD 21111 1633: Hardcover, Softcover / Informatik, EDV/Programmiersprachen Galileo Press Inc. (DE-588)106510992X pbl Erscheint auch als Online-Ausgabe 978-1-4932-1833-2 X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=45c6fe58883c4259aaff7ce51cf39151&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032468545&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Schwarzmann, Winfried Test-driven development with ABAP Objects |
title | Test-driven development with ABAP Objects |
title_auth | Test-driven development with ABAP Objects |
title_exact_search | Test-driven development with ABAP Objects |
title_exact_search_txtP | Test-driven development with ABAP Objects |
title_full | Test-driven development with ABAP Objects Winfried Schwarzmann |
title_fullStr | Test-driven development with ABAP Objects Winfried Schwarzmann |
title_full_unstemmed | Test-driven development with ABAP Objects Winfried Schwarzmann |
title_short | Test-driven development with ABAP Objects |
title_sort | test driven development with abap objects |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=45c6fe58883c4259aaff7ce51cf39151&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032468545&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT schwarzmannwinfried testdrivendevelopmentwithabapobjects AT galileopressinc testdrivendevelopmentwithabapobjects |