Show TOC

ProzessArbeiten mit der Anzeige der Quelltextabdeckung im ABAP Unit Browser Dieses Dokument in der Navigationsstruktur finden

 

Dieser Abschnitt erklärt die Anzeige der Quelltextabdeckung im ABAP Unit Browser. Diese Anzeige bietet eine Untermenge der Felder und Funktionen, die in der Detailanzeige im Coverage Analyzer (Transaktion SCOV) angeboten werden. Die beiden Anzeigen weisen genügend Unterschiede auf, um eine eigene Beschreibung der Detailanzeige im ABAP Unit Browser anzubieten.

Prozess

Die Anzeige der Quelltextabdeckung könnte wie in der folgenden Abbildung aussehen. Die Abbildung verwendet ein Layout, das die wichtigsten Felder beinhaltet.

Die Abbildung wird im Begleittext erläutert.

Anzeige der Quelltextabdeckung für einen Favoriten im ABAP Unit Browser

Angezeigte Programme: Die Anzeige der Favoriten zeigt alle Programme an, aus denen von den Modultests im Favoriten Komponenten gerufen wurden. Die Kennzahlen zeigen nur die Quelltextabdeckung der Modultests. Andere bereits vom Coverage Analyzer aufgezeichnete Abdeckungsstatistiken werden ignoriert.

Nur ein im ABAP Unit Browser definierter Favorit bietet diese isolierte Anzeige der Quelltextabdeckung. Die Browser-Anzeige für Modultests für Programme oder Pakete enthält mehr Programme in der Anzeige und auch zusätzliche Quelltextabdeckungsdaten.

Schlüsselfelder in der Anzeige: In der Beispielsanzeige gilt:

  • Die beiden Statusikonen werden gesetzt gemäß der Abdeckungskriterien, die im Coverage Analyzer für die Prozedur- und Anweisungsabdeckung angegeben wurden.

    In diesem Fall wurden einige der ABAP-Modultests für diese Funktionsgruppen nicht ausgeführt. Oder die ABAP-Modultests müssen ausgeweitet und verfeinert werden, damit mehr von dem Quelltext in den Funktionsbausteinen angewendet wird.

  • Die Abdeckungsfelder zeigen Ihnen genaue Informationen zur Quelltextabdeckung auf Prozedur-, Verzweigungs- und Anweisungsebene, die von den ABAP-Modultests erstellt wurde.

  • Die Summenfelder geben Ihnen einen Anhaltspunkt zur Größe des getesteten Quelltexts.

    Die Modultests erreichen zum Beispiel eine Quelltextabdeckung von 7,3%. Eine Gesamtzahl von über 3.700 Verzweigungen im Quelltext der Funktionsgruppe bedeutet, dass es wahrscheinlich eines erbehblichen Aufwands bedarf, um eine zufriedenstellende Quelltextabdeckung zu erreichen.

    Hier finden Sie eine kurze Diskussion der Standards zur Quelltextabdeckung.

Analyse der Quelltextabdeckung pro Verarbeitungsblock

Nicht zufriedenstellende Quelltextabdeckungsergebnisse wie oben bedeuten, dass Sie Ihre Modultests verbessern müssen. Aber sie geben Ihnen keinen Anhaltspunkt darüber, wie Sie die durch die Modultests erreichte Quelltextabdeckung verbessern können.

Glücklicherweise können Sie in der Anzeige eine Zeile per Doppelklick auswählen, um sich auf die Ebene der Verarbeitungsblöcke in einem Programm zu begeben. Und Sie können noch tiefer bis zur Quelltextabdeckung auf Anweisungsebene navigieren.

Die Abbildung wird im Begleittext erläutert.

Zur Quelltextabdeckung pro Verarbeitungsblock

Die Navigation zu den Verarbeitungsblöcken der Funktionsgruppe SALC zeigt schnell, wie die Quelltextabdeckung dieses Legacy-Codes verbessert werden könnte. Viele der Funktionsbausteine der Funktionsgruppe werden von den vorhandenen Modultests überhaupt nicht angewendet. Es sollte relativ einfach sein neue Modultests für die zur Zeit nicht getesteten Funktionsbausteine hinzuzufügen. Schließlich bieten Funktionsbausteine wohldefinierte APIs, die oft einfach mit Parametern versorgt werden, um normale Bedingungen sowie Fehlerbedingungen zu simulieren.

Diese Anzeige liefert auch den Teststatus von Unterprogrammen. Sie können schnell ungetestete oder ungenügend getestete Prozeduren identifizieren und sie mit Modultests versorgen.

Analyse der Quelltextabdeckung pro Anweisung

In der obigen Anzeige sehen Sie, dass die Abdeckung der Verzweigungen einiger getester Funktionsbausteine recht niedrig ist. Drei der Funktionsbausteine haben eine Verzweigungsabdeckung zwischen 20 und 30.

Sollte der Hauptpfad durch den Quelltext nicht mehr Verzweigungsentscheidungen abdecken? Oder ist der Quelltext voller Plausibilitätsprüfungen, die von dem Quelltext nicht erreicht werden?

Wie können Sie herausfinden, ob die Quelltextabdeckung in diesen Funktionsbausteinen adäquat ist, und wie können Sie sie verbessern?

Um Fragen zur Quelltextabdeckung im Detail zu beantworten und Aussagen zu einem akzeptablen Grad an Quelltextabdeckung zu machen, können Sie zur Quelltextabdeckung pro Verzweigung und Anweisung navigieren.

Die Abbildung wird im Begleittext erläutert.

Zur Quelltextabdeckung pro Anweisung

Die Anzeige verdeutlicht das Problem mit der Quelltextabdeckung in diesem Funktionsbaustein. Der Modultest kann zur Zeit von einer Funktion, die im getesteten Funktionsbaustein aufgerufen wird, keine Fehlerergebnisse erstellen. Wenn Sie mit dem Cursor eine bedingte Anweisung auswählen, zeigt die Anzeige getestete Bedingungen. In diesem Fall wurden die bedingten IF-Anweisungen immer als 'falsch' erachtet .

Mit diesen Informationen können Sie eine fundierte Entscheidung zu dem Modultest treffen. Sie sehen, dass Sie die Verzweigungsabdeckung verbessern können, wenn Sie in SALC_CACHE_GET_MTE_BY_CLASS Fehler hervorrufen. Falls Sie den Quelltext kennen, können Sie beurteilen, ob der Funktionsbaustein von aussen manipuliert werden kann oder eine unauflösbare Abhängigkeit darstellt — Sie können seine Ergebnisse nicht manipulieren ohne internen Quelltext zu ändern. Enthält der Funktionsaufruf unauflösbare Abhängigkeiten, können Sie entscheiden, ob es genügt die Fehlerfälle direkt in einem Modultest für SALC_CACHE_GET_MTE_BY_CLASS zu testen. Oder ob es notwendig ist, diesen Quelltext einem Refactoring zu unterziehen, um die Abhängigkeit zu SALC_CACHE_GET_MTE_BY_CLASS aufzulösen.