Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: minor wording tweaks


When looking at the code quality of an application and willing trying to decide on a plan of an action plan, it is sometimes not sufficient always enough to get a snapshot of the quality at a given time. You also need some visibility on into the application history to take the right decision.

For example, let's say that you have defined a requirement that each application should have a coverage by unit tests of 60%. And let's say that one of you your application has got 50% coverage. Without historical data, you can only conclude that the team does not write sufficient unit tests and that it should become the next focus of attention. But let's now say that a couple of months ago the coverage for this application was 20%... then you would probably conclude that although the requirement is not made yet, the team is doing a very good job and that no special focus needs to be put on unit tests. This is why having access to historical information is important.

Historical information are is provided through the Time Machine and the Tendencies


The Time Machine is made of two generic widgets that can be instantiated and configured in added to any dashboard.

Timeline Widget

The Timeline widget provides the capability ability to display a chart containing historical data of up to 3 metrics. Passing your mouse over the timeline will display the different values.


titleThe Timeline is not displayed at package level by default

By default, historical information is not kept on directories/packages and therefore the timeline has not value no values to display below the project or module level. This can be changed by logging in as an administrator, going to Settings > Configuration > General Settings > Database Cleaner and setting the Clean history data of directories/packages property to false. This will increase the volume of data to be stored in the database.


The History Table widget provides the capability to display a table with the historical data for up to 10 metrics:

This widget can be customized: 


Black arrows are used to represent tendencies on the quantitative metrics (the ones that does not reflect quality, for example number of lines of code). 

Red or green arrows are used to represent tendencies on the qualitative metrics (the ones that reflects quality, for example code coverage). The red Red is used when the quality decreases, the green when it increases.

How are Tendencies Calculated?

To compute the tendencies, making using a simple difference between the last two measures of each metric would not be accurate enough. Therefore a more advanced algorithm is implemented: the least squares method. It is a linear regression analysis that helps removing remove the noise in order to determine a trend on discrete measures. In other words, all the measure in the last XX days are taken into account, then the set of measures is checked to see if ti it makes some sense (by testing the correlation rate), and an estimated slope is computed and displayed using arrows. 


titleAbout deleting snapshots

Deleting a snapshot is a 2-step process:

  • The snapshot must first be removed from the project history by clicking on "Delete snapshot". It won't be displayed anymore any more on this "History" page but will still be present in the database.
  • Then the The snapshot is really actually deleted during the next project analysis.


Removing Unnecessary Analyses

This It is very useful to frequently analyze a project to see how quality evolves. It is also very useful to be able to see the trends over weeks, months, years. But when you are look back in time, you do not really need the same level of details as you would for one week ago. The Database Cleaner aims to delete some rows in the database to save some space and to improve overall performances. Here is its default configuration:

  • All data older than 5 years old are deteleteddeleted
  • For each project:
    • only one analysis per month is kept over 1 year
    • only one analysis per week is kept over 1 month
    • only one analysis per day is kept over 1 day
  • All closed issues more than 30 days old are deleted
  • History at package/directory level is not kept
  • Snapshots including that include an event (new project version, new quality profile version, etc.) are not deleted