Overgenomen uit tweakers:
Interessant hier is hoe een "fout" word gedefinieerd. Dat staat niet in het artikel, maar als je de bron erbij pakt, dan zie je dat hier gebruikt is gemaakt van zgn. "static analysis". Dit betekent dat er is gekeken naar de code, en vervolgens naar fouten hierin: waar de code ongeldige dingen probeert te doen, welke voor problemen kan zorgen bij het uitvoeren. Hier worden vooral slordigheden van de programmeur gedetecteerd, het gebeurd zelden dat static analysis een echt, fundamenteel probleem onthult.
Een ander nadeel van static analysis is dat niet dat elke gedetecteerde fout ook daadwerkelijk problemen oplevert: programmeurs zijn nog altijd slimmer dan computers, en schrijven soms code welke voor de computer te ingewikkeld is om correct te kunnen analyzeren. Hierdoor zitten er vaak nog zgn. "false positivies" tussen de resultaten van een onderzoek als deze. Andersom is het trouwens ook zo dat de computer nog niet alle fouten van de programmeur kan detecteren.
Hoewel dit wel iets zegt over de kwaliteit van de code, zegt het praktisch gezien helemaal niks over de kwaliteit van de afgeleverde software. Het zegt hoogstens iets over hoe vaak bepaalde soort bugs (meestal crashes) voorkomen. Wat voor de eindgebruiker echter vooral van belang is, is tot in hoeverre het programma doet wat het moet doen. Als bijvorobeeld de Linux kernel nooit crasht, maar ook je harde schijf niet detecteert, is het alsnog een nutteloos stuk software.
Je kan op basis van dit onderzoek dus ook niet concluderen dat opensource software beter is dan proprietaire software, of andersom. Het zegt hoogstens iets over hoe goed de programmeurs zijn in het fixen van hun eigen slordigheden, en hoeveel prioriteit daaraan gegeven wordt.
Bovendien, wat niet in het artikel staat, heeft Coverity de open source projecten van te voren al toegang gegeven tot het scan platform, waarmee het onderzoek is uitgevoerd. Hierdoor hebben zij al de tijd gehad om het type problemen dat deze scanner detecteert al te fixen. De proprietaire code is hier niet voor aangepast, en het is dus geen goed vergelijkend onderzoek.
Daarnaast is er van Open Source software 37 miljoen regels code gecontroleerd welke inderdaad bestonden uit een managed set van code (optimized voor de test) tegenover 300 miljoen regels closed source code (willekeurige code).
Statischisch gezien is het dus mogelijk dat er bij de closed source code een stuk code zat met zo een hoge dichtheid aan fouten volgens de meet methode, dat het gemiddelde van closed source beinvloed werd.
Uiteindelijk zegt deze test dan totaal niets en denk ik dat men in zowel closed source als open source afstand moet nemen van de resultaten omdat de resultaten te gekleurd zijn, de test manipuleerbaar is, de test set onvoldoende is.
Het is het zelfde als twee type's processoren testen of ze een bepaalde oc aankunnen, waarbij 1 fabrikant op voorhand mag cherrypicken terwijl de spullen van de andere fabrikant gewoon op de hoek gehaald wordt. Het resultaat staat vast in zo een geval, en dat geldt ook voor deze test.
Wat ik ook een beetje mis is of de projecten vergelijkbaar zijn in professionaliteit. De closed source projecten worden door anonieme mensen aangeleverd, dus is hoe betrouwbaar is het dat de aangeleverde code ook in dezelfde staat van ontwikkeling is, en is het uberhaupt legaal dat het is gebruikt.
Plus het platform van Coverity is closed source als ik de site zo zie, dus die zou dus ook 0.64 fouten moeten bevatten per 1K regels code.
Het ziet er meer uit als een koop ons testplatform dan een daadwerkelijke studie die te verifieren is.
En een closed source project schaft natuurlijk sneller zo'n pakket aan dan een open source project.