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 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:
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