ABAP-Übungsaufgaben mit automatisierter Prüfung

Die Entwicklung mit ABAP erfordert inzwischen eine Unmenge von Wissen. In den letzten Jahren hat sich einiges bei den ABAP-Sprachelementen getan. Angefangen hat es mit String Templates, mit denen sich Zeichenketen einfacher und ohne Hilfsvariablen zusammensetzen lassen. Darüber hinaus sind nach und nach weitere Funktionen aus verschiedenen Bereichen hinzugekommen:

Tabellenausdrücke (Table Expressions)
Tabellenfunktionen (LINES, LINE_INDEX, LINE_EXISTS)
Ausdrücke und Funktionen (FIND, CHAR_OFF, COUNT, CONDENSE, ESCAPE, SUBSTRING u.w.)
Inline-Deklarationen (DATA, FIELD-SYMBOLS)
Konstruktorausdrücke (NEW, VALUE)
Iterationsausdrücke (FOR, REDUCE)
Filteroperator FILTER
Meshes
• Zuweisungen (CORRESPONDING, CONV)

In den letzten zehn Jahren ist unglaublich viel Bewegung im ABAP-Umfeld. Neue Techniken, wie CDS-Views, UI5, RAP, CAP oder Cloud habe ich noch nicht einmal erwähnt …

Die Herausforderungen für SAP-Entwicklerinnen und -Entwickler sind dementsprechend groß und es stellt sich die Frage, wie man all diese Sprachelemente lernen soll.

In diesem Blogbeitrag möchte ich Ihnen zeigen, wie Voraussetzungen für Entwickelnde im eigenen SAP-System geschaffen werden, sodass sich diese nach und nach und im eigenen Tempo weiterbilden können.

1. Eigene Schulungsplatform aufbauen

Das Lernen von neuen Sprachelementen erweist sich mitunter als recht schwierig, da erstens Zeit und zweitens konkrete Anwendungsfälle fehlen. Zusätzlich müssen Entwickelnde erkennen, wann sich welches Sprachelement sinnvoll einsetzen lässt.
Eine Idee ist, dass Sie kleine Schulungsaufgaben vorgeben und diese von Entwickelnden lösen lassen. Damit Sie diese nicht kontrollieren müssen, bietet es sich an, die Ergebnisse der Aufgaben automatisiert durch Unit-Tests prüfen zu lassen. Auf diese Weise bekommen die Lernenden schnell und direkt eine Rückmeldung zu ihren Bemühungen.

Meine Idee ist die Folgende:

• Sie erstellen ein Interface mit Übungsaufgaben. Die Aufgabenstellung können Sie mit Hilfe von ABAPdoc erstellen.
• Sie erstellen eine globale Testklasse, in der Sie die Ergebnisse der Übungsmethoden mit Hilfe von Unit-Tests überprüfen.
• Die Lernenden erstellen eine Klasse (mit dem eigenen Namenskürzel), in der sie das Interface mit den Übungsaufgaben implementieren und die Aufgaben mit entsprechendem Coding lösen.
• In der Klasse wird eine Testklasse erstellt, die von der globalen Testklasse erbt. Auf diese Weise werden die Unit-Tests für die Klasse ausgeführt.

Die Aufgaben können nach und nach erweitert und verfeinert werden. Für verschiedene Bereiche können Sie unterschiedliche Klassen mit entsprechenden Aufgaben definieren.

1.1 Interface mit Übungsaufgaben erstellen

1.2 Klasse mit Musterlösungen erstellen

Sie müssen eine Klasse erstellen, die das Interface mit den Übungsmethoden implementiert. Diese benötigen Sie, um sicherzugehen, dass die globale Master-Testklasse korrekt funktioniert.

1.3 Test-Master erstellen

Erstellen Sie eine globale Testklasse, die Methoden mit entsprechend sinnvollen Unit-Tests enthält.
Definition der Klasse.

Die Definition der Test-Masterklasse enthält Testmethoden. Diese müssen in der PROTECTED SECTION untergebracht werden, um die Methoden an die lokale Testklasse der Übungsklasse zu vererben. In der Methode SETUP wird eine Instanz der zu testenden Klasse erzeugt. Hierfür wird die bereits erstellte Klasse mit den Musteraufgaben benötigt. Die Instanzvariable CUT (kurz für „Code Under Test“) enthält die Referenz auf die Musteraufgabenklasse.

1.3.1 Implementierung der Klasse

In der Implementierung der Test-Masterklasse werden die Werte, die die Musterlösung erzeugt, geprüft. Dies geschieht in der Regel mit Hilfe der Methode CL_ABAP_UNIT=>ASSERT_EQUALS.

Je komplizierter die Aufgaben sind, desto umfangreicher müssen die Unit-Tests sein, um die Richtigkeit der Ergebnisse sicherzustellen.

1.4 Unit-Tests „scharf schalten“

Normalerweise werden Unit-Tests in dem dafür vorgesehenen Bereich der Klasse „Test classes“ mit lokalen Testklassen erstellt. Wir gehen jetzt leicht anders vor und erstellen nur den Bereich der Testklasse, der nicht von der Master-Testklasse abgedeckt wird:

• Definition der lokalen Testklasse mit Vererbung von der Master-Testklasse
• Definition der Instanzvariablen CUT mit der aktuellen Klasse mit den Musterlösungen
• Initialisierung der Instanzvariablen CUT

1.5 Was müssen Übende tun?

Jeder, der sich an den Übungen beteiligen möchte, geht so vor, wie in „Interface mit Übungsaufgaben erstellen“ und „Unit-Tests scharf schalten“ beschrieben. Der Name der Klasse sollte einerseits den Übungsbereich“ (in diesem Beispiel VALUE) enthalten, als auch das eigene Namenskürzel. Auf diese Weise haben alle Teilnehmenden einen eigenen Übungsbereich.

Zusätzlich haben alle ihre eigene Musterlösung, auf die sie bei Bedarf zurückgreifen können.

Mit etwas mehr Aufwand könnten die Übungsklassen automatisch mit Hilfe des Funktionsbausteins SEO_CLASS_CREATE_COMPLETE angelegt werden. Die Übenden müssten dann nur die zu kopierende Klasse auswählen und ihr Namenskürzel angeben. Den Rest könnte das Programm erledigen.

2. Sourcecode

Der Sourcecode für einige Beispiele kann auf der Inwerken-Github-Seite mit Hilfe von abapGit installiert werden.

Fragen? Einfach schreiben an sapentwicklung@inwerken.de .

Über die Inwerken AG

Im Januar 2000 nahm Inwerken (vormals COMbridge GmbH) die Geschäftstätigkeiten in Hannover auf. Die Mission: Eine professionelle und unternehmensnahe SAP-Beratung, um die Arbeit anderer Menschen zu erleichtern. Heute bietet das Unternehmen SAP-Beratungs- und Entwicklungs-Lösungen inkl. Basis-Infrastruktur, Service und Support, Strategie- und Unternehmensberatung sowie IT-Leistungen für mittelständische Unternehmen. Darüber hinaus Projektmanagement und IIoT-Logistik-Lösungen mit der Tochtergesellschaft WSN Technologies AG. Branchenübergreifend unterstützen derzeit rund 80 Expertinnen und Experten sowohl onsite als auch remote, national und international angesiedelte Kunden.

Weitere Informationen finden Sie hier:
• [url=https://www.inwerken.de/]www.inwerken.de[/url]
• [url=https://karriere.inwerken.de/]www.karriere.inwerken.de[/url]
• [url=https://digitalisierung.inwerken.de/]www.digitalisierung.inwerken.de[/url]

Firmen-Standorte: Isernhagen (Firmenhauptsitz), Berlin, Braunschweig, Hamburg, Rudolstadt, Stuttgart. Geschäftsführung: Frank Bachmann (Gründer und Vorstandsvorsitz), Rudolf Jost, Holger Lexow. Aufsichtsrat: Gunnar Menzel

Firmenkontakt und Herausgeber der Meldung:

Inwerken AG
Pappelweg 5
30916 Isernhagen
Telefon: +49 (511) 936206-0
Telefax: +49 (511) 936206-10
http://www.inwerken.de

Ansprechpartner:
Christin Harms
Managerin
E-Mail: event@inwerken.de
Für die oben stehende Pressemitteilung ist allein der jeweils angegebene Herausgeber (siehe Firmenkontakt oben) verantwortlich. Dieser ist in der Regel auch Urheber des Pressetextes, sowie der angehängten Bild-, Ton-, Video-, Medien- und Informationsmaterialien. Die United News Network GmbH übernimmt keine Haftung für die Korrektheit oder Vollständigkeit der dargestellten Meldung. Auch bei Übertragungsfehlern oder anderen Störungen haftet sie nur im Fall von Vorsatz oder grober Fahrlässigkeit. Die Nutzung von hier archivierten Informationen zur Eigeninformation und redaktionellen Weiterverarbeitung ist in der Regel kostenfrei. Bitte klären Sie vor einer Weiterverwendung urheberrechtliche Fragen mit dem angegebenen Herausgeber. Eine systematische Speicherung dieser Daten sowie die Verwendung auch von Teilen dieses Datenbankwerks sind nur mit schriftlicher Genehmigung durch die United News Network GmbH gestattet.

counterpixel