tdd mit abap units
TRANSCRIPT
![Page 1: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/1.jpg)
TDD mit ABAP UnitsWebinar, 23.09.2016, 10:00 Uhr
![Page 2: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/2.jpg)
Föß TDD mit ABAP Units
Johann FößleitnerSenior Consultant at CadaxoeMail: [email protected]: @foessleitnerj
Beratungsschwerpunkte• Konzeption & Management von SAP
Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• Clean Code• SAP Fiori/SAPUI5
![Page 3: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/3.jpg)
Domi TDD mit ABAP Units
Domi BiglSenior Consultant at CadaxoeMail: [email protected]: @DomiBiglSAP
Beratungsschwerpunkte• Konzeption & Management von Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• ABAP Units• SAP Fiori, SAP UI5
![Page 4: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/4.jpg)
Cadaxo GmbH TDD mit ABAP Units
![Page 5: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/5.jpg)
TDD mit ABAP Units
TestsUnit TestsABAP Units + DemoTDDTDD mit ABAP Units – Demo
Agenda
![Page 6: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/6.jpg)
TDD mit ABAP Units
Tests
![Page 7: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/7.jpg)
TDD mit ABAP Units
4. Juni 1996
Explosion Ariane 5◦ 36,7 Sekunden nach dem Start◦ Ursache
Arithmetischer Überlauf bei der Umwandlung einer 64-Bit-Gleitkomma-Zahl in eine 16-Bit-Ganzzahl – der Wert der horizontalen Geschwindigkeit.
Lenksystem brach zusammen und löste eine Selbstzerstörung aus
◦ Hintergrund Software stammt von Ariane 4. Ariane 5 flog
jedoch schneller Schaden ca. 500 Millionen Dollar für Rakete und 4
Satelliten◦ https://www.youtube.com/watch?v=PK_yguLapgA
![Page 8: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/8.jpg)
TDD mit ABAP Units
Es geht ums Geld
Fehlerhafter/schlechter Code kostet!
![Page 9: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/9.jpg)
Testen, Testen, Testen TDD mit ABAP Units
UI Tests
Akzeptanztests
Integration Tests
Entwickler Tests
![Page 10: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/10.jpg)
Der traditionelle Entwicklertest TDD mit ABAP Units
Traditioneller Test eines ABAP Entwicklers◦ /H, Debugging◦ SE80, SE24, SE37, SE38, Workbench … und dann Testen◦ Testprogramme
![Page 11: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/11.jpg)
Der traditionelle Entwicklertest TDD mit ABAP Units
Nachteile der traditionellen Vorgehensweise◦ Zeitaufwendig◦ Nicht reproduzierbar◦ Unkoordiniert◦ Unprofessionell
![Page 12: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/12.jpg)
Der professionelle Entwickler TDD mit ABAP Units
Ein professioneller Entwickler◦ Sorgt dafür, dass nur funktionierende bzw. ordentlich
getestete Software an die Testteams übergeben wird
![Page 13: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/13.jpg)
TDD mit ABAP Units
Unit TestsUmfrage
![Page 14: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/14.jpg)
Unit Tests TDD mit ABAP Units
Unit Tests bzw. xUnit Frameworks◦ Mit Unit Tests werden einzelne Units (Methoden,
Funktionbausteine) automatisiert getestet◦ Ziel der Unit Tests ist die Isolation aller Parts eines
Programmes und die Prüfung ob alles ordnungsgemäß läuft
![Page 15: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/15.jpg)
Unit Tests TDD mit ABAP Units
Ziel von Unit Tests◦ Probleme/Bugs im Developmentprozess so früh wie
möglich entdecken◦ Probleme/Bugs nach Upgrades etc. rasch entdecken◦ Reduktion langer Debugging Sessions◦ Reduziert die „Hemmschwelle“ schlechtes Coding zu
optmieren -> Clean Code!
ABAP Unit
![Page 16: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/16.jpg)
Unit Tests TDD mit ABAP Units
ABAP Units◦ Sind erstmals mit 6.40 aufgetaucht◦ 100% Integration in die ABAP Entwicklungsumgebungen◦ Fortlaufende Weiterentwicklung durch SAP
![Page 17: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/17.jpg)
Live Demo – ABAP Unit Test TDD mit ABAP Units
Live DemoWir erstellen einen ABAP Unit Test
![Page 18: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/18.jpg)
Eigenschaften guter Unit Tests TDD mit ABAP Units
Vertrauenswürdig
Wartbar
Lesbar
![Page 19: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/19.jpg)
Lesbare Tests
Lesbare Tests◦ Unlesbare Tests sind (fast) völlig
wertlos◦ Tests werden von anderen Entwicklern
gelesen◦ Überlegte Namensgebung von Unit Tests,
Variablen, … ◦ Clean Code
TDD mit ABAP Units
ISBN 978-3-8266-5548-7
![Page 20: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/20.jpg)
Wartbare Tests
Wartbare Tests◦ Unwartbare Tests sind ein Albtraum, können Projekte
negativ beeinflussen◦ Entwickler werden Tests, deren Anpassungen zu lange
dauern, einfach nicht mehr warten bzw. aktualisieren◦ Keine Logik in Unit Tests aufnehmen
Ein IF oder CASE deutet schon auf Logik hin
TDD mit ABAP Units
![Page 21: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/21.jpg)
Vertrauenswürdige Tests
Vertrauenswürdige Tests◦ Ein Test ist dann vertrauenswürdig, wenn er uns das
Gefühlt gibt zu wissen was vor sich geht
TDD mit ABAP Units
![Page 22: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/22.jpg)
Unit Tests TDD mit ABAP Units
Unit Tests – FIRST Prinzip◦ Fast – Tests sollen schnell sein◦ Independent – Tests sollen nicht von einander abhängen◦ Repeatable – Jede Umgebung (Dev, QA, Prod, … )◦ Self-Validating – der Test wird bestanden oder er scheitert◦ Timely – Tests müssen rechtzeitig geschrieben werden
![Page 23: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/23.jpg)
TDD mit ABAP Units
TDDUmfrage
![Page 24: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/24.jpg)
Traditionelles Projekt (Wasserfallmodell) TDD mit ABAP Units
Requirem.Design
EntwickelnTesten
Bugfixing
SupportGoLive
Planen, Analyse, Design, … Entwickeln T&B GoLive Support
Testing & Bugfixing
![Page 25: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/25.jpg)
Wasserfallmodell
Probleme des Wasserfallmodells◦ Auf neue bzw. geänderte Anforderungen kann nur
schlechte oder gar nicht reagiert werden◦ Phasen können oft nicht so klar getrennt werden◦ Rückschritte zur vorigen Phase oft nicht vermeidbar◦ Fehler werden unter Umständen erst spät erkannt und
können nur durch großen Aufwand behoben werden
TDD mit ABAP Units
![Page 26: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/26.jpg)
Agile Softwareentwicklung TDD mit ABAP Units
Jetzt sind wir alle agil!
früher jetzt
![Page 27: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/27.jpg)
Agile Softwareentwicklung
Eigenschaften von agiler Softwareentwicklung◦ Anforderung sind unvollständig oder ändern sich◦ Iteratives Vorgehen, inkrementelle Entwicklung◦ Regelmäßige Reflexion◦ Frühzeitige Ergebnisse◦ Regelmäßiges Testen
TDD mit ABAP Units
![Page 28: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/28.jpg)
Agile Werte / Agiles Manifest TDD mit ABAP Units
Individuals and interactionsover processes and tools
Working softwareover comprehensive documentation
Customer collaborationover contract negotation
Responding to changeover following a plan
Februar 2001: Robert C. Martin , Kent Beck, Ward Cunningham, Ron Jeffries, Martin Fowler …
![Page 29: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/29.jpg)
Agile Softwareentwicklung TDD mit ABAP Units
Scrum
Kanban
eXtreme Programming
![Page 30: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/30.jpg)
TDD mit ABAP Units
![Page 31: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/31.jpg)
TDD mit ABAP Units
Was haben agile Projekte jetzt mit Unit Tests zu tun?
![Page 32: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/32.jpg)
TDD Zyklus TDD mit ABAP Units
Development Test
![Page 33: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/33.jpg)
TDD Zyklus TDD mit ABAP Units
Test Development
Refactoring
Unit Test erstellen Vergewissere dich, dass
der Test fehlschlägt
Entwickle soviel Code, dass der Test nicht mehr fehlschlägt
Code optimieren
![Page 34: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/34.jpg)
TDD – Test-driven development
TDD – Test-driven development◦ Bei TDD geht es ganz einfach darum, dass
automatisierte Tests vor der Code Implementierung erstellt werden.
◦ TDD ist ein wesentlicher Teil von Extreme Programming (XP)
◦ TDD setzt auf kurze Iterationszyklen zwischen Tests und Implementierung
TDD mit ABAP Units
![Page 35: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/35.jpg)
Traditioneller Entwicklungsprozess TDD mit ABAP Units
Start
Test erstellen
Produktionscode implementieren
Test ausführen
Traditioneller Entwicklungsprozess
![Page 36: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/36.jpg)
Testgetriebener Entwicklungsprozess TDD mit ABAP Units
Start
Test erstellen
Test ausführen
Produktionscode implementieren
Test ausführen
Refactoring
TestgetriebenerEntwicklungsprozess
![Page 37: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/37.jpg)
TDD mit ABAP UnitsRefactoring
Refactoring◦ Optimieren des Codings ohne die Funktionalität zu
ändern◦ Coding lesbarer gestalten, Code-Dupletten bereinigen,
Methode „verkleinern“, … ◦ Robert C. Martin sagt: Wir „massieren“ unseren Code◦ Clean Code
![Page 38: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/38.jpg)
Live Demo – ABAP Unit Test TDD mit ABAP Units
Live DemoJetzt erleben wir TDD
![Page 39: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/39.jpg)
TDD mit ABAP Units
Erhöht sich der Aufwand durch TDD/Unit Tests?◦ Stimmt nicht◦ TDD bzw. Unit Tests verändern nur unsere Tests, die wir
– hoffentlich – auch bisher schon alle machen
![Page 40: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/40.jpg)
TDD mit ABAP Units
Unit Tests „verrotten“ mit der Zeit◦ Stimmt nicht!◦ Unit Tests sind Bestandteil der Entwicklungen, es liegt
ans diese aktuell zu halten
![Page 41: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/41.jpg)
TDD mit ABAP Units
Unit Tests sind in ABAP nicht sinnvoll einsetzbar◦ Stimmt nicht!◦ Wenn wir nach modernen Standards entwickeln (Clean
Code, OO, Entwurfsmuster, .. ), können Unit Tests wunderbar im ABAP Umfeld eingesetzt werden
◦ DB Zugriffe, WebServices Calls, … können beispielsweise über Interfaces abgebildet werden und damit durch Mockups ersetzt werden (trotzdem, DB Interaktionen sind natürlich ein Problem)
![Page 42: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/42.jpg)
TDD mit ABAP Units
Unit Tests sind in ABAP nicht sinnvoll einsetzbar◦ Stimmt nicht!◦ Wenn wir nach modernen Standards entwickeln (Clean
Code, OO, Entwurfsmuster, .. ), können Unit Tests wunderbar im ABAP Umfeld eingesetzt werden
![Page 43: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/43.jpg)
TDD mit ABAP Units
Bei User Interface, DB Zugriffen unbrauchbar◦ Stimmt nicht!◦ DB Zugriffe, WebServices Calls, … können
beispielsweise über Interfaces abgebildet werden und damit durch Mockups ersetzt werden trotzdem, DB Interaktionen sind natürlich ein Problem aber ….
◦ ABAP 7.50 - TEST-SEAM & TEST-INJECTION
![Page 44: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/44.jpg)
TDD mit ABAP Units
Kunden sind skeptisch (höhere Aufwände, … )◦ Unsere Kunden wollen sauberen, funktionierenden und
wartbaren Code. - Unit Tests gewährleisten dies◦ Es liegt an uns, dem Fachbereich bzw. den Kunden die
Vorteile aufzuzeigen und durch bessere Softwarequalität auch zu beweisen
![Page 45: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/45.jpg)
TDD mit ABAP Units
TDD üben mit Waza, Randori
![Page 46: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/46.jpg)
Waza – Paarweise üben TDD mit ABAP Units
Paarweise üben◦ Entwickler A schreibt einen ABAP Unit Test◦ Entwickler B implementiert die Methode, bis der Test
bestanden wird◦ Entwickler A kann für den Test z.B. auch min.
Geschwindigkeit oder den max. Speicherverbrauch vorgeben.
![Page 47: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/47.jpg)
Randoir – Übungen fürs Team TDD mit ABAP Units
Übungen für‘s Team◦ Editor wird an die Wand projiziert◦ Entwickler A schreibt einen ABAP Unit Test◦ Entwickler B implementiert die Methode, bis der Test
bestanden wird◦ Entwickler B schreibt einen ABAP Unit Test◦ Entwickler C implementiert die Methode, bis der Test
bestanden wird◦ …
![Page 48: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/48.jpg)
Test-Driven Development - Bücher TDD mit ABAP Units
ISBN 978-0321146533 ISBN 978-3826697128
![Page 49: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/49.jpg)
Weitere Infos TDD mit ABAP Units
Weitere Informationsquellen◦ https://sites.google.com/site/unclebobconsultingllc◦ https://de.wikipedia.org/wiki/Extreme_Programming◦ https://www.youtube.com/watch?v=QHnLmvDxGTY◦ http://clean-code-developer.de/
![Page 50: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/50.jpg)
Nächste Webinare Clean Code in ABAP
https://www.eventbrite.com/e/abap-750-releaseabhangige-anderungen-tickets-28011248398
![Page 51: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/51.jpg)
Workshop TDD mit ABAP Units
Intensiv Workshop◦Clean Code◦ABAP Units/TDD◦Ca. 3 - 4 Stunden◦Wien◦An einem Freitag◦Dezember 2016 oder Jänner 2017
?
![Page 52: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/52.jpg)
Vergangene Webinarehttp://www.cadaxo.com/blog/
TDD mit ABAP Units
![Page 53: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/53.jpg)
If you want to stay in touch …
https://twitter.com/domibiglsap https://www.linkedin.com/in/dominik-bigl-9b98b68b https://www.xing.com/profile/[email protected]
See you again!Thank you for participating!
https://twitter.com/foessleitnerj https://www.linkedin.com/in/johann-fößleitner-a9851b2a https://www.xing.com/profile/johann_foessleitner [email protected]
![Page 54: TDD mit ABAP Units](https://reader036.vdocument.in/reader036/viewer/2022062503/589a13021a28ab7a318b6f0d/html5/thumbnails/54.jpg)
http://com.slideshare.net/cadaxogmbh
https://twitter.com/cadaxo
https://www.linkedin.com/company/cadaxo-gmbh
http://www.youtube.com/CadaxoGmbHhttps://www.facebook.com/CadaxoGmbH
https://www.xing.com/companies/cadaxogmbhCadaxo GmbHStubenring 18/5a| 1010 Vienna, Austria