SlideShare a Scribd company logo
TDD in the ABAP World
Hendrik Neumann

#sitNL 2013

© 2013 evivax IT Consulting GmbH
Agenda

(1) Unit Testing & ABAP Unit
(2) Test Driven Development (TDD)
(3) Live Coding
Unit Testing & ABAP Unit

© 2013 evivax IT Consulting GmbH
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
Methods

Function Modules

fit Function Groups
fiMoModule Pools
Function
Functn Reports
Unit Testing
aim:
Find bugs early
Write once, run often
Effective Tests must be automated
solution:
xUnit Frameworks
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()
Create object under test
common to all tests.
xUnit Framework
Call Clear up
object under test
– e.g. a mess.. method
public
your
with test data.

setup()  test_method()
xUnit Framework
assert_*()–methods

setup()  test_method()
Verify output of object
under test using xUnit‘s
assert methods
xUnit Framework
Clear up
your mess..

setup()  test_method()teardown()
xUnit Framework
test_method()
test_method()
test_method()
setup()  test_method()teardown()
test_method()
test_method()
test_method()
ABAP Unit

© 2013 evivax IT Consulting GmbH
ABAP Unit
SAP‘s xUnit implemenation
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

© 2013 evivax IT Consulting GmbH
Test Driven Development
When do you write your Unit Tests?
• Never
• After you wrote your code
• Before you write your code
Test Driven Development
When do you write your Unit Tests?
• Never
• After you wrote your code
• Before you write your code
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

Test
Write enough code to
get the test to pass,
but no more.

Code
Test Cycle

Test
Refactor

Clean up the code to
remove redundancy and
improve the design.

Code
Test Cycle

Test
Refactor

Code
Test Cycle

Refactor
Code

Test
Test Cycle

Code
Test

Refactor
Test Cycle

Test
Refactor

Code
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.
So Long, and Thanks for
All the Fish
Any Qs?

© 2013 evivax IT Consulting GmbH
Green Bar Patterns
(hidden track)

© 2013 evivax IT Consulting GmbH
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

More Related Content

PPTX
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
PDF
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
PDF
ABAPCodeRetreat - TDD Intro by Damir Majer
PPTX
Test Driven Development #sitFRA
PPT
Unit testing
PDF
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
PPS
Unit Testing
PPTX
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAPCodeRetreat - TDD Intro by Damir Majer
Test Driven Development #sitFRA
Unit testing
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Unit Testing
The Art of Testing Less without Sacrificing Quality @ ICSE 2015

What's hot (19)

PPTX
Practical unit testing in c & c++
PPTX
Unit tests benefits
PPTX
Unit Testing And Mocking
PPTX
Unit Testing in Action - C#, NUnit, and Moq
PPT
Unit Testing
PPTX
Unit testing
PPTX
An Introduction to Unit Testing
PPTX
Unit tests & TDD
PPTX
An Introduction to Unit Testing
PDF
PDF
Test Driven Development
PPT
Software Testing Tecniques
PPTX
PPTX
Pair programming and introduction to TDD
PPTX
Software Quality via Unit Testing
PPTX
Topic production code
PPTX
Testing the untestable
PPTX
Understanding Unit Testing
PDF
Unit and integration Testing
Practical unit testing in c & c++
Unit tests benefits
Unit Testing And Mocking
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing
Unit testing
An Introduction to Unit Testing
Unit tests & TDD
An Introduction to Unit Testing
Test Driven Development
Software Testing Tecniques
Pair programming and introduction to TDD
Software Quality via Unit Testing
Topic production code
Testing the untestable
Understanding Unit Testing
Unit and integration Testing
Ad

Viewers also liked (7)

PDF
ABAP Unit and TDD
PDF
ABAPCodeRetreat 23.7.2016 - Unit Testing
PPTX
The best debugging tool - your brain
PDF
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
PDF
ABAPCodeRetreat 23.7.2016 - Abap in Eclipse
PDF
ABAP T codes
PPTX
ABAPCodeRetreat 23.7.2016 - TDD
ABAP Unit and TDD
ABAPCodeRetreat 23.7.2016 - Unit Testing
The best debugging tool - your brain
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat 23.7.2016 - Abap in Eclipse
ABAP T codes
ABAPCodeRetreat 23.7.2016 - TDD
Ad

Similar to TDD in the ABAP world - sitNL 2013 edition (20)

PDF
ABAPCodeRetreat Frankfurt 2016 - TDD with ABAP
PDF
Unit Testing in R with Testthat - HRUG
PDF
Test Driven iOS Development (TDD)
PDF
TDD reloaded - JUGTAA 24 Ottobre 2012
PDF
EKON 23 Code_review_checklist
PDF
Test Driven Development
PPTX
NET Code Testing
PPTX
Binary Studio Academy: .NET Code Testing
PDF
Test-Driven Development Reference Card
PPTX
An Introduction To Software Development - Test Driven Development, Part 1
PPTX
Microsoft Fakes, Unit Testing the (almost) Untestable Code
PPTX
Unit Tests with Microsoft Fakes
PDF
TDD and Related Techniques for Non Developers (2012)
PPTX
Test-Driven Development
PPTX
Unit Testing and Tools
PPTX
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
PPTX
Unit Testing
PDF
Python and test
PDF
Getting started with Test Driven Development
PPT
Test Driven Development
ABAPCodeRetreat Frankfurt 2016 - TDD with ABAP
Unit Testing in R with Testthat - HRUG
Test Driven iOS Development (TDD)
TDD reloaded - JUGTAA 24 Ottobre 2012
EKON 23 Code_review_checklist
Test Driven Development
NET Code Testing
Binary Studio Academy: .NET Code Testing
Test-Driven Development Reference Card
An Introduction To Software Development - Test Driven Development, Part 1
Microsoft Fakes, Unit Testing the (almost) Untestable Code
Unit Tests with Microsoft Fakes
TDD and Related Techniques for Non Developers (2012)
Test-Driven Development
Unit Testing and Tools
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
Unit Testing
Python and test
Getting started with Test Driven Development
Test Driven Development

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Modernizing your data center with Dell and AMD
PDF
KodekX | Application Modernization Development
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
NewMind AI Monthly Chronicles - July 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Advanced methodologies resolving dimensionality complications for autism neur...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Understanding_Digital_Forensics_Presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Modernizing your data center with Dell and AMD
KodekX | Application Modernization Development
Chapter 3 Spatial Domain Image Processing.pdf

TDD in the ABAP world - sitNL 2013 edition