Foreword Preface Continuous Improvements Agile Methods Target Groups and Prerequisites Structure of the Book Information Boxes Limitations Acknowledgments Introduction Sustainability: Development and Maintenance with a Test Infrastructure Agility: Practices of Agile Software Engineering Efficiency: Compliance with Design Principles Effectivity: Communication with Diagrams Summary Building a Test Infrastructure The Sample Application Master Data Management User Interface Backend Summary Code-Based Test Improvement Introduction to the Test Code General Clean Code Principles Test-Oriented Clean Code Principles Summary Design-Based Test Improvement Base Classes of Test Classes Usage of Help Classes by Test Classes Summary Robust Integration Test Improvement Process Independence of Test Methods Repeatability of Test Methods Summary Minimizing Dependencies Simplification of Use Segregation of Use Independence of Creations Independence of Extensions Summary Isolated Component Test Transforming the Integration Test Scaling with a Test Language Test-Driven Development Liskov Substitution Principle Summary Redesign with Unit Tests Object-Oriented API for Entities Highlighting Changes as an Independent Component Tests for the Highlight Changes Class Summary Test-Oriented ABAP Design Designing Methods Rules for Implementing Methods Rules for Method Signatures Summary Designing Classes Creation of an Object by Its Class Creation of an Object by a Factory Class Types of Dependencies between Classes Interfaces of a Class Levels of Abstraction within a Class Catalog Design Pattern Cohesion Summary Designing Packages Package Concept Product Packages Test Packages Summary Test Cases Test Design Test Pyramid Test Coverage Summary Test Doubles Advantages of Test Doubles Specifying Test Doubles Designing Test Doubles Injecting Test Doubles Summary Global Test Doubles Test Double for a Method Test Double for Two Methods Method Doubles and Their Combinations Globalizing Test Doubles Designing Global Test Doubles Adapting the Design of Global Test Doubles Summary Test Classes ABAP Unit Test Framework Local Test Classes Design Patterns for Test Classes Test Class Hierarchies Global Test Classes Summary Test Data Test Data Container Test Data Objects Summary Test Infrastructures Components of Test Infrastructures Application Scenarios for a Global Test Infrastructure Development Processes Using a Test Infrastructure Summary Agile Development of a New Application Preparation for Test-Driven Development Specification of the Sample Application Architecture and Design of the Sample Application Test Strategy for the Sample Application Skeleton of the Sample Application Summary Test-Driven Development Acceptance Test-Driven Development Component Test-Driven Development Unit Test-Driven Development Completion and Improvement of the First Acceptance Test Extension of the Acceptance Test Suite Summary Agile Methodology Scrum Artifacts Roles Meetings Characteristics Summary Agile Software Engineering Refactoring Test-Driven Development Pair Programming Walking Skeleton Shared Code Ownership Continuous Integration Summary Lean Development Model Basics Implementing Lean Principles with Agile Software Engineering Test Infrastructure Summary Team Development Sustainable Learning Learning Gaps Agile Coaching Network for Agile Coaching Summary Backlog Development Design Thinking User Story Mapping Summary Product Development Sustainable Development Development Strategies for Legacy Code Development Strategies for New Code Summary Test-Oriented ABAP Tools ABAP Unit CL_ABAP_UNIT_ASSERT Class Execution of Tests Development Objects Summary ABAP Development Tools Introduction Test-Driven Development with ABAP Development Tools Summary ABAP Tools for Test Isolation Sample Class Open SQL Test Double Framework Test Seams ABAP Test Double Framework Summary Appendices Naming Conventions for ABAP Code Bibliography The Author Index.
Test-Driven Development with ABAP Objects