ubuntuusers.de

Coverity bescheinigt Open-Source-Software eine gute Qualität

linux.png

Die Qualität von Quellcode lässt sich anhand verschiedener Faktoren bestimmen. Sei es Kürze, Effizienz, Struktur oder eben auch Fehlerfreiheit. Diese Fehlerfreiheit kann man wiederum mit verschiedenen Werkzeugen messen. Eines dieser Werkzeuge ist Coverity.

Open-Source-Report 2012

Coverity 🇬🇧 ist eine Firma, die sich mit statischer Code-Analyse (siehe unten) beschäftigt. Seit 2008 wird mit Hilfe der Software „Coverity Scan“ ein jährlicher Bericht herausgegeben, der die Qualität (im Sinne von Fehlerfreiheit) von Open-Source-Software prüft. Diese Woche ist der Coverity Scan: 2012 Open Source Report 🇬🇧 erschienen, der auch als 61-seitiges PDF-Dokument 🇬🇧 vorliegt.

Der Test

Geprüft wurden verschiedene Open-Source-Projekte, wie z.B. der Linux Kernel, Apache oder PHP, aber auch kommerzielle Software von über 300 Coverity-Kunden wurde (anonymisiert) zum Vergleich herangezogen. Im Report für das Jahr 2012 wurden 118 Open-Source-Programme und 250 proprietäre Programme verglichen.

Als Ergebnis kam heraus, dass in den getesteten Open-Source-Projekten durchschnittlich 0,69 Fehlerstellen je 1000 Code-Zeilen gefunden wurden. Bei proprietären Programmen lag die Fehlerrate ähnlich bei 0,68 Fehlern je 1000 Code-Zeilen. Ein Wert unter 1,0 wird dabei allgemein als gut angesehen.

Aus der Code-Größe ließ sich ablesen, dass bei proprietären Programmen die Fehlerrate sinkt, je mehr Zeilen Code das Projekt besitzt. Bei Open-Source-Programmen war dies genau gegenteilig: ein größeres Programm bedeutete eine höhere Fehlerrate.

Als Grund für dieses Ergebnis gibt Coverity an, dass Open-Source-Programme vor allem am Anfang ihrer Entstehung viele Entwickler anziehen, die über den Code schauen. Je älter und größer ein Projekt aber werde, desto weniger Entwickler arbeiten aktiv daran und entsprechend schwerer würde die Verwaltung und Wartung des Codes werden.

Gelobt wurde vor allem die Qualität des Linux Kernels. Zitat: „We are happy to report that Linux continues to be a “model citizen” open source project for good software quality.“ Dieses Lob hat sich der Kernel verdient, da sich bei knapp 7,5 Millionen analysierter Code-Zeilen eine Fehlerrate von 0,66 ergab. In der zuletzt untersuchten Kernel-Version 3.8 lag die Fehlerrate sogar bei nur 0,59 Fehlern pro 1000 Code-Zeilen.

Hintergrund

Coverity zählt zu den Werkzeugen für eine statische Code-Analyse. Dies sind Programme, mit denen man ohne den Quellcode übersetzen (kompilieren) zu müssen, den Code anhand verschiedener Regeln (z.B. MISRA-C) prüft. Zu den Regeln zählen z.B. Speicherlecks, Zugriff außerhalb von definierten Speicherbereichen, toter Code (der nicht durchlaufen werden kann) und vieles mehr. Sehr viele große Projekte nutzen solche Analyse-Programme, um nicht offensichtliche und potentielle Fehler im Code zu finden und zu beseitigen.

Neben Coverity gibt es noch andere kommerzielle Programme, die Code analysieren und versuchen Fehler aufzudecken. Dazu zählen auch das wohl bekannteste Werkzeug Lint 🇬🇧, aber auch CodeSonar, die Axivion Bauhaus Suite und Klocwork Insight 🇬🇧.

Open-Source-Projekte können sich für einen Scan 🇬🇧 bei Coverity registrieren.