Description: 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! The German version of this book has been published as »Agile ABAP-Entwicklung« (ISBN 3836261863). Highlights: Object-oriented design Refactoring legacy code Test-driven maintenance Test infrastructure Test pyramid Test code design pattern Global test doubles Test class hierarchies Test data classes ABAP Development Tools (ADT) Agile development ... 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
Price: 75.95 GBP
Location: Gloucester
End Time: 2024-09-06T08:21:14.000Z
Shipping Cost: 37.89 GBP
Product Images
Item Specifics
Return postage will be paid by: Buyer
Returns Accepted: Returns Accepted
After receiving the item, your buyer should cancel the purchase within: 60 days
Return policy details:
EAN: 9781493218325
UPC: 9781493218325
ISBN: 9781493218325
MPN: N/A
Book Title: Test-Driven Development with ABAP Objects by Schwa
Item Height: 4.1 cm
Item Length: 23.4 cm
Item Weight: 1.25 kg
Item Width: 18.5 cm
Publication Name: Test-Driven Development with Abap Objects
Format: Hardcover
Language: English
Publisher: SAP Press
Subject: Computer Science
Publication Year: 2019
Type: Textbook
Author: Winfried Schwarzmann
Number of Pages: 594 Pages