Qualité logicielle : PHP et PostgreSQL plus propres que Linux

Qualité logicielle : PHP et PostgreSQL plus propres que Linux Le spécialiste américain du test logiciel Coverity a publié l'édition 2011 de son indice sur la qualité des codes Open Source. Le palmarès révèle d'importantes disparités.

Le spécialiste du test logiciel Coverity publie son indice annuel portant sur la qualité du code des projets Open Source. Une étude que l'éditeur avait initialement lancée en 2006 en partenariat avec le département de la sécurité fédérale américain.


Sur les 45 projets Open Source du panel (ceux jugés les plus actifs par l'éditeur), totalisant 37 millions de lignes de code, Coverity constate un taux de densité de défauts (correspondant au nombre de défauts détectés pour 100 lignes de code) de 0.45. Dans son commentaire, il indique que la densité de défauts généralement admise par les acteurs du monde propriétaire est inférieure ou égal à 1.0.


Mais aux côtés de cette première analyse, Coverity a aussi décortiqué 300 millions de lignes de code issues de 41 projets propriétaires (anonymes). Le taux de densité de défauts moyen de ce second panel s'élève à 0.64. Il est donc légèrement supérieur aux applications Open Source. Autre enseignement : les projets propriétaires audités comptent un nombre de lignes de code moyen beaucoup plus important que pour les logiciels Open Source, 7,5 millions pour les premiers contre 832 000 pour les seconds.

Les projets PHP et PostgreSQL plus mâture sur le terrain de l'analyse du code ?

 Dans son étude, l'éditeur de solutions de test s'est penché plus particulièrement sur trois projets Open Source : Linux, PHP et PostgreSQL. Le principal constat de Coverity autour de ce triptyque est plutôt logique. Plus le nombre de lignes de code est important, moins la maintenance corrective d'un projet Open Source est simple, et plus la densité de défauts est élevée.
 

Ainsi, Linux affiche un taux de densité de défauts de 0,62, contre 0,20 pour PHP et 0,21 pour PostgreSQL. Une problématique qui monterait en puissance pour le projet de Linus Torvald, le noyau et ses composants associés étant passés de 5,3 à 6,8 millions de lignes entre décembre 2010 et décembre 2011, et la version 3.3 pourrait quant à elle atteindre 15 millions de lignes.

 
Comparaison de la qualité du code de Linux 2.6, PHP 5.3 et PostgreSQL 9.1
  Linux 2.6 PHP 5.3 PostgreSQL 9.1
Source : Coverity
Nombre de lignes de code scannées 6 849 378 537 871 1 105 634
Densité de défauts (au 31/12/2011) 0.62 0.20 0.21
Défauts non-corrigés (au 31/12/2011) 4 261 97 233
Nombre de défauts corrigés en 2011 1,283 210 78
Défauts non-corrigés (au 01/01/2011) 3 457 14 247

Mais, le recours à une infrastructure d'analyse de code ne serait pas non plus étranger à ces disparités. PHP et PostgreSQL étant plus matures sur ce terrain que le projet Linux, en tout cas selon Coverity...
 

Sans surprise, Coverity constate enfin un écart non-négligeable entre les applications considérées comme critiques et celles non-critiques. Pour les premières, il relève un taux de densité de défauts de 0.32, contre 0.68 pour les secondes.