Funktionstests   in SAP Assertations & Breakopints, ABAP Unit und eCATT                            … es geht auch einfach
Ariane 5 – Erstflug! • 290.000.000 € Schaden • Ursache: Arithmetischer Überlauf bei der Umwandlung einer 64-   Bit-Gleitko...
Agenda         Software Tests         ABAP-Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
Agenda         Software Tests         ABAP-Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
Problemstellung                      Eigenentwicklung                                                         Customizing ...
Testtools     Entwicklertest      Integrationstest     Systemtest       Akzeptanztest         •Assertations       •ABAP Un...
Entwicklertests       Entwicklertest      Integrationstest     Systemtest       Akzeptanztest           •Assertations     ...
Integrationstests           Entwicklertest      Integrationstest     Systemtest       Akzeptanztest               •Asserta...
Systemtests        Entwicklertest      Integrationstest     Systemtest       Akzeptanztest            •Assertations       ...
Akzeptanztest       Entwicklertest      Integrationstest     Systemtest       Akzeptanztest           •Assertations       ...
Agenda         Software Tests         ABAP Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
ABAP Checkpoints      Assertions              Breakpoints                    Logpoints   • ASSERT                  • BREAK...
Assertions     IF L_TEST EQ SPACE.        MESSAGE ‘ERROR‘ TYPE ‘X‘.     ENDIF.     ASSERT L_TEST NE SPACE.     ASSERT ID H...
Breakpoints     BREAK-POINT.     BREAK ‘USERNAME‘.     BREAK-POINT ID HUGO.                            … es geht auch einf...
Logpoints     LOG-POINT ID HUGO.                          … es geht auch einfach
Agenda         Software Tests         ABAP Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
Unit (Modul)  – komplexer Codeabschnitt  – definiertem Input / Aktion  – überprüfbare Ergebnisse / Effekte  Methode, Funkt...
ABAP UNIT Tests – ABAP – SAP Entwicklungsumgebung (SE80, SE38,SE24…) – Start aus Editor / ABAP UNIT Test Browser – automat...
Aufbau                                Testmethode                                     a         Testklasse 1              ...
Testklassen  – Lokale Klasse in ABAP-Programme - FOR TESTING  – Ausführbare Programme, Class-Pools,    Funktionsgruppen, M...
Testmethoden  – parameterlose Instanzmethode  – private (protected)  – Testen der Unit  – Auswertung und Protokollierung -...
Definition Testklasse    CLASS lcl_utest_count        "#AU Duration Short    DEFINITION FOR TESTING.      "#AU Risk_Level ...
Implementierung Testklasse    CLASS lcl_utest_count IMPLEMENTATION.    METHOD ut_select_1.     DATA: lr_test TYPE i.     P...
UNIT Test ausführen         SE38, SE24,…                                          700 EHP2                        … es geh...
Ergebnisse auswerten                       … es geht auch einfach
Live on System                 … es geht auch einfach
CL_AUNIT_ASSERT (CL_ABAP_UNIT_ASSERT)•   ASSERT_EQUALS•   ASSERT_DIFFERS•   ASSERT_BOUND•   ASSERT_NOT_BOUND••    ASSERT_I...
Duration und Risk_Level (Klasse)CLASS lcl_utest_count     "#AU Duration ShortDEFINITION FOR TESTING.   "#AU Risk_Level Cri...
Level und Quit (Methode)cl_aunit_assert=>assert_bound(    act         = lr_ref    msg         = No Reference returned    l...
Globale Testklassen                • häufig verwendete Tests                • Initialisieren Testdaten                    ...
Fixtures•   CLASS_SETUP•   SETUP•   Testmethode•   TEARDOWN•   CLASS_TEARDOWN                     … es geht auch einfach
Code Inspector – TX SCI                          … es geht auch einfach
Agenda         Software Tests         ABAP Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
SAP-Gui Scripting• Simuliert das Verhalten von Benutzern• Kann für Lasttests verwendet werden• VBS - Visual Basic Scripts ...
Skriptentwicklung• Aufzeichnung der Transaktion erzeugt VBS-  Script-File                           … es geht auch einfach
Agenda         Software Tests         ABAP Checkpoints         ABAP Unit         Gui Scripting         Testautomation mit ...
Mensch oder Maschine           Intelligenz/Kreativität           Finden von Workarounds           Hoher Personaleinsatz   ...
CATT vs. eCATT• eCATT ist eine Weiterentwicklung von CATT welches seit R/3 3.0  verfügbar ist   – Unterstützt alte GUI Tra...
eCATT - Mandantenfreigabe• Der Start von eCATT Testscripts kann je Mandant aktiviert werden     –   eCATT und CATT nicht e...
eCATT – Gui Scripting• Profilparameter sapgui/user_scripting ist auf TRUE zu setzen.   – Mit RZ11 oder RZ10               ...
eCATT – Gui Scripting• In den SAP GUI Optionen muss im Bereich Accessibility  & Scripting das Scripting aktiviert sein    ...
eCATT – Testobjekte                                     Testkonfiguration         Testdaten-Container      Wieder verwendb...
eCATT – Systemdaten• Kapselung der systemspezifischen Aspekte von den  Testskripts• Abbildung der Systeme erfolgt im Syste...
eCATT – Testskript                      Testskript                      Attribute         Import                  Importpa...
eCATT – Testskriptfolge     Testskript          Testskript               Testskript     (Create Partner)   (Create Activit...
eCATT – Testskriptfolge                  Testskript     Testskript   Testskript               Testskript                  ...
eCATT – Skripteditor Parameter                                                Kommando-                                   ...
eCATT – Skript Sprache      ABAP Objects                     Checks                  Script Control                     Cu...
eCATT – Skripteditor – Key Features•   Einfügen über Muster•   Automatische Parametererstellung•   Globale Suche•   Verwen...
eCATT – TestdatenTestdaten werden über Testkonfigurationen bereitgestelltErfassung erfolgt manuell oder über Textfile (Exc...
Test Workbench                                Test Paket             Anwender   Test Plan                                T...
Testdatencontainer• Externe Testdaten   – Keine Verwendung von strukturierten Parametern (Struktur, Tabelle)     möglich• ...
User in eCATT Tests• Verwendung unterschiedlicher „User“ in einem Testcript   – Kann im Testscript nicht direkt angegeben ...
Upcoming SlideShare
Loading in...5
×

Funktionstests in SAP

4,029

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,029
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×