SlideShare ist ein Scribd-Unternehmen logo
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-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
Agenda


         Software Tests
         ABAP-Checkpoints
         ABAP Unit
         Gui Scripting
         Testautomation mit eCATT




                                    … es geht auch einfach
Agenda


         Software Tests
         ABAP-Checkpoints
         ABAP Unit
         Gui Scripting
         Testautomation mit eCATT




                                    … es geht auch einfach
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
Testtools

     Entwicklertest      Integrationstest     Systemtest       Akzeptanztest

         •Assertations       •ABAP Unit           •eCATT
         •Breakpoints        •Gui Scripting
         •ABAP Unit          •eCATT
         •eCATT




                                                    … es geht auch einfach
Entwicklertests

       Entwicklertest      Integrationstest     Systemtest       Akzeptanztest

           •Assertations       •ABAP Unit           •eCATT
           •Breakpoints        •Gui Scripting
           •ABAP Unit          •eCATT
           •eCATT




• Algorithmus, Logic
• Schnittstellen
• Fehlerhandling



                                                      … es geht auch einfach
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
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
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
Agenda


         Software Tests
         ABAP Checkpoints
         ABAP Unit
         Gui Scripting
         Testautomation mit eCATT




                                    … es geht auch einfach
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
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
Breakpoints
     BREAK-POINT.




     BREAK ‘USERNAME‘.




     BREAK-POINT ID HUGO.




                            … es geht auch einfach
Logpoints



     LOG-POINT ID HUGO.




                          … es geht auch einfach
Agenda


         Software Tests
         ABAP Checkpoints
         ABAP Unit
         Gui Scripting
         Testautomation mit eCATT




                                    … es geht auch einfach
Unit (Modul)


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

  Methode, Funktionsbaustein, Forms, Reports,…

                              … es geht auch einfach
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
Aufbau
                                Testmethode
                                     a
         Testklasse 1
                                Testmethode
  Unit                               b

                                Testmethode
         Testklasse 2
                                     a

                 … 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



                            … es geht auch einfach
Testmethoden

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



                             … es geht auch einfach
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
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
UNIT Test ausführen


         SE38, SE24,…
                                          700 EHP2




                        … es geht auch einfach
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_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
Duration und Risk_Level (Klasse)
CLASS lcl_utest_count     "#AU Duration Short
DEFINITION FOR TESTING.   "#AU Risk_Level Critica

CLASS 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
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
Globale Testklassen

                • häufig verwendete Tests
                • Initialisieren Testdaten




                              … es geht auch einfach
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 eCATT




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




                           … es geht auch einfach
Skriptentwicklung




• Aufzeichnung der Transaktion erzeugt VBS-
  Script-File


                           … es geht auch einfach
Agenda


         Software Tests
         ABAP Checkpoints
         ABAP Unit
         Gui Scripting
         Testautomation mit eCATT




                                    … es geht auch einfach
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
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
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
eCATT – Gui Scripting
• Profilparameter sapgui/user_scripting ist auf TRUE zu setzen.
   – Mit RZ11 oder RZ10




                                     … es geht auch einfach
eCATT – Gui Scripting
• In den SAP GUI Optionen muss im Bereich Accessibility
  & Scripting das Scripting aktiviert sein




                               … es geht auch einfach
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
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
eCATT – Testskript
                      Testskript
                      Attribute
         Import
                  Importparameter
                                               Export
                   Exportparameter

                   Lokale Variablen

                  Skript-Kommandos

                                   … es geht auch einfach
eCATT – Testskriptfolge



     Testskript          Testskript               Testskript
     (Create Partner)   (Create Activity)         (Check Data)




                                       … es geht auch einfach
eCATT – Testskriptfolge

                  Testskript




     Testskript   Testskript               Testskript




                               … es geht auch einfach
eCATT – Skripteditor



 Parameter



                                                Kommando-
                                                schnittstelle



Skriptbefehle




                       … es geht auch einfach
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
                          bearbeiten



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

                                                                                … es geht auch einfach
eCATT – Skripteditor – Key Features
•   Einfügen über Muster
•   Automatische Parametererstellung
•   Globale Suche
•   Verwendungsnachweise
•   Debugging




                               … es geht auch einfach
eCATT – Testdaten
Testdaten werden über Testkonfigurationen bereitgestellt
Erfassung erfolgt manuell oder über Textfile (Excel)
möglich
                         Testkonfiguration



                         Import Parameter
         Excel File
       manuell erfasst
                                            Testskript



                                              … es geht auch einfach
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
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
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

Weitere ähnliche Inhalte

PPTX
TDD mit ABAP Units
PPTX
Clean code in ABAP
PDF
Effizienz im Testen von SAP Anwendungen durch Testautomation
PPTX
Webinar - Boost your ABAP
PDF
Prüfen Sie Ihre ABAP SQL Abfragen auf SAP HANA Tauglichkeit
PDF
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
PPTX
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
PPTX
Webinar - ABAP 7.50 Releaseabhängige Änderungen
TDD mit ABAP Units
Clean code in ABAP
Effizienz im Testen von SAP Anwendungen durch Testautomation
Webinar - Boost your ABAP
Prüfen Sie Ihre ABAP SQL Abfragen auf SAP HANA Tauglichkeit
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
Webinar - ABAP 7.50 Releaseabhängige Änderungen

Was ist angesagt? (15)

