53
… es geht auch einfach Funktionste sts in SAP Assertations & Breakopints, ABAP Unit und eCATT

Funktionstests in SAP

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Funktionstests in SAP

… es geht auch einfach

Funktionstests in SAP

Assertations & Breakopints, ABAP Unit und eCATT

Page 2: Funktionstests in SAP

… es geht auch einfach

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)

Page 3: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP-CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 4: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP-CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 5: Funktionstests in SAP

… es geht auch einfach

Problemstellung

SAP Kunde Entwicklungssystem

Kunde Test/Qualitätssystem

Upgrade/Patches Transporte

EigenentwicklungAdd Ons Customizing

Kunde Produktivsystem

Transporte

• 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?

Page 6: Funktionstests in SAP

… es geht auch einfach

Testtools

Entwicklertest

•Assertations•Breakpoints•ABAP Unit•eCATT

Integrationstest

•ABAP Unit•Gui Scripting•eCATT

Systemtest

•eCATT

Akzeptanztest

Page 7: Funktionstests in SAP

… es geht auch einfach

Entwicklertests

Entwicklertest

•Assertations•Breakpoints•ABAP Unit•eCATT

Integrationstest

•ABAP Unit•Gui Scripting•eCATT

Systemtest

•eCATT

Akzeptanztest

• Algorithmus, Logic• Schnittstellen• Fehlerhandling

Page 8: Funktionstests in SAP

… es geht auch einfach

Integrationstests

Entwicklertest

•Assertations•Breakpoints•ABAP Unit•eCATT

Integrationstest

•ABAP Unit•Gui Scripting•eCATT

Systemtest

•eCATT

Akzeptanztest

• 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

Page 9: Funktionstests in SAP

… es geht auch einfach

Systemtests

Entwicklertest

•Assertations•Breakpoints•ABAP Unit•eCATT

Integrationstest

•ABAP Unit•Gui Scripting•eCATT

Systemtest

•eCATT

Akzeptanztest

• Vorwiegend Tests durch Fachbereich– Wurden die Anforderungen korrekt umgesetzt?

Page 10: Funktionstests in SAP

… es geht auch einfach

Akzeptanztest

Entwicklertest

•Assertations•Breakpoints•ABAP Unit•eCATT

Integrationstest

•ABAP Unit•Gui Scripting•eCATT

Systemtest

•eCATT

Akzeptanztest

• Wie Systemtests, jedoch mit Kundeneinbindung

Page 11: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 12: Funktionstests in SAP

… es geht auch einfach

Assertions• ASSERT• ASSERT ID … CONDITION

Breakpoints• BREAK-POINT• BREAK-POINT ID …

Logpoints

• LOG-POINT ID …

ABAP Checkpoints

Zentral mit der Transaktion SAAB aktivierbar/deaktivierbar

Page 13: Funktionstests in SAP

… es geht auch einfach

AssertionsIF L_TEST EQ SPACE. MESSAGE ‘ERROR‘ TYPE ‘X‘.ENDIF.

ASSERT L_TEST NE SPACE.

ASSERT ID HUGO L_TEST NE SPACE.

Page 14: Funktionstests in SAP

… es geht auch einfach

Breakpoints

BREAK-POINT.

BREAK-POINT ID HUGO.

BREAK ‘USERNAME‘.

Page 15: Funktionstests in SAP

… es geht auch einfach

Logpoints

LOG-POINT ID HUGO.

Page 16: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 17: Funktionstests in SAP

… es geht auch einfach

Unit (Modul)

– komplexer Codeabschnitt– definiertem Input / Aktion – überprüfbare Ergebnisse / Effekte

Methode, Funktionsbaustein, Forms, Reports,…

Page 18: Funktionstests in SAP

… es geht auch einfach

– ABAP– SAP Entwicklungsumgebung (SE80, SE38,SE24…)– Start aus Editor / ABAP UNIT Test Browser– automatisiert und massenfähig (CI)

ABAP UNIT Tests

Page 19: Funktionstests in SAP

… es geht auch einfach

Unit

Testklasse 1

Testmethode a

Testmethode b

