Open Quality Data
This page lists quality dashboards for our own software products and for selected other projects. The Project Pages links will give you more details about each of these projects.
We welcome feedback! Please let us know what you think at openquality@agitar.com.
More information about this dataWhere This Data Comes From
All dashboards in the list are now created by an automated process which uses CruiseControl to check for updates to the source code, and Ant to build the product, run the unit tests, and build the dashboard. The table is created through an automated process, and it is not thoroughly reviewed.
Since we are not experts for most of the products in the table, the results may at times be impacted by our ignorance. For instance, on one product the maintainer pointed out that we had measured test coverage on his tutorial files, which came without unit tests. This was quickly corrected once we were notified of the issue.
What Do the Dashboard Overview Metrics Mean?
These dashboard reports show observable data about unit test results. They cannot interpret the data. However, having used these tools ourselves and for our customers, we see a clear correlation between increased coverage, increased numbers of test points (assertions), and improved overall software quality.
The projects: The table shows some key metrics about each of the projects. If you click on the project name, you'll be able to review the supporting data in the linked dashboards in greater detail.
Number of methods: Java projects consist of packages, which consist of classes, which contain methods. The number of methods is a good indication of the size, scope, and complexity of a project. The full dashboard report also lists the number of classes, the number of executable lines of code, as well as the number of test classes, test methods, and executable lines of test code in the associated JUnit code.
Coverage: Before you can make assertions that will test code, you must be able to execute it. The dashboards report coverage as a combination of both line and condition coverage. Line coverage is a measurement of what percentage of lines of code are executed at least once during test execution. Condition coverage is a measurement of code execution that shows what percentage of all Boolean conditions in a unit of code have occurred at least once during test execution. Condition coverage provides a better measurement of the logical "testing space."
In the detailed dashboards, we present a new statistic called Outcome Coverage. Outcome coverage can only be measured for Agitator assertions, not for JUnit assertions. Outcomes are the results of method calls. For example, a method that can return a value or throw two different exceptions has three possible outcomes. The best coverage result is when all three outcomes occur during testing.
Number of assertions: This is the number of assertions created in either JUnit or Agitator. Assertions define expected behavior of the tested software and pass or fail during test execution. Assertions correspond to test points. You can analyze which of the assertions failed, in what method, and how.
Classes with test points: This number gives the percentage of the total number of classes that have assertions associated with them. The full dashboard report also lists the more granular metrics of percentage of methods with test points and outcomes with test points.
What Other Details Are Available?
In the supporting pages for each project (get there by clicking on the project’s name in the left-hand column of the main table), we present detailed data for each of the items above, plus extra information about the tests and results.
Untested code: The summary page of the dashboard report for each project also lists a set of key indicators about the code that has not been tested.
Targets: For each software project you can specify the minimum acceptable values for certain variables. These variables will be printed on a green background if they are equal to or larger than the threshold, and they'll be on a red background if they fail to meet the threshold.
Overrides: Overrides are a mechanism in Agitator to give developers the ability to exempt certain test results from being measured by the dashboard. Specifically:
- Override 1 (Bugs): If an assertion failure is the result of an issue that is known to the developer, but will not be immediately fixed, the developer can override the assertion failure and mark it as a bug. This way it does not interfere with the progress of the project.
- Override 2 (Suppressions): If the developer wants to exclude certain classes or methods from unit testing, (s)he can suppress it, providing a note stating the reason why.
- Override 3 (Coverage): In some cases, blanket target coverage levels prove to be unrealistic for a particular class or method. In those cases the developer can override them with better coverage targets. The dashboard makes it possible to easily inspect the coverage overrides.
- Override 4 (Exclusions): Some classes and/or methods may not be easily unit tested. For example, GUI code does not lend itself to unit testing. By marking them as exclusions, the developer avoids having these classes and methods negatively impact the project-level dashboard.
- Testing trends: Charts on the project summary page show trends in four key metrics (Test Failures, Coverage Percentage, Percentage of Classes with Test Points, and Total Test Points) between consecutive updates to the dashboard. Early in the open quality initiative, these charts may not yet show many data points.
- Zooming in: The dashboard reports have tabs that let you review the data per package, per class (with details per method), per test, and per developer. In this Open Quality page, the detailed information is only provided for the open source projects. For the other projects, developer names and specific class and method names are not provided (they are of course available to the development teams on these projects).
- Analysis: The analysis tab lists the highest risk classes (based on complexity and usage) with assertion failures and/or no coverage. It also shows the distribution of complexity and coverage across classes and methods.
Disclaimer
This data is provided by Agitar Software and other contributors on an AS IS basis. The data is believed to be correct at the time of publication, but no warranties or other representations are made regarding the fitness of this data for a particular purpose, merchantability, or non-infringement.
| Projects Analyzed | ||||||||
|---|---|---|---|---|---|---|---|---|
| Projects | Number of Methods | Executable Lines | Number of Assertions | Coverage | Classes with Test Points | Test Failures | Date Updated | Links |
| *AgitarOne (latest) | 14092 | 71445 | 61089 | 82.2 | 92% | 7 | Mar 13, 2007 | Project Page |
| *AgitarOne 4.0.1 | 14097 | 70780 | 45835 | 81.7 | 90.9% | 8 | Apr 18, 2007 | Project Page |
| *AgitarOne 4.1 | 14050 | 71282 | 56746 | 65.4 | 91% | 1 | Apr 26, 2007 | Project Page |
| *AgitarOne 4.2 | 14241 | 72967 | 61935 | 80.8 | 91.6% | 3 | Aug 16, 2007 | Project Page |
| *AgitarOne 5.0 | 14239 | 72973 | 61820 | 82 | 91.5% | 19 | Nov 01, 2007 | Project Page |
| *Agitator 2.5 | 13264 | 63635 | 31494 | 75.6 | 89% | 3 | Jul 07, 2005 | Project Page |
| *Agitator 2.6 | 13155 | 67523 | 29883 | 78.9 | 85.9% | 4 | Aug 17, 2005 | Project Page |
| *Agitator 3.0 | 13423 | 68347 | 30699 | 79.4 | 87.3% | 0 | Sep 28, 2005 | Project Page |
| *Agitator 3.0.5 | 13553 | 68990 | 30998 | 80.2 | 87.2% | 1 | May 11, 2006 | Project Page |
| *Agitator 3.0.6 | 13548 | 69111 | 31011 | 79.7 | 87.2% | 3 | Sep 27, 2006 | Project Page |
| *Agitator 3.0.7 | 13547 | 69111 | 30983 | 80 | 87.2% | 0 | Apr 26, 2007 | Project Page |
| *Management Dashboard (latest) | 1466 | 5360 | 5383 | 93.9 | 98.5% | 0 | Mar 13, 2007 | Project Page |
| *Management Dashboard 2.5 | 1309 | 4934 | 4863 | 86.7 | 99.2% | 0 | Jul 07, 2005 | Project Page |
| *Management Dashboard 2.6 | 1364 | 5370 | 5475 | 90.1 | 100% | 0 | Aug 17, 2005 | Project Page |
| *Management Dashboard 3.0 | 1279 | 5055 | 5298 | 90.2 | 100% | 0 | Sep 28, 2005 | Project Page |
| *Management Dashboard 3.0.5 | 1276 | 5066 | 5304 | 90.4 | 100% | 0 | May 11, 2006 | Project Page |
| *Management Dashboard 3.0.6 | 1276 | 5066 | 5315 | 89.7 | 100% | 2 | Sep 27, 2006 | Project Page |
| *Management Dashboard 3.0.7 | 1276 | 5066 | 5315 | 90.1 | 100% | 2 | Dec 28, 2006 | Project Page |
| *Management Dashboard 4.0.1 | 1447 | 5265 | 5297 | 93.8 | 99.2% | 0 | Apr 26, 2007 | Project Page |
| *Management Dashboard 4.1 | 1469 | 5380 | 5504 | 84.3 | 98.5% | 0 | Apr 26, 2007 | Project Page |
| *Management Dashboard 4.2 | 1523 | 5987 | 5414 | 93.8 | 97.9% | 4 | Aug 16, 2007 | Project Page |
| *Management Dashboard 5.0 | 1647 | 6607 | 6864 | 90.9 | 94.6% | 8 | Nov 07, 2007 | Project Page |
| Berkeley DB Java Edition 3.0.12 *(preliminary result) | 5995 | 28381 | 7414 | 64.4 | 25.9% | 14 | Jun 02, 2006 | Project Page |
| Cruise Control 2.2.1 | 1212 | 6135 | 988 | 51 | 47% | 0 | Aug 25, 2005 | Project Page |
| Cruise Control 2.4.1 | 2015 | 9894 | 2126 | 54.9 | 54.5% | 0 | Apr 04, 2006 | Project Page |
| dom4j (latest) | 2510 | 6416 | 1480 | 52 | 27.8% | 0 | Sep 06, 2006 | Project Page |
| dom4j 1.5.2 | 2479 | 7444 | 1355 | 36.4 | 47.1% | 96 | May 02, 2005 | Project Page |
| dom4j 1.6.1 | 2475 | 7700 | 1480 | 44.1 | 48.5% | 0 | Aug 18, 2005 | Project Page |
| Fitnesse (latest) | 2173 | 0 | 3265 | 0 | 46% | 5 | Jul 12, 2006 | Project Page |
| Fitnesse 11-05-04 | 1886 | 7178 | 2577 | 77 | 44.4% | 3 | Apr 27, 2006 | Project Page |
| Hibernate 2 (latest) | 5047 | 15673 | 1116 | 62.2 | 4.6% | 1 | Jul 08, 2005 | Project Page |
| Hibernate 2.1.8 | 4820 | 14883 | 1116 | 64.1 | 4.7% | 1 | May 03, 2005 | Project Page |
| Jakarta-Commons Collections (latest) | 3539 | 10429 | 5288 | 77.8 | 36.8% | 0 | Apr 03, 2006 | Project Page |
| Jakarta-Commons Collections 3.1 | 3520 | 10378 | 5047 | 77.7 | 36.6% | 0 | Jul 08, 2005 | Project Page |
| Jasper Reports | 1476 | 5556 | 403 | 0 | 7.1% | 0 | Jun 01, 2006 | Project Page |
| jdom (latest) | 839 | 3426 | 1014 | 38.2 | 21.1% | 0 | Jun 13, 2006 | Project Page |
| jdom 1.0 beta10 | 811 | 3191 | 1014 | 39.5 | 20.3% | 0 | May 03, 2005 | Project Page |
| Lucene (latest) | 1583 | 7339 | 1574 | 67.4 | 33.2% | 0 | Nov 16, 2005 | Project Page |
| Lucene 1.4.3 | 1396 | 6415 | 1201 | 64.1 | 34.6% | 0 | May 03, 2005 | Project Page |
| Spring (latest) | 9880 | 32125 | 11056 | 23 | 35.8% | 1 | Apr 03, 2006 | Project Page |
| Time and Money Code Library (latest) | 475 | 881 | 719 | 83.1 | 83.3% | 0 | Jul 10, 2006 | Project Page |
| TimeAndMoney | 410 | 1258 | 743 | 81.7 | 68.3% | 0 | Nov 09, 2006 | Project Page |