Test-Driven Development with ABAP Objects

Test-Driven Development with ABAP Objects
-0 %
Sofort lieferbar | Lieferzeit: Sofort lieferbar I

Unser bisheriger Preis:ORGPRICE: 90,95 €

Jetzt 89,94 €*

Alle Preise inkl. MwSt. | Versandkostenfrei
Artikel-Nr:
9781493218325
Veröffentl:
2019
Erscheinungsdatum:
24.09.2019
Seiten:
594
Autor:
Winfried Schwarzmann
Gewicht:
1228 g
Format:
236x185x43 mm
Serie:
SAP Press Englisch
Sprache:
Englisch
Beschreibung:

Better, cleaner code-every developer's dream. Test-driven development is how you'll achieve it! From creating a robust test infrastructure to designing methods, classes, and packages that will stand the test of time, this book provides in-depth instructions for revitalizing your programming. Whether you're writing new code or fixing legacy code, you'll learn to select test cases, use test doubles, and generate test data. With information on agile methodology to round out the development process, you'll have all the tools you need!

Highlights:

1. Object-oriented design
2. Refactoring legacy code
3. Test-driven maintenance
4. Test infrastructure
5. Test pyramid
6. Test code design pattern
7. Global test doubles
8. Test class hierarchies
9. Test data classes
10. ABAP Development Tools (ADT)
11. Agile development

Create integration tests, component tests, and more
... Foreword ... 23

... Preface ... 25

... Continuous Improvements ... 25

... Agile Methods ... 26

... Target Groups and Prerequisites ... 26

... Structure of the Book ... 27

... Information Boxes ... 30

... Limitations ... 30

... Acknowledgments ... 31

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.4 ... Effectivity: Communication with Diagrams ... 44

1.5 ... Summary ... 46

PART I ... Building a Test Infrastructure ... 47

2 ... The Sample Application ... 49

2.1 ... Master Data Management ... 50

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.2 ... General Clean Code Principles ... 70

3.3 ... Test-Oriented Clean Code Principles ... 79

3.4 ... Summary ... 86

4 ... Design-Based Test Improvement ... 87

4.1 ... Base Classes of Test Classes ... 87

4.2 ... Usage of Help Classes by Test Classes ... 93

4.3 ... Summary ... 100

5 ... Robust Integration Test ... 103

5.1 ... Improvement Process ... 103

5.2 ... Independence of Test Methods ... 104

5.3 ... Repeatability of Test Methods ... 108

5.4 ... Summary ... 116

6 ... Minimizing Dependencies ... 117

6.1 ... Simplification of Use ... 118

6.2 ... Segregation of Use ... 125

6.3 ... Independence of Creations ... 129

6.4 ... Independence of Extensions ... 135

6.5 ... Summary ... 139

7 ... Isolated Component Test ... 141

7.1 ... Transforming the Integration Test ... 142

7.2 ... Scaling with a Test Language ... 154

7.3 ... Test-Driven Development ... 161

7.4 ... Liskov Substitution Principle ... 165

7.5 ... Summary ... 167

8 ... Redesign with Unit Tests ... 169

8.1 ... Object-Oriented API for Entities ... 171

8.2 ... Highlighting Changes as an Independent Component ... 174

8.3 ... Tests for the Highlight Changes Class ... 182

8.4 ... Summary ... 187

PART II ... Test-Oriented ABAP Design ... 189

9 ... Designing Methods ... 191

9.1 ... Rules for Implementing Methods ... 192

9.2 ... Rules for Method Signatures ... 200

9.3 ... Summary ... 213

10 ... Designing Classes ... 215

10.1 ... Creation of an Object by Its Class ... 216

10.2 ... Creation of an Object by a Factory Class ... 219

10.3 ... Types of Dependencies between Classes ... 222

10.4 ... Interfaces of a Class ... 225

10.5 ... Levels of Abstraction within a Class ... 228

10.6 ... Catalog Design Pattern ... 235

10.7 ... Cohesion ... 237

10.8 ... Summary ... 242

