Vi beskriver ett antal resultat från en kvantitativ studie av fel och misslyckanden i två utgåvor av ett större kommersiellt system. Vi testade en rad grundläggande programvarutekniska hypoteser som hänför sig till: Pareto-principen om fördelning av fel och fel, användningen av tidiga feldata för att förutsäga senare fel- och feldata, mätvärden för felförutsägelse och riktmärkning av feldata. Till exempel fann vi mycket starka bevis för att ett litet antal moduler innehåller de flesta av de fel som upptäcktes vid test av pre-release, och att ett mycket litet antal moduler innehåller de flesta av de fel som upptäcktes i drift. I båda fallen förklaras detta dock inte av modulernas storlek eller komplexitet. Vi hittade inga bevis för tidigare påståenden om modulstorlek på feltäthet, inte heller fann vi bevis för att populära komplexa mätvärden är bra prediktorer av antingen felbenägna eller felbenägna moduler. Vi bekräftade att antalet fel som upptäcktes vid test av pre-release är en storleksordning som är större än det antal som upptäcktes under 12 månaders operativ användning. Vi upptäckte också ett relativt stabilt antal fel som upptäcktes vid motsvarande testfaser. Vårt mest överraskande och viktiga resultat var starka bevis på ett kontraintuitivt förhållande mellan fel före och efter utsläpp: de moduler som är de mest felbenta pre-release är bland de minst felbenta post-release, medan omvänt de moduler som är de mest felbenta post release är bland de minst felbenta pre-release. Denna observation har allvarliga konsekvenser för det vanliga feltäthetsmåttet. Det är inte bara vilseledande att använda det som ett surrogatkvalitetsmått, utan dess tidigare omfattande användning i mätmetoder studier har visat sig vara bristfällig. Våra resultat ger viktiga data-punkter för att bygga upp en empirisk bild av programvaruutvecklingsprocessen. Vi anser dock att inte ens de mycket starka resultat vi har observerat i allmänhet är giltiga som lagar för programvaruteknik eftersom de inte tar hänsyn till grundläggande förklarande data, särskilt testningsansträngningar och operativ användning. När allt kommer omkring kommer en modul som inte har testats eller använts inte att avslöja några fel oavsett dess storlek, komplexitet eller någon annan faktor.
Fenton m.fl. REF undersökte kopplingen mellan antalet fel och modulstorleken i en releasebaserad utvecklingsinställning, men kunde inte relatera feltäthet och modulstorlek till varandra.
Quantitative Analysis of Faults and Failures in a Complex Software System
{'venue': 'IEEE Trans. Software Eng.', 'journal': None, 'mag_field_of_study': ['Computer Science']}