Testklasse 2 Testmethode a

Aufbau

Page 20: Funktionstests in SAP

… es geht auch einfach

Testklassen

– Lokale Klasse in ABAP-Programme - FOR TESTING– Ausführbare Programme, Class-Pools,

Funktionsgruppen, Modul-Pools und Subroutinen-Pools

– Testmethoden - FOR TESTING

Page 21: Funktionstests in SAP

… es geht auch einfach

Testmethoden

– parameterlose Instanzmethode– private (protected)– Testen der Unit– Auswertung und Protokollierung -

CL_AUNIT_ASSERT

Page 22: Funktionstests in SAP

… es geht auch einfach

Definition TestklasseCLASS lcl_utest_count "#AU Duration ShortDEFINITION FOR TESTING. "#AU Risk_Level Critical

PRIVATE SECTION. METHODS: ut_select_1 FOR TESTING, ut_select_2 FOR TESTING

ENDCLASS.

Page 23: Funktionstests in SAP

… es geht auch einfach

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 = 1act = l_testmsg = 'There is a bug' ).

ENDMETHOD.

Implementierung Testklasse

Page 24: Funktionstests in SAP

… es geht auch einfach

UNIT Test ausführen

SE38, SE24,… 700 EHP2

Page 25: Funktionstests in SAP

… es geht auch einfach

Ergebnisse auswerten

Page 26: Funktionstests in SAP

… es geht auch einfach

Live on System

Page 27: Funktionstests in SAP

… es geht auch einfach

• ASSERT_EQUALS• ASSERT_DIFFERS• ASSERT_BOUND• ASSERT_NOT_BOUND• ASSERT_INITIAL• ASSERT_NOT_INITIAL• 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

CL_AUNIT_ASSERT (CL_ABAP_UNIT_ASSERT)

700 EHP2

Page 28: Funktionstests in SAP

… es geht auch einfach

CLASS lcl_utest_count "#AU Duration ShortDEFINITION FOR TESTING. "#AU Risk_Level Critica

CLASS lcl_utest_count DEFINITION FOR TESTING DURATION MEDIUM "700 EHP2 RISK LEVEL HARMLESS.

Duration und Risk_Level (Klasse)

Risk_Level• CRITICAL• DANGEROUS• HARMLESS

Duration• SHORT• MEDIUM• LONG

TX SAUNIT_CLIENT_SETUP

Page 29: Funktionstests in SAP

… es geht auch einfach

cl_aunit_assert=>assert_bound( act = lr_ref msg = 'No Reference returned' level = if_aunit_constants=>critical quit = if_aunit_constants=>method ).

Level und Quit (Methode)

Quit• NO• METHOD*• CLASS• PROGRAM

Level• TOLERABLE• CRITICAL*• FATAL

Page 30: Funktionstests in SAP

… es geht auch einfach

• häufig verwendete Tests• Initialisieren Testdaten

Globale Testklassen

Page 31: Funktionstests in SAP

… es geht auch einfach

Fixtures

• CLASS_SETUP• SETUP• Testmethode• TEARDOWN• CLASS_TEARDOWN

Page 32: Funktionstests in SAP

… es geht auch einfach

Code Inspector – TX SCI

Page 33: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 34: Funktionstests in SAP

… es geht auch einfach

SAP-Gui Scripting• Simuliert das Verhalten von Benutzern• Kann für Lasttests verwendet werden• VBS - Visual Basic Scripts

Page 35: Funktionstests in SAP

… es geht auch einfach

Skriptentwicklung

• Aufzeichnung der Transaktion erzeugt VBS-Script-File

Page 36: Funktionstests in SAP

… es geht auch einfach

Agenda

Software TestsABAP CheckpointsABAP UnitGui ScriptingTestautomation mit eCATT

Page 37: Funktionstests in SAP

… es geht auch einfach

Mensch oder MaschineIntelligenz/KreativitätFinden von WorkaroundsHoher PersonaleinsatzZeitaufwändigGeringe WiederverwendbarkeitGeringe Reproduzierbarkeit

