AdaTEST 95 Statische Codemetriken können als eigenständige Analyse oder integriert in AdaTEST 95 genutzt werden. Das Tool misst hochautomatisiert die Codequalität, die Wartbarkeit und den zu erwartenden Testerfolg.

Mit AdaTEST 95 Statische Analyse wird Vieles einfacher. Zum Beispiel

Wobei unterstützen mich AdaTEST 95 statische Metriken?

BEIM DEFINIEREN VON CODEMETRIKEN

 

AdaTEST 95 erstellt mehr als 100 statischen Codemetriken. Sowohl in der Ada-95-Syntax (Ada Language Reference Manual) als auch im Metriksatz des Industriestandards. Bei der Auswahl der gewünschten Metriken hilft der Analysen-Wizard und die statischen Analyseregelsätze.

So werden nicht nur die geforderten statischen Codemetriken definiert, sondern auch die Prüfungen der zulässigen Werte für jede Metrik, die in die dynamischen Tests von AdaTEST 95 eingebunden werden sollen.

METRIKEN DIAGNOSTIZIEREN UND DURCHSETZEN

 

Für eine umfangreiche Diagnose werden die Metriken als .CSV-Dateien erstellt und im HTML Result Viewer angezeigt.

Der AdaTEST 95 HTML Ergebnisüberblick zeigt die Prüfhistorie beim Durchsetzen von Werten für statische Metriken zur Trendanalyse.

Das Durchsetzen von statischen Codemetriken funktioniert vollautomatisch. Die Prüfungen sind in AdaTEST 95 Testskripte integriert. Dadurch werden dynamische und statische Tests komplett synchronisiert.

Die statischen Metriken von AdaTEST 95 werden für alle instrumentierten Verfahren, Funktionen, geschützten Sub-Programme/Entries und ausgeführten Tasks erstellt. Und mehr: Metriken für Package-Spezifikationen und Package Bodies sind in einer Textlistendatei verfügbar – zusätzlich zum Verfahren, der Funktion und den Task Bodies.

REPORTS ERSTELLEN

 

Mit AdaTEST 95 erstellen Sie ganz einfach zertifizierungsreife ASCII-Text-Reports, wie sie von den Sicherheitsstandards für die Codeabdeckung gefordert werden.

Diese Reports, wie auch die Nachweise für die Zertifizierung, zeigen auf, ob und inwieweit die Ziele bei den geforderten Abdeckungsmetriken erreicht wurden.

Wie funktioniert AdaTEST 95 statische Analyse?

AdaTEST 95 arbeitet mit einer Kopie des Source Codes. Die statischen Metriken werden sowohl in CSV und für die HTML-Grafikdiagnose, als auch für die zertifizierungsreifen Nachweise in ASCII-Text erfasst.

 

Die statische Analyse kann innerhalb von AdaTEST-95-Tests genutzt werden. So werden Metrikwerte in einer bestimmten Bandbreite geprüft. Gleichzeitig erfolgt eine Analyse von Kontroll- und Datenfluss mit Pfadkennzeichnung und dynamischen Assertions.

Noch einfacher ist die Analyse mit Regelsätzen zur Abdeckung. Diese automatisieren die gesamte Codeinstrumentierung, die Datenreports und die geforderte Metrikprüfung.

Welche Codemetriken unterstützt AdaTEST 95?

AdaTEST 95 erstellt über 100 Metriken in der Ada95-Code-Syntax, wie sie im Ada-95-Referenz-Handbuch Annex P definiert sind.

 

 

 

Statische Metriken sind in drei Gruppen aufgeteilt:

  • gezählte Metriken
  • errechnete Metriken
  • informelle Metriken

Gezählte und errechnete Metriken werden als Fließkommawerte, informelle Metriken als Stringwerte angezeigt.

Zusätzlich zu den Grafen der Ada-95-Syntax werden folgende Industriestandardmetriken unterstützt:

Zusätzlich zu den Grafen der Ada-95-Syntax werden folgende Industriestandardmetriken unterstützt:

  • McCabe’s Cyclomatic Complexity Measure
  • Myers’ extension to McCabe’s measure
  • Essential McCabe
  • Halstead’s Software Science
  • Hansen’s measure of Program Complexity by the Pair

ABORT_STATEMENTS

ACCEPT_STATEMENTS

ACCESS_ATTRIBUTES

