SlideShare a Scribd company logo
TDD – Test Driven Development
Hendrik Neumann
Agenda
(1) Unit Testing
(2) ABAP Unit
(3) Test Driven Development
Unit Testing
Unit Testing
Definition
Unit Testing
Unit Testing is a method by which
individual units of source code are
tested to determine if they are fit to
use.
Unit Testing
Unit Testing is a method by which
individual units are e.g.ource code
fittMethods of t Function Modules fit
Function Groups
fiMoModule Pools Function
Functn Reports
Methods
Function Groups
Unit Testing
aim:
Find bugs early
Write once, run often
Effective Tests must be automated
solution:
xUnit Frameworks
xUnit Framework
xUnit Framework
Definition
xUnit Framework
Provides an automated solution with no
need to write the same tests many times
and no need to remember what should be
the result of each test.
xUnit Framework
How does it work?
xUnit Framework
setup()
creates object under test
– used in all tests
xUnit Framework
setup()  test_method()
Clear up your
mess..
calls object under test
– e.g. a public method
with test data
xUnit Framework
setup()  test_method()
assert_*()–methods
verify the return value of
the object under test using
xUnit’s assert methods
xUnit Framework
setup()  test_method() teardown()
Clear up your
mess..
xUnit Framework
setup()  test_method() teardown()
test_method()
test_method()
test_method()
test_method()
test_method()
test_method()
ABAP Unit
ABAP Unit
SAP‘s xUnit implemenation
ABAP Unit
cl_abap_unit_assert=>assert_equals(
msg = 'Test msg'
act = act
exp = out->( )
).
assert_*()-Methods
ABAP Unit in ADT
ABAP Unit
Local test classes for global
development artifacts
In Reports, Function Modules and
Classes
Not acitve on production systems
ABAP Unit
• Tools integration:
–ABAP Workbench
–Code Inspector Integration
–ABAP Unit Browser
–ABAP Test Cockpit (ATC)
–ABAP in Eclipse
Test Driven Development
Test Driven Development
• Never
• After you wrote your code
• Before you write your code
When do you write your Unit Tests?
Test Driven Development
• Never
• After you wrote your code
• Before you write your code
When do you write your Unit Tests?
Test Driven Development
Test Driven Development
Test 1st
Test Cycle
Test
Write a test that expresses how you’ll use
the code and what you need it to do.
Test Cycle
Write enough code to get
the test to pass, but no
more.
Code
Test
Test Cycle
Code
Test
Refactor
Clean up the code to
remove redundancy and
improve the design.
Test Cycle
Code
Test
Refactor
Test Cycle
Code
Test
Refactor
Test Cycle
Code
Test
Refactor
Test Cycle
Code
Test
Refactor
Green Bar Patterns
Green Bar Patterns
Fake it till you make it
• Start with hardcoded results and wait
until tests force them to become real
Green Bar Patterns
Triangulate To Abstraction
• Make the code abstract only when you
have two or more examples
Green Bar Patterns
Obvious Implementation
• aka Don‘t be stupid
• If you really know the right way to
implement it, do it that way
Have FUN!
Backup
Code Kata: Roman Numerals
Rules:
• smaller number in front of a larger number  subtraction
• all else  addition
• put only one smaller number in front of a larger number
• ones, tens, hundreds and thousands are separate items
I The numeral one. II is two, III is three.
V The numeral 5. IV is 4, VI is 6, VII is 7, VIII is 8.
X The numeral 10. IX is 9, XI is 11, etc.
L The numeral 50. XL would be 40.
C
The numeral 100. C is short for the Latin word Centum,
but Century is eaysier to remember ;-)
D The numeral 500.
M The numeral 1000.

More Related Content

PDF
TDD in the ABAP world - sitNL 2013 edition
PDF
ABAPCodeRetreat - TDD Intro by Damir Majer
PPTX
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
PPTX
Test Driven Development #sitFRA
PPT
Unit testing
PPTX
Practical unit testing in c & c++
PPS
Unit Testing
PPTX
Unit tests benefits
TDD in the ABAP world - sitNL 2013 edition
ABAPCodeRetreat - TDD Intro by Damir Majer
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Test Driven Development #sitFRA
Unit testing
Practical unit testing in c & c++
Unit Testing
Unit tests benefits

