AdaTEST 95


Statische Codemetriken

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

Screenshot of AdaTEST Static Analysis Video Cover

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.  

 

 

AdaTEST 95 Static Code Metrics - Static Analysis - selection of deisred metrics - Ruleset selection screenshot
Montage of AdaTEST 95 Static Analysis Results overview - history of checks on enforcing values for static metrics for trend analysis

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.

Screenshot of AdaTEST unit and integration testing tool results screen

Wie funktioniert AdaTEST 95 statische Analyse?

Chart showing source code and code coverage options the AdaTEST 95 test exe has run - Static Analysis test process

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:

  • 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

 

Die komplette Auflistung der statischen Codemetriken in AdaTEST-95 finden Sie hier:

 

 

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

Start
Trial
QA-Systems