Your SlideShare is downloading. ×
  • Like
Funktionstests in SAP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Funktionstests in SAP

  • 3,825 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,825
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
19
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Funktionstests in SAP Assertations & Breakopints, ABAP Unit und eCATT … es geht auch einfach
  • 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. Agenda Software Tests ABAP-Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 4. Agenda Software Tests ABAP-Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 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. Testtools Entwicklertest Integrationstest Systemtest Akzeptanztest •Assertations •ABAP Unit •eCATT •Breakpoints •Gui Scripting •ABAP Unit •eCATT •eCATT … es geht auch einfach
  • 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. 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. 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. 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. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 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. 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. Breakpoints BREAK-POINT. BREAK ‘USERNAME‘. BREAK-POINT ID HUGO. … es geht auch einfach
  • 15. Logpoints LOG-POINT ID HUGO. … es geht auch einfach
  • 16. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 17. Unit (Modul) – komplexer Codeabschnitt – definiertem Input / Aktion – überprüfbare Ergebnisse / Effekte Methode, Funktionsbaustein, Forms, Reports,… … es geht auch einfach
  • 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. Aufbau Testmethode a Testklasse 1 Testmethode Unit b Testmethode Testklasse 2 a … es geht auch einfach
  • 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. Testmethoden – parameterlose Instanzmethode – private (protected) – Testen der Unit – Auswertung und Protokollierung - CL_AUNIT_ASSERT … es geht auch einfach
  • 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. 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. UNIT Test ausführen SE38, SE24,… 700 EHP2 … es geht auch einfach
  • 25. Ergebnisse auswerten … es geht auch einfach
  • 26. Live on System … es geht auch einfach
  • 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. 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. 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. Globale Testklassen • häufig verwendete Tests • Initialisieren Testdaten … es geht auch einfach
  • 31. Fixtures• CLASS_SETUP• SETUP• Testmethode• TEARDOWN• CLASS_TEARDOWN … es geht auch einfach
  • 32. Code Inspector – TX SCI … es geht auch einfach
  • 33. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 34. SAP-Gui Scripting• Simuliert das Verhalten von Benutzern• Kann für Lasttests verwendet werden• VBS - Visual Basic Scripts … es geht auch einfach
  • 35. Skriptentwicklung• Aufzeichnung der Transaktion erzeugt VBS- Script-File … es geht auch einfach
  • 36. Agenda Software Tests ABAP Checkpoints ABAP Unit Gui Scripting Testautomation mit eCATT … es geht auch einfach
  • 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. 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. 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. eCATT – Gui Scripting• Profilparameter sapgui/user_scripting ist auf TRUE zu setzen. – Mit RZ11 oder RZ10 … es geht auch einfach
  • 41. eCATT – Gui Scripting• In den SAP GUI Optionen muss im Bereich Accessibility & Scripting das Scripting aktiviert sein … es geht auch einfach
  • 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. 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. eCATT – Testskript Testskript Attribute Import Importparameter Export Exportparameter Lokale Variablen Skript-Kommandos … es geht auch einfach
  • 45. eCATT – Testskriptfolge Testskript Testskript Testskript (Create Partner) (Create Activity) (Check Data) … es geht auch einfach
  • 46. eCATT – Testskriptfolge Testskript Testskript Testskript Testskript … es geht auch einfach
  • 47. eCATT – Skripteditor Parameter Kommando- schnittstelleSkriptbefehle … es geht auch einfach
  • 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. eCATT – Skripteditor – Key Features• Einfügen über Muster• Automatische Parametererstellung• Globale Suche• Verwendungsnachweise• Debugging … es geht auch einfach
  • 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. 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. 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. 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