Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TDD mit ABAP Units

684 views

Published on

Folien, unseres Webinars zum Thema TDD mit ABAP Units

Published in: Business
  • Login to see the comments

TDD mit ABAP Units

  1. 1. TDD mit ABAP Units Webinar, 23.09.2016, 10:00 Uhr
  2. 2. Föß TDD mit ABAP Units Johann Fößleitner Senior Consultant at Cadaxo eMail: johann.foessleitner@cadaxo.com Twitter: @foessleitnerj Beratungsschwerpunkte • Konzeption & Management von SAP Entwicklungsprojekten • Qualitymanagement & Performanceoptimierung • Clean Code • SAP Fiori/SAPUI5
  3. 3. Domi TDD mit ABAP Units Domi Bigl Senior Consultant at Cadaxo eMail: dominik.bigl@cadaxo.com Twitter: @DomiBiglSAP Beratungsschwerpunkte • Konzeption & Management von Entwicklungsprojekten • Qualitymanagement & Performanceoptimierung • ABAP Units • SAP Fiori, SAP UI5
  4. 4. Cadaxo GmbH TDD mit ABAP Units
  5. 5. TDD mit ABAP Units  Tests  Unit Tests  ABAP Units + Demo  TDD  TDD mit ABAP Units – Demo Agenda
  6. 6. TDD mit ABAP Units Tests
  7. 7. 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
  8. 8. TDD mit ABAP Units Es geht ums Geld Fehlerhafter/schlechter Code kostet!
  9. 9. Testen, Testen, Testen TDD mit ABAP Units UI Tests Akzeptanztests Integration Tests Entwickler Tests
  10. 10. Der traditionelle Entwicklertest TDD mit ABAP Units  Traditioneller Test eines ABAP Entwicklers ◦ /H, Debugging ◦ SE80, SE24, SE37, SE38, Workbench … und dann Testen ◦ Testprogramme
  11. 11. Der traditionelle Entwicklertest TDD mit ABAP Units  Nachteile der traditionellen Vorgehensweise ◦ Zeitaufwendig ◦ Nicht reproduzierbar ◦ Unkoordiniert ◦ Unprofessionell
  12. 12. 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
  13. 13. TDD mit ABAP Units Unit Tests Umfrage
  14. 14. 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
  15. 15. 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
  16. 16. Unit Tests TDD mit ABAP Units  ABAP Units ◦ Sind erstmals mit 6.40 aufgetaucht ◦ 100% Integration in die ABAP Entwicklungsumgebungen ◦ Fortlaufende Weiterentwicklung durch SAP
  17. 17. Live Demo – ABAP Unit Test TDD mit ABAP Units Live Demo Wir erstellen einen ABAP Unit Test
  18. 18. Eigenschaften guter Unit Tests TDD mit ABAP Units Vertrauenswürdig Wartbar Lesbar
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. TDD mit ABAP Units TDD Umfrage
  24. 24. Traditionelles Projekt (Wasserfallmodell) TDD mit ABAP Units Requirem. Design Entwickeln Testen Bugfixing Support GoLive Planen, Analyse, Design, … Entwickeln T&B GoLive Support Testing & Bugfixing
  25. 25. 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
  26. 26. Agile Softwareentwicklung TDD mit ABAP Units Jetzt sind wir alle agil! früher jetzt
  27. 27. 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
  28. 28. Agile Werte / Agiles Manifest TDD mit ABAP Units Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotation Responding to change over following a plan Februar 2001: Robert C. Martin , Kent Beck, Ward Cunningham, Ron Jeffries, Martin Fowler …
  29. 29. Agile Softwareentwicklung TDD mit ABAP Units Scrum Kanban eXtreme Programming
  30. 30. TDD mit ABAP Units
  31. 31. TDD mit ABAP Units Was haben agile Projekte jetzt mit Unit Tests zu tun?
  32. 32. TDD Zyklus TDD mit ABAP Units Development Test
  33. 33. 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
  34. 34. 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
  35. 35. Traditioneller Entwicklungsprozess TDD mit ABAP Units Start Test erstellen Produktionscode implementieren Test ausführen  Traditioneller Entwicklungsprozess
  36. 36. Testgetriebener Entwicklungsprozess TDD mit ABAP Units Start Test erstellen Test ausführen Produktionscode implementieren Test ausführen Refactoring  Testgetriebener Entwicklungsprozess
  37. 37. 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
  38. 38. Live Demo – ABAP Unit Test TDD mit ABAP Units Live Demo Jetzt erleben wir TDD
  39. 39. 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
  40. 40. 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
  41. 41. 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)
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. TDD mit ABAP Units TDD üben mit Waza, Randori
  46. 46. 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.
  47. 47. 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 ◦ …
  48. 48. Test-Driven Development - Bücher TDD mit ABAP Units ISBN 978-0321146533 ISBN 978-3826697128
  49. 49. 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/
  50. 50. Nächste Webinare Clean Code in ABAP https://www.eventbrite.com/e/abap-750-releaseabhangige-anderungen-tickets-28011248398
  51. 51. 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
  52. 52. Vergangene Webinare http://www.cadaxo.com/blog/ TDD mit ABAP Units
  53. 53. If you want to stay in touch … https://twitter.com/domibiglsap https://www.linkedin.com/in/dominik-bigl-9b98b68b https://www.xing.com/profile/dominik_bigl dominik.bigl@cadaxo.com 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 johann.foessleitner@cadaxo.com
  54. 54. http://com.slideshare.net/cadaxogmbh https://twitter.com/cadaxo https://www.linkedin.com/company/cadaxo-gmbh http://www.youtube.com/CadaxoGmbH https://www.facebook.com/CadaxoGmbH https://www.xing.com/companies/cadaxogmbhCadaxo GmbH Stubenring 18/5a| 1010 Vienna, Austria office@cadaxo.com www.cadaxo.com

×