Funktionstests in SAP

4.941 Aufrufe

Veröffentlicht am

Der Foliensatz liefert eine Einführung in die SAP Themen ABAP Unit, Checkpoint-Groups und eCATT.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.941
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
269
Aktionen
Geteilt
0
Downloads
41
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Funktionstests in SAP

  1. 1. Funktionstests in SAP Assertations & Breakopints, ABAP Unit und eCATT … es geht auch einfach
  2. 2. Ariane 5 – Erstflug! • 290.000.000 € Schaden • Ursache: Arithmetischer Überlauf bei der Umwandlung einer 64- Bit-Gleitkomma-Zahl in eine 16-Bit-Ganzzahl • Für eine nicht mehr benötigte Softwarekomponente (Wurde für Ariane 4 für Flugbahnberechnung verwendet) … es geht auch einfach
  3. 3. Agenda Software Tests ABAP-Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  4. 4. Agenda Software Tests ABAP-Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  5. 5. Problemstellung Eigenentwicklung Customizing Add Ons Upgrade/Patches Transporte Transporte SAP Kunde Kunde Kunde Entwicklungssystem Test/Qualitätssystem Produktivsystem• Upgrades, Eigenentwicklungen, Customizing verändern laufend das System• Tests prüfen – Führen die Veränderungen zum gewünschten Systemverhalten? – Funktionieren Erweiterungen auch nach Patches oder Upgrades wie gewünscht? … es geht auch einfach
  6. 6. Testtools Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT … es geht auch einfach
  7. 7. Entwicklertests Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT• Algorithmus, Logic• Schnittstellen• Fehlerhandling … es geht auch einfach
  8. 8. Integrationstests Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT• Interaktion von Softwarekomponenten – In Kombination von Softwarekomponenten kann das System fehlerhaft reagieren• Schnittstellenfehler welche bei Entwicklertests nicht auftreten• Timing Probleme – Können bei Entwicklertests nicht erkannt werden• Regression Tests – Sicherstellung, dass neue Entwicklungen keinen negativen Einfluss auf bestehende Module haben … es geht auch einfach
  9. 9. Systemtests Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT• Vorwiegend Tests durch Fachbereich – Wurden die Anforderungen korrekt umgesetzt? … es geht auch einfach
  10. 10. Akzeptanztest Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT• Wie Systemtests, jedoch mit Kundeneinbindung … es geht auch einfach
  11. 11. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  12. 12. ABAP Checkpoints Assertions Breakpoints Logpoints • ASSERT • BREAK-POINT • ASSERT ID … CONDITION • BREAK-POINT ID … • LOG-POINT ID …Zentral mit der Transaktion SAAB aktivierbar/deaktivierbar … es geht auch einfach
  13. 13. Assertions IF L_TEST EQ SPACE. MESSAGE ‘ERROR‘ TYPE ‘X‘. ENDIF. ASSERT L_TEST NE SPACE. ASSERT ID HUGO L_TEST NE SPACE. … es geht auch einfach
  14. 14. Breakpoints BREAK-POINT. BREAK ‘USERNAME‘. BREAK-POINT ID HUGO. … es geht auch einfach
  15. 15. Logpoints LOG-POINT ID HUGO. … es geht auch einfach
  16. 16. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  17. 17. Unit (Modul) – komplexer Codeabschnitt – definiertem Input / Aktion – überprüfbare Ergebnisse / Effekte Methode, Funktionsbaustein, Forms, Reports,… … es geht auch einfach
  18. 18. ABAP UNIT Tests – ABAP – SAP Entwicklungsumgebung (SE80, SE38,SE24…) – Start aus Editor / ABAP UNIT Test Browser – automatisiert und massenfähig (CI) … es geht auch einfach
  19. 19. Aufbau Testmethode a Testklasse 1 Testmethode Unit b Testmethode Testklasse 2 a … es geht auch einfach
  20. 20. Testklassen – Lokale Klasse in ABAP-Programme - FOR TESTING – Ausführbare Programme, Class-Pools, Funktionsgruppen, Modul-Pools und Subroutinen- Pools – Testmethoden - FOR TESTING … es geht auch einfach
  21. 21. Testmethoden – parameterlose Instanzmethode – private (protected) – Testen der Unit – Auswertung und Protokollierung - CL_AUNIT_ASSERT … es geht auch einfach
  22. 22. Definition Testklasse CLASS lcl_utest_count "#AU Duration Short DEFINITION FOR TESTING. "#AU Risk_Level Critical PRIVATE SECTION. METHODS: ut_select_1 FOR TESTING, ut_select_2 FOR TESTING ENDCLASS. … es geht auch einfach
  23. 23. Implementierung Testklasse CLASS lcl_utest_count IMPLEMENTATION. METHOD ut_select_1. DATA: lr_test TYPE i. PERFORM do_someting USING A CHANGING l_test. cl_aunit_assert=>assert_equals( exp =1 act = l_test msg = There is a bug ). ENDMETHOD. … es geht auch einfach
  24. 24. UNIT Test ausführen SE38, SE24,… 700 EHP2 … es geht auch einfach
  25. 25. Ergebnisse auswerten … es geht auch einfach
  26. 26. Live on System … es geht auch einfach
  27. 27. CL_AUNIT_ASSERT (CL_ABAP_UNIT_ASSERT)• ASSERT_EQUALS• ASSERT_DIFFERS• ASSERT_BOUND• ASSERT_NOT_BOUND•• ASSERT_INITIAL ASSERT_NOT_INITIAL 700 EHP2• ASSERT_CHAR_CP• ASSERT_CHAR_NP• ASSERT_TEXT_MATCHES• ASSERT_TABLE_CONTAINS• ASSERT_NUMBER_BETWEEN• ASSERT_SUBRC• ASSERT_EQUALS_F (ASSERT_EQUALS_FLOAT)• ASSERT_THAT• FAIL• ABORT … es geht auch einfach
  28. 28. Duration und Risk_Level (Klasse)CLASS lcl_utest_count "#AU Duration ShortDEFINITION FOR TESTING. "#AU Risk_Level CriticaCLASS lcl_utest_count DEFINITION FOR TESTING DURATION MEDIUM "700 EHP2 RISK LEVEL HARMLESS. Duration Risk_Level • SHORT • CRITICAL TX • MEDIUM • DANGEROUS • LONG • HARMLESS SAUNIT_CLIENT_SETUP … es geht auch einfach
  29. 29. Level und Quit (Methode)cl_aunit_assert=>assert_bound( act = lr_ref msg = No Reference returned level = if_aunit_constants=>critical quit = if_aunit_constants=>method ). Level Quit • TOLERABLE • NO • CRITICAL* • METHOD* • FATAL • CLASS • PROGRAM … es geht auch einfach
  30. 30. Globale Testklassen • häufig verwendete Tests • Initialisieren Testdaten … es geht auch einfach
  31. 31. Fixtures• CLASS_SETUP• SETUP• Testmethode• TEARDOWN• CLASS_TEARDOWN … es geht auch einfach
  32. 32. Code Inspector – TX SCI … es geht auch einfach
  33. 33. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  34. 34. SAP-Gui Scripting• Simuliert das Verhalten von Benutzern• Kann für Lasttests verwendet werden• VBS - Visual Basic Scripts … es geht auch einfach
  35. 35. Skriptentwicklung• Aufzeichnung der Transaktion erzeugt VBS- Script-File … es geht auch einfach
  36. 36. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  37. 37. Mensch oder Maschine Intelligenz/Kreativität Finden von Workarounds Hoher Personaleinsatz Zeitaufwändig Geringe Wiederverwendbarkeit Geringe Reproduzierbarkeit Geringer Personaleinsatz Schneller als manuelle Tests Wiederverwendbar Reproduzierbare Fehler Maschine ist dumm Schulungsaufwand Tools Aufwand Testfallerstellung … es geht auch einfach
  38. 38. CATT vs. eCATT• eCATT ist eine Weiterentwicklung von CATT welches seit R/3 3.0 verfügbar ist – Unterstützt alte GUI Transaktionen, SAP GUI Controls, Web Services, Web Dynpros, …• CATT – Nur R/3 Standardtransaktionen verwendbar – keine externen Applikationen oder internetbasierte Anwendungen möglich – Keine neuen CATT Testscripts ab 6.40 – Keine Anpassung von CATT Testscripts ab 7.00 … es geht auch einfach
  39. 39. eCATT - Mandantenfreigabe• Der Start von eCATT Testscripts kann je Mandant aktiviert werden – eCATT und CATT nicht erlaubt – eCATT und CATT erlaubt – eCATT und CATT nur bei „Trusted RFC“ erlaubt – eCATT erlaubt, aber FUN/ABAP und CATT nicht erlaubt – eCATT erlaubt, aber FUN/ABAP und CATT nur bei „Trusted RFC“ erlaubt• Sollte in einem Produktivmandant deaktiviert sein. … es geht auch einfach
  40. 40. eCATT – Gui Scripting• Profilparameter sapgui/user_scripting ist auf TRUE zu setzen. – Mit RZ11 oder RZ10 … es geht auch einfach
  41. 41. eCATT – Gui Scripting• In den SAP GUI Optionen muss im Bereich Accessibility & Scripting das Scripting aktiviert sein … es geht auch einfach
  42. 42. eCATT – Testobjekte Testkonfiguration Testdaten-Container Wieder verwendbare Datensätze für die Testausführung Testskript Folge von Kommandos für den Testablauf Systemdaten-Container Liste von Systemen, welche durch den Test verwendet werden … es geht auch einfach
  43. 43. eCATT – Systemdaten• Kapselung der systemspezifischen Aspekte von den Testskripts• Abbildung der Systeme erfolgt im Systemdaten Container Logisches Ziel in den Testskripts RFC Destination … es geht auch einfach
  44. 44. eCATT – Testskript Testskript Attribute Import Importparameter Export Exportparameter Lokale Variablen Skript-Kommandos … es geht auch einfach
  45. 45. eCATT – Testskriptfolge Testskript Testskript Testskript (Create Partner) (Create Activity) (Check Data) … es geht auch einfach
  46. 46. eCATT – Testskriptfolge Testskript Testskript Testskript Testskript … es geht auch einfach
  47. 47. eCATT – Skripteditor Parameter Kommando- schnittstelleSkriptbefehle … es geht auch einfach
  48. 48. eCATT – Skript Sprache ABAP Objects Checks Script Control Customizing Enterprise Services •Objekte instanzieren •Variablen prüfen •DO/ENDDO •BCSET •Webservices •Objektmethoden •Datenbankinhalt •IF/ELSE/ENDIF •RESTAB aufrufen prüfen •WAIT •SETTAB •Attribute •SAPGUI Felder prüfen •BREAK setzen/lesen/prüfen •MESSAGE Test Script Log Parameters Program Control Database UI Control Referenzen •Protokolleinträge •Lesen & Setzen von •ABAP/ENDABAP •Referenz auf CATT •Datenbankzugriffe •SAPGui klassisch Parameterwerten •Funktionsbausteine •Referenz auf eCATT •SAPGui Controls •Tabellenzeilen •RESCON? •Web Dynpro bearbeiteneCATT Unterstützt nicht CRM Web UI – Integrierbar über externe Testtools! (z.B. QTB) … es geht auch einfach
  49. 49. eCATT – Skripteditor – Key Features• Einfügen über Muster• Automatische Parametererstellung• Globale Suche• Verwendungsnachweise• Debugging … es geht auch einfach
  50. 50. eCATT – TestdatenTestdaten werden über Testkonfigurationen bereitgestelltErfassung erfolgt manuell oder über Textfile (Excel)möglich Testkonfiguration Import Parameter Excel File manuell erfasst Testskript … es geht auch einfach
  51. 51. Test Workbench Test Paket Anwender Test Plan Test Paket eCATT• User führt Test durch• Overall Status ersichtlich – User setzt Status für manuelle Tests – eCATT Testscripts setzen den Status automatisch … es geht auch einfach
  52. 52. Testdatencontainer• Externe Testdaten – Keine Verwendung von strukturierten Parametern (Struktur, Tabelle) möglich• Externe Testdaten während der Ausführung – File muss vom Frontend erreichbar sein. Ebenfalls keine Verwendung von strukturierten Parametern möglich … es geht auch einfach
  53. 53. User in eCATT Tests• Verwendung unterschiedlicher „User“ in einem Testcript – Kann im Testscript nicht direkt angegeben werden. Test wird mit dem angemeldeten User vorgenommen. – Workaround über den Systemdatencontainer und einer eigenen RFC Verbindung je User möglich … es geht auch einfach

×