Coverity har i forbindelse med et treårig oppdrag fra amerikanske Department of Homeland Security (DHS) undersøkt kildekoden til 32 mye brukt programvare basert på åpen kildekode. Arbeidet er gjort i samarbeid med Computer Science-avdelingen ved Stanford University. Målet med arbeidet er å forbedre sikkerheten og kvaliteten til programvaren. I den forbindelse har Coverity analysert 17,5 millioner linjer med kode for å identifisere tilstedeværelsen av 40 av de mest kritiske sårbarhetene og defektene som finnes i programvare.
Rapporten som nå er tilgjengelig, er det første resultatet fra undersøkelsen som er blitt offentliggjort. Her trekkes spesielt den populære LAMP-stakken, en webpubliseringsplattform bestående av Linux, Apache, MySQL og Perl/PHP/Python, fram som et eksempel på en plattform med et gjennomsnittlig lavt antall feil i koden. Mens det gjennomsnittlige antallet feil i den testede programvare var 0,434 feil per tusen kodelinjer, hadde den samlede LAMP-stakken i snitt 0,29 feil per tusen kodelinjer. Blant komponentene i stakken hadde Perl lavest feiltetthet, mens PHP hadde den høyeste feiltettheten.
Av alle enkeltproduktene som ble testet, hadde multimediespilleren XMMS lavest feiltetthet med bare 0,051 feil per tusen kodelinjer. Høyest feiltetthet hadde backup-løsningen AMANDA, med 1,237 feil per tusen linjer.
Coverity mener at de foreløpige analysene mener at det ikke er noen synlig sammenheng mellom størrelsen på koden og kvaliteten. Selskapet har satt fram tre hypoteser om faktorer for feiltettheten, basert på det selskapet til nå har kunnet måle:
- Antallet utviklere i forhold til størrelsen på koden.
- Andelen av mulige kjøremiljøer som er blitt testet før utgivelse.
- Antallet brukere som benytter programvaren jevnlig.
Dette er områder selskapet vil se nærmere på i tiden framover.
Tabellen nedenfor viser antallet kodelinjer, feil og forholdet mellom feil og antallet kodelinjer i de ulike programvareprosjektene.
Prosjekt | Utestående feilrapporter | Kodelinjer | Defekter per tusen kodelinjer |
---|---|---|---|
AMANDA | 108 | 88.936 | 1,214 |
apache-httpd | 32 | 127.817 | 0,250 |
ethereal | 143 | 1.161.660 | 0,123 |
Firebird | 160 | 250.476 | 0,639 |
Firefox | 108 | 304.641 | 0,355 |
FreeBSD | 632 | 1.582.166 | 0,399 |
Gaim | 113 | 321.783 | 0,351 |
gcc | 98 | 693.013 | 0,141 |
Gnome | 896 | 1.944.751 | 0,461 |
icecast | 12 | 37.055 | 0,324 |
Inetutils | 29 | 72.057 | 0,402 |
Linux-2.6 | 1055 | 3.171.822 | 0,333 |
MPlayer | 285 | 485.192 | 0,587 |
Net-SNMP | 148 | 173.141 | 0,855 |
OpenLDAP | 158 | 257.548 | 0,613 |
OpenSSL | 66 | 194.751 | 0,339 |
OpenVPN | 7 | 69.842 | 0,100 |
Perl | 89 | 479.780 | 0,186 |
PHP | 207 | 431.251 | 0,480 |
PostgreSQL | 297 | 815.700 | 0,364 |
ProFTPD | 26 | 89.650 | 0,290 |
Python | 59 | 259.896 | 0,227 |
Samba | 212 | 312.482 | 0,678 |
snort | 48 | 82.888 | 0,579 |
SQLite | 16 | 60.722 | 0,263 |
Squid | 48 | 140.824 | 0,341 |
tcl | 69 | 120.562 | 0,572 |
wxWidgets | 72 | 303.283 | 0,237 |
X | 1681 | 2.353.980 | 0,714 |
xine | 347 | 576.667 | 0,602 |
XMMS | 6 | 116.864 | 0,051 |
Ser man på det absolutte antallet feil, er det X (Window System) som har flest feil med 1681. XMMS, som bare hadde seks feil, gjør det også best på dette området.
Selve rapporten (Open Source Quality Report) kan lastes ned fra denne siden (krever registrering).