Fehler im Programm-Code

Open Source gleichauf mit proprietärer Software

07.05.2013
Von Tobias Wendehost
Die Code-Qualität von Open Source und proprietärer Software ist nahezu identisch. Der Coverity Open Source Report versucht dies anhand der Analyse von 450 Millionen Code-Zeilen zu belegen.
Der untersuchte Open-Source-Code übertraf in den letzten fünf Jahren den Standard für Softwarequalität.
Der untersuchte Open-Source-Code übertraf in den letzten fünf Jahren den Standard für Softwarequalität.
Foto: fotolia.com/XtravaganT

Laut Coverity Open Source Report gibt es keine Gründe, die gegen den Einsatz von Open-Source-Software sprechen. Dies unterstreichen die Autoren der Studie mit dem Verweis auf die Datenbasis ihres Reports: Insgesamt nahm Coverity 450 Millionen Code-Zeilen hinsichtlich ihrer Qualität unter die Lupe. Die durchschnittliche Basis der Open-Source-Projekte lag bei 580.000 Code-Zeilen. Mehr als ein Drittel der analysierten Programme hatte weniger als 100.000, rund jedes zehntes Projekt dagegen über eine Millionen Code-Zeilen.

Defektraten gleichauf

Für den aktuellen Report ermittelte Coverity 0,69 Fehler pro 1000 Code-Zeilen, was einen leichten Anstieg gegenüber 2011 (0,45 Defekte pro 1000 Code-Zeilen) darstellt. Gleichzeitig lag der Wert bei kommerziellen Programmen bei 0,68 Punkten pro 1000 Zeilen. Maßstab für eine qualitativ hochwertige Software ist laut Coverity ein Fehler auf 1000 Zeilen Sourcecode. Die Fehlerhäufigkeit ist allerdings geringer als 2010, als durchschnittlich 0,81 Fehler ermittelt wurden.

Jahr des Coverity Scan Reports

Durchschnittliche Defekte pro 1000 Code-Zeilen

2008

0,30

2009

0,25

2010

0,81

2011

0,45

2012

0,69

Ein Grund für den leichten Anstieg sei unter anderem die verbesserte Analysemethode. Die Häufung der Fehlerhäufigkeit sei daher nicht ungewöhnlich. "Mit einem Wert zwischen 0,25 und 0,81 in den letzte fünf Jahren, können wir mit Sicherheit sagen, dass sich Open-Source-Code nicht nur kommerziellem Code annähert, sondern auch den Standard für Softwarequalität übertrifft", so die Autoren des Reports.

Neben der Softwarequalität konnte Coverity auch eine Korrelation zwischen Codevolumen und -qualität feststellen. Bei kommerziellen Projekten nahm die Fehlerhäufigkeit ab einer Millionen Codezeilen gegenüber kleineren Programmen ab. So betrug die Defektrate bei unter einer Millionen Zeilen Code durchschnittlich 0,98 Fehler. Bei Projekten mit mehr als einer Millionen Zeilen verringerte sich der Wert auf 0,66 Fehler. Der Vergleich mit Open-Source-Software zeigt dagegen den gegenteiligen Effekt: Bis zu einem Umfang von einer Millionen Zeilen lag die Defektrate bei 0,44. Ab einer Millionen Code-Zeilen betrug der Wert 0,75. Diese Entwicklung macht Coverity an unterschiedlichen Dynamiken innerhalb der Entwicklerteams fest.

Linux bleibt Qualitätsbenchmark

Linux hat wie in den zurückliegenden Jahren eine Defektrate von weniger als 1,0 erreicht. Das weltweit bekannteste Open-Source-Projekt kam bei der Analyse auf einen Wert von 0,66 Fehler pro 1000 Zeilen Sourcecode. Coverity untersuchte hierfür rund 7,4 Millionen Zeilen. Bis zum Ende des Reports stellten die Autoren der Analyse sogar nur einen Wert von 0,59 bei der aktuellen Linux Version 3.8 fest.

Coverity hat während des Untersuchung fast 22.000 Defekte behoben.
Coverity hat während des Untersuchung fast 22.000 Defekte behoben.
Foto: Coverity

Neben der Fehlersuche wurden während der Analyse auch 36 Prozent der Defekte behoben. Diese fielen laut Coverity in die Kategorie Hochrisiko-Defekte, durch die eine potenzielle Gefahr für die Sicherheit und Qualität der Software ausgehen kann. Zu den häufigsten Hochrisiko-Defekten zählen Ressourcenleaks, Speicherkorruptionen und unerlaubte Speicherzugriffe. Insgesamt wurden infolge des Scans fast 22.000 Defekte in Open-Sorce-Programmen beseitigt.

Seit 2006 untersucht das US-amerikanische Forschungsprojekt Coverity Scan den Sourcecode von kommerzieller sowie quelloffener Software. Im Jahr 2008 wurde aus dem Projekt ein eigenständiger Softwareanbieter. Für die Analyse hat die Firma das Tool Coverity Safe entwickelt. Neben C/C++-Projekten analysiert das Unternehmen etwa auch Java. Aktuell summierte sich die Zusammenarbeit des Analysespezialisten auf insgesamt 169 aktive Open-Source-Projekte. Die Ergebnisse werden im jährlichen Coverity Open Source Report zusammengefasst.