PPTX
Webinar - SAP BOPF
PPTX
Webinar - ABAP Development Tools
PPTX
Webinar - Entwurfsmuster in ABAP
PPTX
Webinar ABAP 7.51 Releaseinformationen
PPTX
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
PDF
Webinar SAP/ABAP und Microsoft
PPTX
Webinar - ABAP Releasenotes 7.53/7.54
PPTX
Creasoft - Software QS
PPTX
W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
PPTX
.NET zu .NET Core
PPTX
Webinar ABAP Managed Database Procedures
PDF
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
PDF
PL SQL Unit Tests mit SQL Developer
PDF
Creasoft c-Day 2011 - Exploratives Testen
PPTX
Creasoft - Software QS Review
Webinar - SAP BOPF
Webinar - ABAP Development Tools
Webinar - Entwurfsmuster in ABAP
Webinar ABAP 7.51 Releaseinformationen
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Webinar SAP/ABAP und Microsoft
Webinar - ABAP Releasenotes 7.53/7.54
Creasoft - Software QS
W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
.NET zu .NET Core
Webinar ABAP Managed Database Procedures
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
PL SQL Unit Tests mit SQL Developer
Creasoft c-Day 2011 - Exploratives Testen
Creasoft - Software QS Review
Anzeige

Andere mochten auch (18)

PDF
Managmentaufgaben bei der Einführung von SAP
DOCX
Sap erp bietet vorteile
PDF
SQL Cockpit 3.1 - Overview
PPTX
CONCEPTOS BASICOS DE REDES E INTERNET
PPTX
Estudios socia
PDF
فن الالقاء
PDF
Taller de nómina
DOCX
Diario de camapo 1
PDF
The Next Economy
PDF
Farbräume und virtuelle Farben - Kurzvortrag (2015)
ODP
Los móviles
PPTX
Worcester police department interview questions
PDF
Copia de presntacion isamara1
PDF
Verantwortung Online-PR
PDF
Einführung Open Source ERP Systeme
PDF
Yahoo! Research - Return on Inspiration: New World Content Marketing
PDF
Return on Inspiration - New World Content Marketing
PPTX
Marktübersicht ERP Systeme
Managmentaufgaben bei der Einführung von SAP
Sap erp bietet vorteile
SQL Cockpit 3.1 - Overview
CONCEPTOS BASICOS DE REDES E INTERNET
Estudios socia
فن الالقاء
Taller de nómina
Diario de camapo 1
The Next Economy
Farbräume und virtuelle Farben - Kurzvortrag (2015)
Los móviles
Worcester police department interview questions
Copia de presntacion isamara1
Verantwortung Online-PR
Einführung Open Source ERP Systeme
Yahoo! Research - Return on Inspiration: New World Content Marketing
Return on Inspiration - New World Content Marketing
Marktübersicht ERP Systeme
Anzeige

Ähnlich wie Funktionstests in SAP (20)

PDF
Einführung Vorgehensmodelle und Agile Software Entwicklung
PDF
AdvancedTdd
PDF
Agiles Testing
PDF
Agiles Testen (German)
PDF
Die nächste Generation des Unit Testing
PDF
Zukunftssicheres RPA: Testing-Methoden und Praxisbeispiele
PDF
Testing untestable code - gearconf11
PDF
Erfolgsfaktoren für modellbasiertes Testen
PDF
Testing untestable code - Herbstcampus12
PDF
Unit testing mit Javascript
PDF
Test Management mit Visual Studio 2012
PDF
Testmanagement mit Visual Studio 2013
PDF
Softwarequalitätssicherung mit Continuous Integration Tools
PDF
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
PDF
Webanwendungen testen
PDF
Testen mit, durch und in Scrum
PDF
iOS Testautomation bei mobile.de
PPT
Testgetriebene Softwareentwicklung
PDF
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
PDF
Testing untestable code - DCHH
Einführung Vorgehensmodelle und Agile Software Entwicklung
AdvancedTdd
Agiles Testing
Agiles Testen (German)
Die nächste Generation des Unit Testing
Zukunftssicheres RPA: Testing-Methoden und Praxisbeispiele
Testing untestable code - gearconf11
Erfolgsfaktoren für modellbasiertes Testen
Testing untestable code - Herbstcampus12
Unit testing mit Javascript
Test Management mit Visual Studio 2012
Testmanagement mit Visual Studio 2013
Softwarequalitätssicherung mit Continuous Integration Tools
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Webanwendungen testen
Testen mit, durch und in Scrum
iOS Testautomation bei mobile.de
Testgetriebene Softwareentwicklung
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Testing untestable code - DCHH

Mehr von Cadaxo GmbH (9)

PPTX
Webinar Modern ABAP
PDF
Webinar - SAP Gateway
PPTX
Webinar - ABAP CDS Views
POTX
ABAP CodeRetreat 20.5.2017 Vienna - Refactoring
PPTX
SQL Cockpit - Releasenotes 3.0
PDF
Webinar ABAP 7.40 sp5/sp8 Releaseinformationen
PDF
Cadaxo SQL Cockpit 2.0 - Neue Features im Detail
PDF
Abap 7 02 new features - new string functions
PDF
Abap 7.02 new features - neue stringfunktionen
Webinar Modern ABAP
Webinar - SAP Gateway
Webinar - ABAP CDS Views
ABAP CodeRetreat 20.5.2017 Vienna - Refactoring
SQL Cockpit - Releasenotes 3.0
Webinar ABAP 7.40 sp5/sp8 Releaseinformationen
Cadaxo SQL Cockpit 2.0 - Neue Features im Detail
Abap 7 02 new features - new string functions
Abap 7.02 new features - neue stringfunktionen

Funktionstests in SAP

  • 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 Short DEFINITION FOR TESTING. "#AU Risk_Level Critica CLASS 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- schnittstelle Skriptbefehle … 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 bearbeiten eCATT 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 – Testdaten Testdaten werden über Testkonfigurationen bereitgestellt Erfassung 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