Show TOC

Arbeiten mit der Anzeige der Quelltextabdeckung im ABAP Unit BrowserLocate this document in the navigation structure

Verwendung

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.

Abbildung 1: 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 Zweigabdeckung von 7,3%. Eine Gesamtzahl von über 3.700 Verzweigungen im Quelltext der Funktionsgruppe bedeutet, dass es wahrscheinlich eines erheblichen Aufwands bedarf, um eine zufriedenstellende Zweigabdeckung 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.

Abbildung 2: 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 getesteter Funktionsbausteine recht niedrig ist. Drei der Funktionsbausteine haben eine Zweigabdeckung 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.

Abbildung 3: Zur Quelltextabdeckung pro Anweisung

Die Anzeige verdeutlicht das Problem mit der Zweigabdeckung 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 Zweigabdeckung 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 außen 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.