ACCESS_DISCRIMINANTS

ACCESS_TO_SUBPROGRAM_TYPES

ADA_CODE_LINES

ALIASED_OBJECT_DECLARATIONS

ALLOCATORS

ASSIGNMENT_STATEMENTS

ASYNCHRONOUS_SELECTS

BINARY_ADDING_OPERATORS

BLANK_LINES

BLOCK_DECLARATIVE_PARTS

BLOCK_STATEMENTS

BODY_STUBS

CASE_ALTERNATIVES

CASE_STATEMENTS

CLASS_WIDE_TYPES

CODE_STATEMENTS

COMMENT_LINES

COMMENTS

COMPILATION_UNITS

CONDITIONAL_ENTRY_CALLS

CONTROLLED_TYPES

DATA_ASSERTIONS

DECLARATIVE_STATEMENTS

DELAY_STATEMENTS

DERIVED_TYPE_DEFINITIONS

DYNAMIC_ASSERTIONS

FILE_CHECKSUM

FOR_LOOPS

GENERAL_ACCESS_TYPES

GENERIC_DECLARATIONS

GENERIC_INSTANTIATIONS

GENERIC_SPECIFICATIONS

GOTO_STATEMENTS

HALSTEAD_DIFFICULTY

HALSTEAD_EST_LEVEL_ABSTRACTION

HALSTEAD_ESTIMATED_ERRORS

HALSTEAD_EXPECTED_LENGTH

HALSTEAD_INTELLIGENCE_CONTENT

HALSTEAD_LANGUAGE_LEVEL

HALSTEAD_LENGTH

HALSTEAD_LEVEL_OF_ABSTRACTION

HALSTEAD_NUM_UNIQUE_OPERANDS

HALSTEAD_NUM_UNIQUE_OPERATORS

HALSTEAD_POTENTIAL_VOLUME

HALSTEAD_PROGRAM_EFFORT

HALSTEAD_PURITY_RATIO

HALSTEAD_TIME_ESTIMATE

HALSTEAD_TOTAL_NUM_OPERANDS

HALSTEAD_TOTAL_NUM_OPERATORS

HALSTEAD_VOCABULARY

HALSTEAD_VOLUME

HANSEN_CYCLOMATIC_NUM

HANSEN_OPERATOR_COUNT

HIGHEST_PRECEDENCE_OPERATORS

IF_STATEMENTS

IGNORE_ON_SWITCHES

INNER_USE_PACKAGE_CLAUSES

LINES_IN_SOURCE_FILE

LOGICAL_OPERATORS

LOOP_STATEMENTS

MAXIMUM_STATEMENT_NESTING

MCCABE

MEMBERSHIP_TESTS

MULTIPLYING_OPERATORS

MYERS_MCCABE_LOWER

MYERS_MCCABE_UPPER

OVERLOAD_COUNT

PACKAGE_BODIES

PACKAGE_SPECIFICATIONS

PARAMETERS

PRAGMAS

PROCEDURE_ENTRY_CALL_STMTS

PROTECTED_ENTRY_BODIES

PROTECTED_OBJECT_DEFINITIONS

PROTECTED_TYPE_DEFINITIONS

RAISE_STATEMENTS

RELATIONAL_OPERATORS

REPRESENTATION_CLAUSES

REQUEUE_STATEMENTS

REQUEUE_WITH_ABORTS

RETURN_STATEMENTS

SELECT_STATEMENTS

SELECTIVE_WAIT_ALTERNATIVES

SELECTIVE_WAITS

SHORT_CIRCUIT_CONTROL_FORMS

SUBPROGRAM_BODIES

SUBPROGRAM_SPECIFICATIONS

SUBUNITS

TAGGED_TYPES

TERMINATES

TEST_CODE_STMTS

TIMED_ENTRY_CALLS

TOTAL_LINES

TOTAL_UNITS_IN_SOURCE_FILE

TYPE_EXTENSIONS

UNARY_ADDING_OPERATORS

UNCHECKED_ACCESSES

UNCHECKED_CONVERSIONS

UNCHECKED_DEALLOCATIONS

UNPROCESSED_BEXES

UNREACHABLE_CODE

USE_PACKAGE_CLAUSES

USE_TYPE_CLAUSES

USER_STRING (user defined)

WHILE_LOOPS

WITH_CLAUSES

XOR_OPERATORS