Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NameKeyDescription

File cycles

file_cycles

Minimal number of file cycles detected inside a directory to be able to identify all undesired dependencies. This metric is available at the directory , module and program levelslevel.

Anchor
metricFileEdgesWeight
metricFileEdgesWeight
File edges weight

file_edges_weight

Number of file dependencies inside a directory. This metric is available at the directory , module and program levelslevel.

File dependencies to cut

package_tangles

Number of file dependencies to cut in order to remove all cycles between directories. This metric is available at the directory, module and program levelsproject level.

 

Anchor
metricFileTangle
metricFileTangle
File tangle

file_tangles

File tangle = Suspect file dependencies

This metric is available at the directory , module and program levelslevel.

Anchor
metricFileTangleIndex
metricFileTangleIndex
File tangle index

file_tangle_index

File tangle index = 2 * (File tangle / File edges weight) * 100.

This metric is available at the directory , module and program levelslevel.

Package cycles

package_cycles

Minimal number of directory cycles detected to be able to identify all undesired dependencies. This metric is available at the directory, module and program levelsproject level.

Package dependencies to cut

package_feedback_edges

Number of directory dependencies to cut in order to remove all cycles between directories. This metric is available at the package, module and program levels.

Package tangle index

package_tangle_index

Level of directory interdependency. Best value (0%) means that there is no cycle and worst value (100%) means that directories are really tangled. This metric is computed with the following formula: 2 * (File dependencies to cut / Number of file dependencies between directories) * 100. This metric is available at the directory, module and program levelsproject level.

Package edges weight

package_edges_weight

Number of file dependencies between directories. This metric is available at the directory, module and program levelsproject level.

Anchor
metricFileFeedbackEdges
metricFileFeedbackEdges
Suspect file dependencies

file_feedback_edges

File dependencies to cut in order to remove cycles between files inside a directory. Note that cycles between files inside a directory does not always mean a bad quality architecture. This metric is available at the directory level.

Documentation

...

NameKeyDescription

Duplicated blocks

duplicated_blocks

Number of duplicated blocks of lines.

For a block of code to be considered as duplicated:

  • Non-Java projects:
    • There should be at least 100 successive and duplicated tokens.
    • Those tokens should be spread at least on:
      • 30 lines of code for COBOL
      • 20 lines of code for ABAP
      • 10 lines of code for other languages

  • Java projects:
    • There should be at least 10 successive and duplicated statements whatever the number of tokens and lines.

Differences in indentation as well as in string literals are ignored while detecting duplications.


Duplicated filesduplicated_filesNumber of files involved in a duplication.
Anchor
metricDuplicatedLines
metricDuplicatedLines
Duplicated lines
duplicated_linesNumber of lines involved in a duplication.
Duplicated lines (%)duplicated_lines_density

Density of duplication = Duplicated lines / Lines * 100

...

MetricKeyDescription
Anchor
metricBranchCoverage
metricBranchCoverage
Branch coverage
branch_coverage

On each line of code containing some boolean expressions, the branch coverage simply answers the following question: 'Has each boolean expression been evaluated both to true and false?'. This is the density of possible branches in flow control structures that have been followed during unit tests execution.

Code Block
Branch coverage = (CT + CF) / (2*B)

where

CT = branches that have been evaluated to 'true' at least once
CF = branches that have been evaluated to 'false' at least once

B = total number of branches
Branch coverage on new codenew_branch_coverage

Identical to Branch coverage but restricted to new / updated source code.

To be computed this metric requires the SCM Activity plugin.

Branch coverage hitsbranch_coverage_hits_dataList of covered branches.
Condition coverage see Branch coverage
Conditions by lineconditions_by_lineNumber of conditions by line.
Covered conditions by linecovered_conditions_by_lineNumber of covered conditions by line.
Anchor
metricCoverage
metricCoverage
Coverage
coverage

It is a mix of Line coverage and Branch coverage. Its goal is to provide an even more accurate answer to the following question: ' How much of the source code has been covered by the unit tests?".

Code Block
Coverage = (CT + CF + LC)/(2*B + EL)

where

CT = branches that have been evaluated to 'true' at least once
CF = branches that have been evaluated to 'false' at least once
LC = covered lines = lines_to_cover - uncovered_lines

B = total number of branches
EL = total number of executable lines (lines_to_cover)
Coverage on new codenew_coverage

Identical to Coverage but restricted to new / updated source code.

To be computed this metric requires the SCM Activity plugin .

Anchor
metricLineCoverage
metricLineCoverage
Line coverage
line_coverage

On a given line of code, Line coverage simply answers the following question: ' Has this line of code been executed during the execution of the unit tests?'. It is the density of covered lines by unit tests:

Code Block
Line coverage = LC / EL

where

LC = covered lines (lines_to_cover - uncovered_lines)
EL = total number of executable lines (lines_to_cover)
Line coverage on new codenew_line_coverageIdentical to Line coverage but restricted to new / updated source code.
Line coverage hitscoverage_line_hits_dataList of covered lines.
Anchor
metricLinesToCover
metricLinesToCover
Lines to cover
lines_to_coverNumber of lines of code which could be covered by unit tests (for example, blank lines or full comments lines are not considered as lines to cover).
Lines to cover on new codenew_lines_to_coverIdentical to Lines to cover but restricted to new / updated source code.
Skipped unit testsskipped_testsNumber of skipped unit tests.
Anchor
metricUncoveredBranches
metricUncoveredBranches
Uncovered branches
uncovered_conditionsNumber of branches which are not covered by unit tests.
Uncovered branches on new codenew_uncovered_conditionsIdentical to Uncovered branches but restricted to new / updated source code.
Anchor
metricUncoveredLines
metricUncoveredLines
Uncovered lines
uncovered_linesNumber of lines of code which are not covered by unit tests.
Uncovered lines on new codenew_uncovered_linesIdentical to Uncovered lines but restricted to new / updated source code.
Anchor
metricUnitTests
metricUnitTests
Unit tests
testsNumber of unit tests.
Unit tests durationtest_execution_timeTime required to execute all the unit tests.
Anchor
metricUnitTestErrors
metricUnitTestErrors
Unit test errors
test_errorsNumber of unit tests that have failed.
Anchor
metricUnitTestFailures
metricUnitTestFailures
Unit test failures
test_failuresNumber of unit tests that have failed with an unexpected exception.
Unit test success density (%)test_success_densityTest success density = (Unit tests - (Unit test errors + Unit test failures)) / Unit tests * 100

...