sitNL 2015 Connecting the internet of things to predictive analysis (Flexso)
TDD in the ABAP world - sitNL 2013 edition
-
Upload
hendrik-neumann -
Category
Technology
-
view
834 -
download
1
description
Transcript of TDD in the ABAP world - sitNL 2013 edition
© 2013 evivax IT Consulting GmbH
TDD in the ABAP World Hendrik Neumann
#sitNL 2013
Agenda
(1) Unit Testing & ABAP Unit
(2) Test Driven Development (TDD)
(3) Live Coding
© 2013 evivax IT Consulting GmbH
Unit Testing & ABAP Unit
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
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
setup() test_method()
Clear up your mess..
Call object under test – e.g. a public method
with test data.
xUnit Framework
setup() test_method()
assert_*()–methods
Verify output of 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()
© 2013 evivax IT Consulting GmbH
ABAP Unit
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
© 2013 evivax IT Consulting GmbH
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
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.
© 2013 evivax IT Consulting GmbH
So Long, and Thanks for All the Fish
Any Qs?
© 2013 evivax IT Consulting GmbH
Green Bar Patterns
(hidden track)
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