Geringer PersonaleinsatzSchneller als manuelle TestsWiederverwendbarReproduzierbare FehlerMaschine ist dummSchulungsaufwand ToolsAufwand Testfallerstellung

Page 38: Funktionstests in SAP

… es geht auch einfach

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

Page 39: Funktionstests in SAP

… es geht auch einfach

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.

Page 40: Funktionstests in SAP

… es geht auch einfach

eCATT – Gui Scripting • Profilparameter sapgui/user_scripting ist auf TRUE zu setzen.

– Mit RZ11 oder RZ10

Page 41: Funktionstests in SAP

… es geht auch einfach

eCATT – Gui Scripting • In den SAP GUI Optionen muss im Bereich Accessibility

& Scripting das Scripting aktiviert sein

Page 42: Funktionstests in SAP

… es geht auch einfach

eCATT – Testobjekte

Testkonfiguration

TestskriptFolge von Kommandos für den Testablauf

Testdaten-ContainerWieder verwendbare Datensätze für die

Testausführung

Systemdaten-ContainerListe von Systemen, welche durch den Test

verwendet werden

Page 43: Funktionstests in SAP

… es geht auch einfach

eCATT – Systemdaten• Kapselung der systemspezifischen Aspekte von den

Testskripts• Abbildung der Systeme erfolgt im Systemdaten

Container

Logisches Ziel in den

Testskripts

RFC Destination

Page 44: Funktionstests in SAP

… es geht auch einfach

eCATT – Testskript

Testskript

Importparameter

Exportparameter

Lokale Variablen

Skript-Kommandos

AttributeImport

Export

Page 45: Funktionstests in SAP

… es geht auch einfach

eCATT – Testskriptfolge

Testskript(Create Activity)

Testskript(Create Partner)

Testskript(Check Data)

Page 46: Funktionstests in SAP

… es geht auch einfach

Testskript

eCATT – Testskriptfolge

TestskriptTestskript Testskript

Page 47: Funktionstests in SAP

… es geht auch einfach

eCATT – Skripteditor

Parameter

Skriptbefehle

Kommando-schnittstelle

Page 48: Funktionstests in SAP

… es geht auch einfach

eCATT – Skript Sprache ABAP Objects

•Objekte instanzieren•Objektmethoden aufrufen

•Attribute setzen/lesen/prüfen

Checks

•Variablen prüfen•Datenbankinhalt prüfen

•SAPGUI Felder prüfen

Script Control

•DO/ENDDO•IF/ELSE/ENDIF•WAIT•BREAK•MESSAGE

Customizing

•BCSET•RESTAB•SETTAB

Enterprise Services

•Webservices

Log

•Protokolleinträge

Parameters

•Lesen & Setzen von Parameterwerten

•Tabellenzeilen bearbeiten

Program Control

•ABAP/ENDABAP•Funktionsbausteine•RESCON?

Test Script Referenzen

•Referenz auf CATT•Referenz auf eCATT

Database

•Datenbankzugriffe

UI Control

•SAPGui klassisch•SAPGui Controls•Web Dynpro

eCATT Unterstützt nicht CRM Web UI – Integrierbar über externe Testtools! (z.B. QTB)

Page 49: Funktionstests in SAP

… es geht auch einfach

eCATT – Skripteditor – Key Features• Einfügen über Muster• Automatische Parametererstellung• Globale Suche• Verwendungsnachweise• Debugging

Page 50: Funktionstests in SAP

… es geht auch einfach

eCATT – TestdatenTestdaten werden über Testkonfigurationen bereitgestelltErfassung erfolgt manuell oder über Textfile (Excel) möglich

Testkonfiguration

Excel Filemanuell erfasst Testskript

Impo

rt P

aram

eter

Page 51: Funktionstests in SAP

… es geht auch einfach

Test Workbench

Test PlanTest Paket

Test Paket

Anwender

eCATT

• User führt Test durch• Overall Status ersichtlich

– User setzt Status für manuelle Tests– eCATT Testscripts setzen den Status automatisch

Page 52: Funktionstests in SAP

… es geht auch einfach

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

Page 53: Funktionstests in SAP

… es geht auch einfach

• 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

User in eCATT Tests