What's hot (19)

PDF
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
PPTX
Testing JavaScript Applications
PPTX
Unit Testing in Action - C#, NUnit, and Moq
PPTX
JavaScript Unit Testing
PPT
Unit Testing
PPTX
Unit Testing And Mocking
PPTX
Unit testing
PPTX
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
PDF
03 test specification and execution
PPT
Simple Railroad Command Protocol
PPTX
Test automation
PPTX
Automation and Technical Debt
PPTX
Unit tests & TDD
PPT
Software Testing Tecniques
PPTX
Software Quality via Unit Testing
PPTX
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
ODP
Performance Regression Analysis: Accomplishments and Challenges
PPTX
Testing the untestable
PDF
Unit and integration Testing
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Testing JavaScript Applications
Unit Testing in Action - C#, NUnit, and Moq
JavaScript Unit Testing
Unit Testing
Unit Testing And Mocking
Unit testing
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
03 test specification and execution
Simple Railroad Command Protocol
Test automation
Automation and Technical Debt
Unit tests & TDD
Software Testing Tecniques
Software Quality via Unit Testing
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Performance Regression Analysis: Accomplishments and Challenges
Testing the untestable
Unit and integration Testing
Ad

Similar to ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development (20)

PDF
Unit Testing in R with Testthat - HRUG
PDF
Test Driven Development
PDF
Getting started with Test Driven Development
PPTX
Getting started with Test Driven Development - Ferdous Mahmud Shaon
PPTX
An Introduction To Software Development - Test Driven Development, Part 1
PPTX
An Introduction to Unit Testing
PDF
TDD Flow: The Mantra in Action
PPTX
Test-Driven Development
PPTX
SE2018_Lec 20_ Test-Driven Development (TDD)
PPTX
Pair programming and introduction to TDD
PDF
TDD Workshop UTN 2012
PDF
PDF
SE2_Lec 21_ TDD and Junit
PPS
Why Unit Testingl
PPS
Why Unit Testingl
PPS
Why unit testingl
PPTX
TDD Best Practices
PPTX
Unit testing with NUnit
PDF
TDD reloaded - JUGTAA 24 Ottobre 2012
PPTX
TDD talk
Unit Testing in R with Testthat - HRUG
Test Driven Development
Getting started with Test Driven Development
Getting started with Test Driven Development - Ferdous Mahmud Shaon
An Introduction To Software Development - Test Driven Development, Part 1
An Introduction to Unit Testing
TDD Flow: The Mantra in Action
Test-Driven Development
SE2018_Lec 20_ Test-Driven Development (TDD)
Pair programming and introduction to TDD
TDD Workshop UTN 2012
SE2_Lec 21_ TDD and Junit
Why Unit Testingl
Why Unit Testingl
Why unit testingl
TDD Best Practices
Unit testing with NUnit
TDD reloaded - JUGTAA 24 Ottobre 2012
TDD talk
Ad

More from Hendrik Neumann (6)

PDF
SAP Stammtisch Frankfurt PLUS 11.10.2017 - introduction
PDF
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
PDF
What the git? - SAP Inside Track Munich 2016
PDF
Fun with Mazes - sitNL 2015
PDF
Fun with Mazes
PDF
ABAP Unit and TDD
SAP Stammtisch Frankfurt PLUS 11.10.2017 - introduction
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
What the git? - SAP Inside Track Munich 2016
Fun with Mazes - sitNL 2015
Fun with Mazes
ABAP Unit and TDD

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Electronic commerce courselecture one. Pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
NewMind AI Monthly Chronicles - July 2025
Digital-Transformation-Roadmap-for-Companies.pptx
Understanding_Digital_Forensics_Presentation.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Bridging biosciences and deep learning for revolutionary discoveries: a compr...

ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development