11 ... Designing Packages ... 245

11.1 ... Package Concept ... 245

11.2 ... Product Packages ... 251

11.3 ... Test Packages ... 253

11.4 ... Summary ... 255

12 ... Test Cases ... 257

12.1 ... Test Design ... 257

12.2 ... Test Pyramid ... 261

12.3 ... Test Coverage ... 264

12.4 ... Summary ... 266

13 ... Test Doubles ... 267

13.1 ... Advantages of Test Doubles ... 267

13.2 ... Specifying Test Doubles ... 271

13.3 ... Designing Test Doubles ... 277

13.4 ... Injecting Test Doubles ... 282

13.5 ... Summary ... 296

14 ... Global Test Doubles ... 297

14.1 ... Test Double for a Method ... 298

14.2 ... Test Double for Two Methods ... 303

14.3 ... Method Doubles and Their Combinations ... 309

14.4 ... Globalizing Test Doubles ... 316

14.5 ... Designing Global Test Doubles ... 318

14.6 ... Adapting the Design of Global Test Doubles ... 320

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.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.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.3 ... Development Processes Using a Test Infrastructure ... 370

17.4 ... Summary ... 373

PART III ... Agile Development of a New Application ... 375

18 ... Preparation for Test-Driven Development ... 377

18.1 ... Specification of the Sample Application ... 378

18.2 ... Architecture and Design of the Sample Application ... 380

18.3 ... Test Strategy for the Sample Application ... 385

18.4 ... Skeleton of the Sample Application ... 388

18.5 ... Summary ... 401

19 ... Test-Driven Development ... 403

19.1 ... Acceptance Test-Driven Development ... 403

19.2 ... Component Test-Driven Development ... 406

19.3 ... Unit Test-Driven Development ... 411

19.4 ... Completion and Improvement of the First Acceptance Test ... 414

19.5 ... Extension of the Acceptance Test Suite ... 418

19.6 ... Summary ... 425

PART IV ... Agile Methodology ... 427

20 ... Scrum ... 429

20.1 ... Artifacts ... 430

20.2 ... Roles ... 436

20.3 ... Meetings ... 437

20.4 ... Characteristics ... 442

20.5 ... Summary ... 443

21 ... Agile Software Engineering ... 445

21.1 ... Refactoring ... 445

21.2 ... Test-Driven Development ... 449

21.3 ... Pair Programming ... 453

21.4 ... Walking Skeleton ... 459

21.5 ... Shared Code Ownership ... 465

21.6 ... Continuous Integration ... 470

21.7 ... Summary ... 473

22 ... Lean Development Model ... 475

22.1 ... Basics ... 475

22.2 ... Implementing Lean Principles with Agile Software Engineering ... 477

22.3 ... Test Infrastructure ... 479

22.4 ... Summary ... 480

23 ... Team Development ... 481

23.1 ... Sustainable Learning ... 481

23.2 ... Learning Gaps ... 484

23.3 ... Agile Coaching ... 487

23.4 ... Network for Agile Coaching ... 494

23.5 ... Summary ... 495

24 ... Backlog Development ... 497

24.1 ... Design Thinking ... 498

24.2 ... User Story Mapping ... 503

24.3 ... Summary ... 506

25 ... Product Development ... 509

25.1 ... Sustainable Development ... 510

25.2 ... Development Strategies for Legacy Code ... 513

25.3 ... Development Strategies for New Code ... 514

25.4 ... Summary ... 516

PART V ... Test-Oriented ABAP Tools ... 517

26 ... ABAP Unit ... 519

26.1 ... CL_ABAP_UNIT_ASSERT Class ... 519

26.2 ... Execution of Tests ... 525

26.3 ... Development Objects ... 530

26.4 ... Summary ... 532

27 ... ABAP Development Tools ... 535

27.1 ... Introduction ... 535

27.2 ... Test-Driven Development with ABAP Development Tools ... 539

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

B ... Bibliography ... 579

C ... The Author ... 581

... Index ... 583


Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.