CPANTS update

Blog entries
2008 Oct 15

Shana Tova - New Year's resolution.
2008 Oct 15

Perl needs is_number and similar functions (nearly built in).
2008 Sep 22

The Quest for the Perfect Editor.
2008 Sep 04

Living on the border.
2008 Sep 02

TAP - Test Anything Protocol.
2008 Aug 31

Padre - the journey I..
2008 Aug 21

Who needs and IDE for Perl anyway?.
2008 Aug 09

Padre project web site.
2008 Jul 27

Padre.
2008 Jul 23

White Camel.
2008 Jul 18

Name a Perl IDE - get a Perl book or YAPC ticket.
2008 Jul 09

QA Hackathon in Israel.
2008 Jul 01

OSDC Israel 2009 - Call for organizers.
2008 Jun 11

Selenium on Ubuntu 8.04 (Hardy).
2008 Jun 09

Testing Hello World.
2008 Jun 08

Wifi is working again!.
2008 Jun 07

CPANTS update.
2008 Jun 04

Frequent Internet blackouts.
2008 Jun 03

Upgrading to Ubuntu 8.04 Hardy on Compaq (HP) nc6400. .
2008 May 24

Test Automation Tips.
2008 May 22

Open Source IDE for Perl.
2008 May 21

This week in Ruby.
2008 May 21

Being included on Planet Perl.
2008 May 14

Adding tag cloud to the blog.
2008 May 14

Ubuntu 7.04 (beta) Feisty Fawn on Compaq (HP) nc6400.
2008 May 13

Test automation using Perl master class in Chicago.
2008 May 13

Adding tags to the blog.
2008 May 09

Automated Testing in PHP, Python, Ruby and Perl.
2008 Apr 03

Strawberry Perl for Windows.
2008 Apr 01

Oslo Hackathon day -4.
2008 Mar 28

Blogging about Perl outside the community?.
2008 Mar 27

OSCON Proposals rejected.
2008 Mar 26

Preparing for the QA Hackathon in Oslo.
2008 Mar 25

Missing licenses on CPAN modules?.
2008 Mar 24

License of Perl Modules on CPAN.
2007 Dec 24

Joining Technorati?.
2007 Dec 24

Regular Expressions in Perl 5.10.
2007 Dec 24

Switching in Perl 5.10.
2007 Dec 24

Smart Matching in Perl 5.10.
2007 Dec 24

What's new in Perl 5.10? say, //, state.
2007 Dec 23

The Zulo interview was published.
2007 Dec 08

Frequency of programming languages on LinkedIn.
2007 Dec 06

Interview in Zulo.
2007 Dec 06

Sun Startup Essentials Launch.
2007 Aug 25

Testing PostgresSQL.
2007 Aug 25

Testing Pugs and Perl 6.
2007 Aug 22

Testing Ruby.
2007 Aug 22

Testing GHC, the Glasgow Haskell Compiler.
2007 Aug 22

Testing NUT, the Network UPS Tools.
2007 Aug 21

Testing SQLite .
2007 Aug 20

Smoked Parrot.
2007 Aug 20

Quality Assurance of Perl 5.
2007 Jul 09

Using mod_perl for szabgab.com.
2007 Jul 07

Quality Assurance and Automated Testing in Open Source Software.
2007 Jul 07

Add tags to CPAN modules via CPAN::Forum .
2007 Jun 15

Windows on VMware.
2007 Jun 13

Reducing the social gap of the information age.
2007 May 25

Moving to a new server.
2007 May 04

Preparing an application for distribution.
2007 May 01

Spreadsheet::ParseExcel is looking for a maintainer.
2007 Apr 28

CPAN Modules in Linux Distributions.
2007 Apr 18

Version control of single files using Subversion.
2007 Apr 13

Testing results, Perl and CPAN module availability.
2006 Aug 05

Perltraining.org split into two.
2006 Jul 23

Upgrading Ubuntu to 6.06, (Dapper Drake).
2006 Jul 22

Ginger Spam Salad.
2006 Jul 20

Automating the blog.
2006 Jul 19

Wish list: search engine for Perl related sites.
2006 Jul 19

Perltraining.org .
2006 Jul 19

More blog related issues.
2006 Jul 19

Starting a blog.

 

home | blog

CPANTS update

Published on 2008.06.07 at 11:39:42

Tags: testing, perl, CPAN, kwalitee, quality

There are tons of blogs and articles trying to find an answer on How to measure software quality. As this is a rather difficult question and we don't really have a good tool for measuring it Michael Schwern - one of the key persons in the Perl QA team - came up with the idea to measure Kwalitee instead.

He even created a tool called CPANTS that measures Kwalitee. The tool is now maintained by Thomas Klausner with my occassional additions to the code.

CPANTS has currently 48 metrics. Some are direct such as has_test others are indirect such as is_prereq or some of the recent ones such as distributed_by_debian.

is_prereq indicates if the module is used by some other module of some other author on CPAN. Using this as a quality indicator uses the same argument as in the academics, where the important metric is not how many articles have you written but rather how many other articles references yours and how important those articles are. Google uses the same idea in ranking pages.

I assume the same is true on CPAN. CPAN authors are usually picky. So if a CPAN author uses module X that probably means modules X is good. Or at least unavoidable.

In a similar way we have added a set of new metrics:

  • distributed_by_debian indicates if the module has beed inculded in Debian. Inclusion in a Linux distribution likely means there is a need for that module in the user base. In return that probably means the module is, well, usable. (Currently there are only 790 modules listed as such due to some fragmantation in the way Debian maintains Perl modules but I hope this will be soon resolved.)
  • latest_version_distributed_by_debian indicates if the version included in Debian is the latest from CPAN. Obviously this indicator has some problems. A module that has frequent updates will fail this metric most of the time as the Debian people take their time upgrading the module. After all they want to make sure that they only include good versions of a module. So take this metric with appropriate caution.
  • has_no_bugs_reported_in_debian Debian has its own bug reporting system, separate from RT used by CPAN authors. It is quite possible that there is a bug in the version distributed by Debian that has already been fixed on CPAN but on the long run, modules without open bug reports are likely to be of better quality for some meaning of quality.
  • has_no_patches_in_debian As the Debian maintainer see themself responsible for providing high quality software to their users sometimes they fix bugs in the software they distribute. These fixes are called patches. Normally these patches should be integrated back to the main version of the module on CPAN and then the Debian maintainer should be able to update the version they distribute by a unpatched version.
    Still as long as there are patches for a module it means there is a bug somewhere in the module on CPAN.

In addition there is a new experimanetal metric called

  • uses_test_nowarnings.
    Most of the CPAN modules come with plenty of tests. The CPAN Testers report any test failure which is really cool. Still sometime I encounter modules that while they pass their test suit they also generate warnings during the test execution.
    These warnings are probably never reported as most people run the tests in an unattended mode.
    For now it seems that the best way to catch and report these warnings is by using Test::NoWarnings in every test script. So this new metric checks if all the test script use it.

The metrics concerting Debian server two purposes. On one hand they can be used as indicators for the kwalitee of a module. On the other hand providing an easy way for CPAN authors to monitor what happens to their module can help resolving issues encountered in Debian.

We started with Debian but I really hope soon we'll be able to hook up other distributions too such as FreeBSD and Fedora

Comments

chromatic

James E Keenan

Dave Cross

Adam Kennedy

module-authors list

related on module-authors list

perl-qa list

related on perl-qa list

Comments?

Instead of enabling comments here, please write your comment in your own blog and send me the link so I can add it here.

Last Update: Tue Sep 25 17:06:26 2007