Alexander Dorn
9. Mai 2014

Einsatz von ABAP Unit zur Steigerung der Entwicklungsqualität – Teil 2

abap unit report template

Im Rahmen einer Artikelserie erscheinen unter dem Thema Einsatz von ABAP Unit drei Beiträge zum effizienten Unit-Testing von ABAP-Entwicklungen. Der erste bereits erschienene Artikel zeigt grundlegende Möglichkeiten zum Einsatz von ABAP Unit für Reports und Klassen. Dieser zweite Artikel geht auf Best Practices ein und erläutert, wie Unit Tests im ABAP Umfeld am besten eingesetzt werden können. Der dritte Artikel geht auf weitere Tools ein, die im Rahmen von Unit-Testing unterstützen.

Beitragsbild-Wie Sie Ihre SAP-Systemlandschaft optimal auf S_4HANA vorbereiten
In diesem Webinar erfahren Sie, welche Technologien der SAP für der Umstieg auf S/4HANA wirklich wichtig sind und wie Sie das volle Potenzial von S/4HANA ausschöpfen.

Design von ABAP Unit-Tests

Unit-Testfälle sollten so definiert werden, dass sie wirklich nur eine Einheit (unit) testen. Diese Einheit hat dabei genau eine Funktion. Alle Einheiten gemeinsam bilden dann den Test des Systems ab (nicht zu verwechseln mit einem Systemtest oder einem Integrationstest). Die einzelnen Tests müssen voneinander unabhängig sein, ebenso die Reihenfolge der Ausführung. Um diese Punkte zu gewährleisten, stellt das ABAP Unit Framework mehrere Hilfsmethoden zur Verfügung:

setup Diese Methode wird vom ABAP Unit Framework vor jeder Testmethode aufgerufen. Hier können also beispielsweise Objekte aufgebaut werden.
class_setup Das Pendant zu setup, welches jedoch nur einmal bei Aufruf der Testklasse ausgeführt wird.
teardown Diese Methode wird vom ABAP Unit Framework nachjeder Testmethode aufgerufen. Hier können also beispielsweise Objekte wieder abgebaut werden.
class_teardown Das Pendant zu teardown, welches jedoch nur einmal bei Aufruf der Testklasse ausgeführt wird.

Organisation von ABAP Unit-Tests

Neben dem Aufbau von Unit-Tests muss natürlich auch geklärt werden, was denn nun genau getestet werden soll. Ein wichtiges Stichwort dazu ist die Testfallanzahl: Je nach Funktion ist eine vollständige Überprüfung der Definitions- und Wertebereiche (Importparameter und Returnparameter) verpflichtend oder einfach zu viel. Dementsprechend sollten über den Bereichen Äquivalenzklassen gebildet werden, um das Verhalten einer Funktion direkt für alle Vertreter einer solchen Klasse zu testen. Vor allem Negativtestfälle und Grenzfälle (man geht davon aus, dass Fehler zu den Grenzen der Äquivalenzklassen wandern) sind zu testen.

Empfehlungen für den effektiven Praxiseinsatz von ABAP Unit

  • In Reports können Testfälle nicht generiert werden, sondern müssen manuell angelegt werden. Dementsprechend bietet es sich an ein Code Template zu entwickeln dass sich bei Bedarf kopieren lässt
  • Für das Testen von Komponenten die Datenbankverbindungen aufbauen empfiehlt es sich den tatsächlichen Datenbankaufruf auszulagern und nur das Anfordern der Datenbankverbindung zu testen. Dies entspricht dem Unit-Gedanken stärker und erhöht die Lesbarkeit des Codes.
  • Private Methoden einer Klasse werden eigtl. nicht getestet, da diese Hilfsklassen für public-Methoden sind und eher die Schnittstelle von den public-Methoden getestet werden sollte. Die verändert sich im Gegensatz zum Verhalten von Hilfsmethoden seltener und muss dementsprechend seltener angepasst werden
ABAP unit report template

ABAP unit report template

In diesem Artikel habe ich die grundlegenden Best Practices erläutert und werde im nächsten Artikel auf spezielle Werkzeuge eingehen.

Gerne verarbeite ich auch Anregungen von Ihnen in meinen nächsten Beiträgen. Dazu freue ich mich auf Ihr Feedback.

Alexander Dorn

Alexander Dorn

Mein Name ist Alexander Dorn und ich bin begeisterter SAP Consultant bei mindsquare. Wie meine Kollegen habe ich mein Hobby zum Beruf gemacht.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Ist Ihnen aufgefallen, dass sich die empfohlene Syntax des zentralen Select Statements von OpenSQL geändert hat, die für Sie und Ihre Mitarbeiter relevant sind? Mir ist durch Zufall aufgefallen, dass […]

weiterlesen

Nicht nur das Senden eines IDoc, sondern auch das Empfangen ist per http möglich. Beide Richtungen der Datenübermittlung sind unabhängig voneinander konfigurierbar. Um das Empfangen von IDocs per http möglich […]

weiterlesen

Unit Tests sind ein weit verbreitetes Mittel zur Qualitätssicherung. Häufig finden diese Tests Anwendung, wenn eine bestehende Implementierung nach einer Weiterentwicklung auf den Bestand der ursprünglichen Funktionalität geprüft werden soll.

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice