Einsatz von ABAP Unit zur Steigerung der Entwicklungsqualität – Teil 3
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. Der zweite Artikel geht auf Best Practices ein und erläutert, wie Unit Tests im ABAP Umfeld am besten eingesetzt werden können. Dieser dritte Artikel geht auf weitere Tools ein, die im Rahmen von Unit-Testing unterstützen.
Was bietet uns die Integration in die Developer Workbench?
Die vorangegangen Artikel dieser Serie haben bislang erklärt warum und wann Unit-Testfälle sinnvoll sind und gezeigt wie man diese sowohl im klassischem Report-Umfeld als auch im OO-Kontext implementiert und nutzt. Neben einer Erläuterung der einzelnen Methoden der Klasse CL_ABAP_UNIT_ASSERT wurde auch das generelle Design von Testfällen und dessen Organisation vorgeschlagen. Aber wie ist das jetzt alles in die Developer Workbench integriert? Je nach Systemstand variieren die Möglichkeiten. Unter anderem gibt es folgende Möglichkeiten für das Ausführen der Testfälle:
- Kontextsensitiv: Auswahl der Testklasse und im Menüreiter Ausführen->Modultest wählen
- Kontextsensitiv: Rechtsklick auf das zu testende Objekt und Auswahl von Ausführen -> Modultest
- Kontextsensitiv: Rechtsklick auf ein Entwicklungspaket, das zu testende Objekte enthält und Auswahl von Ausführen-> Modultest
- Ausführung über den Code Inspector: In der Transaktion SCI Name, Objektmenge und Variante (siehe Bild) konfigurieren und gezielt Testläufe ansteuern
- Ausführung der ABAP Unit Testfälle über den ABAP Unit Browser: Dieser zeigt alle Testfälle an, die sich in einem Entwicklungspaket befinden.
Sie erhalten die Komplettlösung – Ihr Projekt machen wir zu unserem Projekt. Mit professionellem Projektmanagement sicheren wir den Projekterfolg.
Gerne spreche ich mit Ihnen über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.
Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail info@erlebe-software.de
Ingo Biermann, Fachbereichsleiter
Was könnte darüber hinaus benötigt werden?
Beim Blick über den Tellerrand von ABAP auf andere Programmiersprachen und dessen Laufzeitumgebungen fällt schnell auf, welcher wichtige Bestandteil bislang nicht behandelt wurde: Die sogenannte Code Coverage. Dieses Werkzeug soll uns vor allem die beiden Fragen beantworten:
- Wie viele Verzweigungen des Sourcecodes werden bei Ausführung der ABAP Unit Testfälle durchlaufen?
- Wie viele Anweisungen des Sourcecodes werden bei Ausführung der ABAP Unit Testfälle durchlaufen?
Dieses Werkzeug steht ab NetWeaver EHP 2 zur Verfügung und lässt sich wie folgt bedienen:
An den oben beschriebenen Stellen gibt es neben dem Punkt Ausführen->Modultest auch die Möglichkeit eine Codeabdeckung zu starten. Nach Durchlauf bekommt man eine Übersicht über alle durchlaufenen Klassen und dessen Methoden. Bedient wird die Anzeige durch Vorwärtsnavigation per Doppelklick. So kann bis in den Quelltext einer Methode navigiert werden. Je nachdem ob ein Abschnitt beim Testen durchlaufen wurde, wird dieser grün bzw. rot eingefärbt.
Grenzen von ABAP Unit
Unit-Testfälle dienen der modularisierten Funktionsüberprüfung von einzelnen Entwicklungseinheiten. Dementsprechend kommen ABAP Unit-Testfälle in größeren Kontexten schnell an ihre Grenzen. Beispiele dafür sind die Entwicklung von Oberflächen und die Entwicklung von nebenläufigen Systemen. In großen Kontexten werden natürlich auch Systemtests benötigt, die nicht nur aus der Gesamtheit der einzelnen Unit-Testfälle bestehen sollten.
Abschließend dazu ist zu sagen, dass Unit-Testfälle immer Unit-Testfälle bleiben sollten. Versucht man das Framework für andere Dinge zu verwenden, für die es nicht ausgelegt ist, treten Probleme auf und diese schrecken ab. Zielgerichtete Anwendung auf den Zweck von Unit-Testfällen führt jedoch zum Erfolg. Für die weiteren Anwendungsgebiete zum Testen von MVC-Anwendungen oder das Durchführen von Systemtests bietet die SAP weitergehende Frameworks mit anderen Zielen, z.B. ECATT.