Kako hroščati so odprtokodni programi

metalc

10. maj 2006 ob 12:40:19

V zadnjem obdobju smo večkrat bili priča raznim kampanjam, kako "preluknjani" naj bi pravzaprav bili odprtokodni programi. Pri Coverityju so se zato odločili za metodo, ki daje otipljivejše in s številkami podkrepljene rezultate. V sodelovanju s Stanfordsko univerzo so tako napisali programje, ki v izvorni kodi izvede statično analizo možnih hroščev (npr. spominski izpusti, prekoračitve, napake pri kazalcih, uporaba že "osvobojenega" dinamično zaseženega pomnilnika in druge možne ranljivosti).

Skozi to sito so spustili 32 odprtokodnih izdelkov in našteli v povprečju 0,43 hrošča na 1000 vrstic kode. Še bolje od tega povprečja so jo odnesli najpopularnejši izdelki. V 3 milijonih vrstic Linuxovega jedra naj bi tako odkrili po enega žužka le na vsakih 3000 vrstic, pri Apachu pa le v vsaki 4000. vrstici. Razlog za zadovoljstvo imate lahko tudi spletni mojstri, ki prisegate na navezo LAMP, kjer so v povprečju odkrili 0,29 napak/kilovrstico. Najslabše jo je odnesla AMANDA (pripomoček za delanje varnostnih kopij prek omrežja), kjer so na vsakih 1000 vrstic odkrili kar 1,237 hrošča, medtem ko je "zmagal" večpredstavnostni predvajalnik XMMS z le 0,051 napake na kilovrstico.

Več o rezultatih in metodologiji lahko izveste od tule, kjer se morate najprej brezplačno registrirati. Žal nikjer ne piše nič o tem, kako so upoštevali komentarje, "dekorativne" prazne vrstice in podobne možne trike za "olepševanje" statistike. Sicer pa se, če tudi sami snujete kakšen odprtokodni projekt, na taisti strani lahko domenite, da podobno analizo naredijo brezplačno tudi za vas.

Sicer najbrž vsi poznamo primerjalno analizo laži, podlih laži in statistike, vseeno pa bi najbrž marsikoga zanimali rezultati podobne analize Microsoftove kode, ki bi jo lahko dal na podlagi kakšnega NDA...