This is a test message to test the length of the message box.
Login
ABAP Unit Einführung
Erstellt von Software-Heroes

ABAP Unit - Einführung

Heute geht es um eine etwas längere Einführung in das Thema Unit Tests und ABAP Unit und was du dir darunter vorstellen kannst.

Werbung

Für was benötigst du eigentlich Unit Tests und reichen nicht die üblichen Tests die man nach der Entwicklung durchführt? Die Antwort kannst du dir sicherlich schon denken und wir werden im folgenden Kapitel auch näher auf das Thema Test eingehen.

 

Basis

Das Testen gehört für den Entwickler genauso dazu, wie das Schreiben des eigentlichen Quellcodes. Bereits zum Zeitpunkt des Schreibens, macht der Entwickler die ersten Tests im Kopf und verprobt die Logik, die er auf der Tastatur in den Editor getippt hat. Für viele ältere ABAP Entwickler besteht das Testen aus dem Prüfen des fertigen Reports auf der Testumgebung, ob das richtige Ergebnis herauskommt und die Funktionen sich richtig verhalten.

Doch in den letzten Jahrzehnten hat sich viel getan und die Form, wie wir Quellcode erzeugen, hat sich stark geändert. Auch die SAP hat begonnen, sich Gedanken zu machen, wie sie den Großteil des Quellcodes testen kann, ohne das dafür extra Ressourcen und Systeme eingeplant werden müssen. 

 

Unit Tests

Unit Test gehören heute zu den Best-Practices des Entwickelns und bilden den Grundbaukasten für eine stabile und saubere Entwicklung. Die SAP stellt dafür ABAP Unit zur Verfügung, ein Framework zum automatischen Testen des Quellcodes im System. 

Den Grundaufbau eines Unit Tests wirst du sehr schnell lernen, doch um die Tests voll und ganz zu beherrschen, wirst du eine Weile benötigen. Deshalb werden wir dich am Anfang in die Grundlagen der Thematik einführen und zum Ende hin, immer komplexer werden und dir die tiefen Tiefen der Testentwicklung zeigen.

In welchem Bereich werden Unit Tests eingesetzt, dass soll die folgenden Grafik etwas veranschaulichen:

 

Unit Test sind somit die ersten Test die ein Entwickler durchführen sollte. Sie decken die gesamte breite des Coding ab und testen dabei so viel wie möglich. Dabei sollte die Laufzeit gering sein und die Tests können vollautomatisiert durchgeführt werden.

In der Grafik sind noch Komponententests und Systemtests aufgeführt. Für diese bedarf es meistens mehr Aufwand, Ressourcen und Laufzeit. Diese Test schließen wir an dieser Stelle aber aus unserer Betrachtung aus, da wir uns voll und ganz auf die voll automatisierten Unit Tests fokussieren wollen.

 

Umfang

Wie sieht es also mit dem Umfang der Tests aus? Hier gibt es genügend Anekdoten aus dem Internet, wenn am Ende einer Entwicklung der Testcode mehr Zeilen hat als der eigentliche Produktivcode. Dies ist aber auch nicht schlimm, da in Produktion der Testcode keine Auswirkungen hat und meist auch nicht mit transportiert bzw. ausgeführt wird. Auf der anderen Seite aber auch sehr viele Testfälle damit abgedeckt werden.

Der Fokus der Tests sollte vor allem auf den öffentlichen Schnittstellen einer Anwendung liegen. Im Grunde heißt das für dich: 

  • Öffentliche Methoden von Klassen
  • Funktionsbausteine
  • Unterprogramme

 

Du hast dich nicht verlesen, wir können mit ABAP Unit auch solche Objekte testen und validieren. Es steht zwar nicht der voll Umfang des Frameworks zur Verfügung, doch die wichtigen Komponenten sollten damit testbar sein. 

Hinweis: Ist eine Klasse zu komplex oder groß, besteht auch die Möglichkeit die privaten und geschützten Bestandteile zu testen. Auf diese Möglichkeiten werden wir noch in späteren Kapiteln eingehen.

 

Vorteile

Das schreiben von Tests hat viele Vorteile die wir dir hier kurz auflisten wollen und auf einige etwas genauer eingehen:

  • Schnelle Ausführung aller Tests
  • Wenig Wartung 
  • Stabile Tests
  • Sicherheitsnetz für die Weiterentwicklung
  • Darstellung der Anforderungen
  • Dokumentation der Nutzung
  • Wiederholungsfehler vermeiden

Die letzten beiden Punkte können dabei recht wichtig sein. Wie setzt man die entwickelte Klasse ein und wieso wurden die Methoden und Schnittstellen so designt? Unit Tests können dabei als eine Art Dokumentation dienen, da sie genau solche Fälle abdecken können und anderen Entwicklern zeigen, wie man das Objekt gut einsetzen kann.

Vermeidung von Wiederholungsfehlern ist auch ein gutes Stichwort, was wir etwas genauer erklären wollen. Stell dir einmal vor, du entwickelst eine Schnittstelle und bringst diese nach einer langen Testphase produktiv. Trotz der vielen Tests durch IT und Fachbereich fällt nach einer gewissen Zeit ein Fehler auf, den du auch nach einer genauen Analyse fixt. Ein halbes Jahr später soll diese Schnittstelle um einige neue Funktionen erweitert werden und nach Produktivsetzung taucht der erste Fehler wieder auf, da durch die gemachten Erweiterungen die gleiche Fehlersituation entstanden ist. Solche Fehler können dann sehr schnell peinlich werden und sind durch Unit Test vermeidbar.

 

Nachteile

Die Nachteile gestalten sich an dieser Stelle recht übersichtlich und bestehen nur aus zwei Punkten:

  • Arbeit mit Testdaten
  • Aufwand zur Erstellung der Tests

 

Viele Entwickler, vielleicht auch dich, schreckt am Anfang vor allem der Aufwand zur Erstellung der Tests ab. Wieso sollte man für jedes Stück Quellcode verschiedene Tests entwickeln? Die Arbeit die man aber am Anfang investiert, wird sich vielleicht später bei der Wartung und Weiterentwicklung wieder für dich auszahlen.

Das Arbeiten mit Testdaten ist der anderen Nachteil, denn wir haben meist im Entwicklungssystem keine ordentlichen Daten um echte Tests durchführen zu können. So verwenden wir Dummy-Daten oder einfach zu wenige Daten um unsere Logiken zu testen.
 

Fazit

Das Thema Unit Tests ist mittlerweile etablierter Standard und sollte dich nicht davor abschrecken, es mal selbst einzusetzen. Die Vorteile überwiegen dabei und es gibt viel für dich zu lernen, um das Schreiben von Tests zu meistern.


Enthaltene Themen:
ABAP UnitUnit TestsEinführung
Kommentare (0)
Werbung

ABAP Unit Quick Guide

Kategorie - ABAP

Unser aktuelles E-Book ist nun bei Amazon verfügbar, wir möchten dir kurz aufzeigen, was du in dem Buch erwarten kannst und es dir am Ende bringt.

28.05.2021