SlideShare a Scribd company logo
1 of 19
Download to read offline
ABAP Unit and TDD
Hendrik Neumann
SAP Inside Track Hamburg 2013
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Agenda
 Unit Testing & ABAP Unit
 Test Driven Development (TDD)
 Live Coding
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Unit Testing
Unit Testing is a method by which
individual units of source code are tested
to determine if they are fit to use.
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
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.
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
xUnit Framework
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
setup( )  test_method( )  teardown( )
assert_*( ) – methods
xUnit Framework
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
setup( )  test_method( )  teardown( )
test_method( )
test_method( )
test_method( )
test_method( )
test_method( )
test_method( )
ABAP Unit
SAP‘s xUnit implemenation
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
ABAP Unit
 Local test classes for global dev. artifacts
 In Reports, Function Modules and Classes
 Not acitve on production systems
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
ABAP Unit
 Tools integration:
 ABAP Workbench
 Code Inspector Integration
 ABAP Unit Browser
 ABAP Test Cockpit (ATC)
 ABAP in Eclipse
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Test Driven Development
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Test Driven Development
 Never
 After you wrote your code
 Before you write your code
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
When do you write your Unit Tests?
Test Driven Development
Test Driven Development
Test 1st
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Test Driven Development
Test Cycle:
red  green  refactor
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
TDD Cycle
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Write a test that expresses how you’ll
use the code and what you need it to do.
TDD Cycle
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Write enough code to get the
test to pass, but no more.
TDD Cycle
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Clean up the code to remove
redundancy and improve the design.
TDD Cycle
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
Code Kata: Roman Numerals
Copyright © 2013 evivax IT Consulting GmbH
Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
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?
Copyright © 2013 evivax IT Consulting
GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de

More Related Content

What's hot

What Is Enterprise Resource Planning System
What Is Enterprise Resource Planning SystemWhat Is Enterprise Resource Planning System
What Is Enterprise Resource Planning SystemKhawaja Naveed
 
Erp implementation transition strategies
Erp implementation transition strategiesErp implementation transition strategies
Erp implementation transition strategiesKavita Zinjurde
 
OpenText Archive Server on Azure
OpenText Archive Server on AzureOpenText Archive Server on Azure
OpenText Archive Server on AzureGary Jackson MBCS
 
Warehouse management system presentation
Warehouse management system presentationWarehouse management system presentation
Warehouse management system presentationNimish Arora
 
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...TPG PSLink - Integration of Financial and Project Data (Integration of Micros...
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...TPG The Project Group
 
SAP TM Webinar 7th May 2014
SAP TM Webinar 7th May 2014SAP TM Webinar 7th May 2014
SAP TM Webinar 7th May 2014Wise Men
 
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSascha Junkert
 
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloud
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die CloudBye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloud
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloudconfluent
 
Sap logistics and order fulfillment strategy
Sap logistics and order fulfillment strategySap logistics and order fulfillment strategy
Sap logistics and order fulfillment strategyAvi Shacham
 
What Is ERP And How To Go About It
What Is ERP And How To Go About ItWhat Is ERP And How To Go About It
What Is ERP And How To Go About ItNauman Majeed
 
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Virtual Forge
 
Concepts of cutover planning and management
Concepts of cutover planning and managementConcepts of cutover planning and management
Concepts of cutover planning and managementSanjay Choubey
 
Manufacturing execution system
Manufacturing execution system Manufacturing execution system
Manufacturing execution system Muzzamil Ahmed
 
Jd edward ppt by me
Jd edward ppt by meJd edward ppt by me
Jd edward ppt by meroma bora
 
SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?Thomas Demmler
 
Wms Overview
Wms OverviewWms Overview
Wms OverviewDCFaison
 
Warehouse management using rfid
Warehouse management using rfidWarehouse management using rfid
Warehouse management using rfidSaurav Suman
 

What's hot (20)

What Is Enterprise Resource Planning System
What Is Enterprise Resource Planning SystemWhat Is Enterprise Resource Planning System
What Is Enterprise Resource Planning System
 
Erp implementation transition strategies
Erp implementation transition strategiesErp implementation transition strategies
Erp implementation transition strategies
 
OpenText Archive Server on Azure
OpenText Archive Server on AzureOpenText Archive Server on Azure
OpenText Archive Server on Azure
 
Warehouse management system presentation
Warehouse management system presentationWarehouse management system presentation
Warehouse management system presentation
 
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...TPG PSLink - Integration of Financial and Project Data (Integration of Micros...
TPG PSLink - Integration of Financial and Project Data (Integration of Micros...
 
SAP TM Webinar 7th May 2014
SAP TM Webinar 7th May 2014SAP TM Webinar 7th May 2014
SAP TM Webinar 7th May 2014
 
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
 
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloud
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die CloudBye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloud
Bye Bye Batch, Hallo Events: Der Kafka-Weg von SIEMENS in die Cloud
 
Introduction to ERP Concept
Introduction to ERP ConceptIntroduction to ERP Concept
Introduction to ERP Concept
 
Sap logistics and order fulfillment strategy
Sap logistics and order fulfillment strategySap logistics and order fulfillment strategy
Sap logistics and order fulfillment strategy
 
What Is ERP And How To Go About It
What Is ERP And How To Go About ItWhat Is ERP And How To Go About It
What Is ERP And How To Go About It
 
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
 
Concepts of cutover planning and management
Concepts of cutover planning and managementConcepts of cutover planning and management
Concepts of cutover planning and management
 
Manufacturing execution system
Manufacturing execution system Manufacturing execution system
Manufacturing execution system
 
Warehouse Management
Warehouse ManagementWarehouse Management
Warehouse Management
 
Jd edward ppt by me
Jd edward ppt by meJd edward ppt by me
Jd edward ppt by me
 
Erp ppt
Erp pptErp ppt
Erp ppt
 
SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?
 
Wms Overview
Wms OverviewWms Overview
Wms Overview
 
Warehouse management using rfid
Warehouse management using rfidWarehouse management using rfid
Warehouse management using rfid
 

Viewers also liked

ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentHendrik Neumann
 
TDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionTDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionHendrik Neumann
 
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Virtual Forge
 
The best debugging tool - your brain
The best debugging tool - your brainThe best debugging tool - your brain
The best debugging tool - your brainChristian Drumm
 
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat
 
ABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat
 
ABAP T codes
ABAP T codesABAP T codes
ABAP T codesPavan Das
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxAlessandro Lavazzi
 

Viewers also liked (9)

ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
 
TDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionTDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 edition
 
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
 
The best debugging tool - your brain
The best debugging tool - your brainThe best debugging tool - your brain
The best debugging tool - your brain
 
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir Majer
 
ABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit Testing
 
ABAP T codes
ABAP T codesABAP T codes
ABAP T codes
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
 

Similar to ABAP Unit and TDD

Cimteq CableBuilder Go
Cimteq CableBuilder GoCimteq CableBuilder Go
Cimteq CableBuilder GoCimteq
 
Fact Sheet SpareParts 365 - english
Fact Sheet SpareParts 365 - englishFact Sheet SpareParts 365 - english
Fact Sheet SpareParts 365 - englishWolfgangMser
 
Software Engineering in the Continuous Age
Software Engineering in the Continuous AgeSoftware Engineering in the Continuous Age
Software Engineering in the Continuous AgeJens Pillgram-Larsen
 
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...European Collaboration Summit
 
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Rien van den Bosch
 
CHROMOS_industrial-EN 2022.pdf
CHROMOS_industrial-EN 2022.pdfCHROMOS_industrial-EN 2022.pdf
CHROMOS_industrial-EN 2022.pdfBernard Genoud
 
Andreas Zeitler (Vuframe): Digital Transformation in the Industry
Andreas Zeitler (Vuframe): Digital Transformation in the IndustryAndreas Zeitler (Vuframe): Digital Transformation in the Industry
Andreas Zeitler (Vuframe): Digital Transformation in the IndustryAugmentedWorldExpo
 
2023 Venture Electronics Catalog.pdf
2023 Venture Electronics Catalog.pdf2023 Venture Electronics Catalog.pdf
2023 Venture Electronics Catalog.pdfchenghao15
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSDevOps.com
 
ECS News Letter Issue #3
ECS News Letter Issue #3ECS News Letter Issue #3
ECS News Letter Issue #3ECS Singapore
 
FOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scriptsFOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scriptsOlimex Bulgaria
 
Zwcad+ 3rd party solution partner program
Zwcad+ 3rd party solution partner programZwcad+ 3rd party solution partner program
Zwcad+ 3rd party solution partner programVX
 
CraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubblCraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubblBernd Ruecker
 
Digital Transformation and Process Optimization in Manufacturing
Digital Transformation and Process Optimization in ManufacturingDigital Transformation and Process Optimization in Manufacturing
Digital Transformation and Process Optimization in ManufacturingBigML, Inc
 
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...What is cloud native and why should you care - Infracoders / DevOps / CloudNa...
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...Infralovers
 
Cadac Corporate Folder English
Cadac Corporate Folder EnglishCadac Corporate Folder English
Cadac Corporate Folder EnglishTauladan
 
Implementing R in the old economy
Implementing R in the old economyImplementing R in the old economy
Implementing R in the old economyeoda GmbH
 

Similar to ABAP Unit and TDD (20)

Cimteq CableBuilder Go
Cimteq CableBuilder GoCimteq CableBuilder Go
Cimteq CableBuilder Go
 
Fact Sheet SpareParts 365 - english
Fact Sheet SpareParts 365 - englishFact Sheet SpareParts 365 - english
Fact Sheet SpareParts 365 - english
 
Software Engineering in the Continuous Age
Software Engineering in the Continuous AgeSoftware Engineering in the Continuous Age
Software Engineering in the Continuous Age
 
ChemCAD 7
ChemCAD 7ChemCAD 7
ChemCAD 7
 
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...
[Marcos/Hanke] Out-of-the-box Intranet – How Berner Group Introduced the Digi...
 
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
 
CHROMOS_industrial-EN 2022.pdf
CHROMOS_industrial-EN 2022.pdfCHROMOS_industrial-EN 2022.pdf
CHROMOS_industrial-EN 2022.pdf
 
Inbox-Profile
Inbox-ProfileInbox-Profile
Inbox-Profile
 
Andreas Zeitler (Vuframe): Digital Transformation in the Industry
Andreas Zeitler (Vuframe): Digital Transformation in the IndustryAndreas Zeitler (Vuframe): Digital Transformation in the Industry
Andreas Zeitler (Vuframe): Digital Transformation in the Industry
 
2023 Venture Electronics Catalog.pdf
2023 Venture Electronics Catalog.pdf2023 Venture Electronics Catalog.pdf
2023 Venture Electronics Catalog.pdf
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
ECS News Letter Issue #3
ECS News Letter Issue #3ECS News Letter Issue #3
ECS News Letter Issue #3
 
FOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scriptsFOSDEM 2024 Electronic boards production automation with KiCAD scripts
FOSDEM 2024 Electronic boards production automation with KiCAD scripts
 
Zwcad+ 3rd party solution partner program
Zwcad+ 3rd party solution partner programZwcad+ 3rd party solution partner program
Zwcad+ 3rd party solution partner program
 
CraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubblCraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubbl
 
Digital Transformation and Process Optimization in Manufacturing
Digital Transformation and Process Optimization in ManufacturingDigital Transformation and Process Optimization in Manufacturing
Digital Transformation and Process Optimization in Manufacturing
 
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...What is cloud native and why should you care - Infracoders / DevOps / CloudNa...
What is cloud native and why should you care - Infracoders / DevOps / CloudNa...
 
Mpds4 brochure en
Mpds4 brochure enMpds4 brochure en
Mpds4 brochure en
 
Cadac Corporate Folder English
Cadac Corporate Folder EnglishCadac Corporate Folder English
Cadac Corporate Folder English
 
Implementing R in the old economy
Implementing R in the old economyImplementing R in the old economy
Implementing R in the old economy
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

ABAP Unit and TDD

  • 1. ABAP Unit and TDD Hendrik Neumann SAP Inside Track Hamburg 2013 Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 2. Agenda  Unit Testing & ABAP Unit  Test Driven Development (TDD)  Live Coding Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 3. Unit Testing Unit Testing is a method by which individual units of source code are tested to determine if they are fit to use. Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 4. 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. Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 5. xUnit Framework Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de setup( )  test_method( )  teardown( ) assert_*( ) – methods
  • 6. xUnit Framework Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de setup( )  test_method( )  teardown( ) test_method( ) test_method( ) test_method( ) test_method( ) test_method( ) test_method( )
  • 7. ABAP Unit SAP‘s xUnit implemenation Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 8. ABAP Unit  Local test classes for global dev. artifacts  In Reports, Function Modules and Classes  Not acitve on production systems Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 9. ABAP Unit  Tools integration:  ABAP Workbench  Code Inspector Integration  ABAP Unit Browser  ABAP Test Cockpit (ATC)  ABAP in Eclipse Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 10. Test Driven Development Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 11. Test Driven Development  Never  After you wrote your code  Before you write your code Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de When do you write your Unit Tests? Test Driven Development
  • 12. Test Driven Development Test 1st Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 13. Test Driven Development Test Cycle: red  green  refactor Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 14. TDD Cycle Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de Write a test that expresses how you’ll use the code and what you need it to do.
  • 15. TDD Cycle Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de Write enough code to get the test to pass, but no more.
  • 16. TDD Cycle Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de Clean up the code to remove redundancy and improve the design.
  • 17. TDD Cycle Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de
  • 18. Code Kata: Roman Numerals Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de 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.
  • 19. So Long, and Thanks for All the Fish Any Qs? Copyright © 2013 evivax IT Consulting GmbH Goebelstraße 21 | 64293 Darmstadt | Fon: 06151 - 506420 | e-mail: mail@evivax.de