bar

Open Quality™ Dashboards (Beta Version):


On this page we list quality dashboards for our own software products and for selected other projects. We do this as part of our evolving 'Open Quality Initiative' (see sidebar on right). During the beta period we'll expand the list of projects, validate the dashboard reports, and enhance the supporting documentation. We welcome feedback! Let us know what you think at openquality@agitar.com.
 

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

Disclaimer

This is a beta project at Agitar Software. 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. We do review the dashboards briefly before we publish them to the Open Quality table.

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. We welcome feedback and cooperation with the development teams for the open source projects in our list.


What do the Dashboard metrics mean?

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.

What these reports are, and what they are not: These dashboard reports show the results of unit testing. They are not an attempt to show the products' requirements, results of functional/acceptance tests, or the results of system, load, and/or performance tests.

What these reports are, and what they are not (2): These dashboard reports show observable data about unit test results. They cannot interpret the data. However, as we use these tools ourselves and for our customers, we see a clear correlation between increasing coverage, increasing numbers of test points (assertions), and lowered numbers of assertion failures on one hand and improving overall software quality on the other.

Number of methods: Java projects consist of packages, which consist of classes, which contain methods. Even if there are as many ways to organize a piece of code in units as there are developers, the number of methods is some prediction of the size and scope 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.

Number of assertions: The dashboard reports recognize assertions created in both JUnit and 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.

Coverage: Before you can make assertions about the tested 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 code execution that shows 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.

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.

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 2 different exceptions has 3 possible outcomes. The best coverage result is when all three outcomes occur during testing.

Untested code: Although not listed here, 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 threshhold, and they'll be on a red background if they fail to meet the threshhold.

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 target coverage levels for a class or method prove to be unrealistic. 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 dashboard report.

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.

What is the Open Quality™ Initiative?

The Open Quality Initiative is an effort by Agitar Software to help the software industry meet growing calls by customers and legislators to improve the quality of the software systems and products on which the modern economy depends.

Customer organizations such as the Business Roundtable, an association of 150 CEOs, are urging the IT industry to cooperate to improve the quality and reliability of its products and services. In several countries, initiatives are being presented for new legislation to address the problems of software quality and security.

We agree that it is time to challenge the notion that bugs in software cannot be avoided. But we believe that legislation is the wrong approach and that the market has both the obligation and the best chance to solve the problem.

The software industry must step up to this challenge and agree on how it will define and measure the quality of IT products in clear and unambiguous terms. Vendors should be willing to provide data about their quality efforts. We believe it is in the best interest of vendors to publish their software quality metrics publicly. Providers of quality software products will gain a comparative market advantage over providers of shoddy products. This is good for both customers and our industry.

At the same time, we believe that now is the time for customers who buy IT products and services to insist on quantitative measurements of quality in what they are buying. If customers can demand service-level agreements from IT vendors, why not quality-level agreements?

What we'll do

We are releasing dashboard reports with metrics about the testing efforts for each of our commercial products. We encourage our customers to review these reports and learn about our testing efforts. We will be happy to address any questions they may have. We use these dashboard reports every day to drive our own unit testing efforts.

This is open quality.

In addition to our own products, we are also releasing quality dashboards for prominent open-source Java projects. Many open-source projects release their unit tests along with their source code (a great practice). We have used these published unit tests to create the reports. We offer to work with the maintainers of these open-source projects to help them further advance their testing efforts.

We will also encourage vendors of non-open-source Java projects to publish their quality information. They can do so without compromising their intellectual property, and doing so will provide real value to their customers.

For more information or to provide feedback, please contact us at openquality@agitar.com.