Evaluating and enhancing FindBugs to detect bugs from mature software; Case study in Valuatum

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Itkonen, Juha
dc.contributor.author Vestola, Mikko
dc.date.accessioned 2012-10-03T09:38:02Z
dc.date.available 2012-10-03T09:38:02Z
dc.date.issued 2012
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/5286
dc.description.abstract Static code analysis (SCA) is a popular bug detection technique. However, several problems slow down the adoption of SCA. First of all, when first applying SCA to a mature software system, the SCA tools tend to report a large number of alerts which developers do not act on. Second, it is unclear how effective SCA is to find real defects. Therefore, we decided to conduct a case study in Valuatum to evaluate and enhance the effectiveness of FindBugs, a popular SCA tool for Java. The main goal of this thesis is to learn how to make FindBugs as an effective tool providing immediate, useful feedback for developers in Valuatum. We have used several approaches to study FindBugs. First, we have analyzed how many and what types of fixed defects could have been prevented with FindBugs. Second, we have developed custom detectors for the most important defects missed by FindBugs. Third, we have studied the precision of FindBugs to detect open defects. Last, we have presented several approaches, such as defect differencing and IDE integration, to deal with the large number of alerts. The results indicate that FindBugs is not very effective in detecting fixed defects. We estimated that 9-16% of the fixed bugs should be feasible to detect with SCA. However, only 0 - 2% of the reported fixed bugs and 1 - 6% of the unreported fixed bugs could have been prevented with FindBugs. Moreover, only 18.5% of the high-priority open alerts are considered actionable. Nevertheless, we think FindBugs is a cost-effective tool, because it detected several important open issues and can be enhanced with custom detectors. en
dc.description.abstract Staattinen koodianalyysi (SCA) on suosittu menetelmä ohjelmistovirheiden eli bugien etsinnässä. Sen käyttöönottoa kuitenkin haittaavat useat ongelmat. Ensinnäkin SCA tuottaa kehittyneissä ohjelmistoissa paljon varoituksia, joihin käyttäjät eivät reagoi. On myös epäselvää, kuinka tehokkaasti SCA löytää oikeita bugeja. Siksi toteutimmekin tässä työssä tapaustutkimuksen Valuatumilla, jossa arvioimme ja parannamme FindBugsin tehokkuutta. Työn päätarkoitus on oppia hyödyntämään FindBugsia niin, että se antaisi mahdollisimman hyödyllistä ja välitöntä palautetta Valuatumin ohjelmistokehittäjille. Käytimme tutkimuksessa useita eri tapoja FindBugsin arviointiin. Ensinnäkin analysoimme, mitä korjattuja ohjelmistovirheitä FindBugs olisi voinut estää. Kirjoitimme myös omia bugi-ilmaisimia niille tärkeimmille virheille, joita FindBugs ei löytänyt. Lisäksi tutkimme FindBugsin löytämiä avoimia bugeja sekä esitimme erilaisia tapoja, miten hallita suuria määriä varoituksia. Tutkimustulokset viittaavat siihen, että FindBugs ei ole kovin tehokas löytämään korjattuja ohjelmistovirheitä. Arvioimme, että SCA:lla pystyisi löytämään 9 - 16% korjatuista bugeista. Kuitenkin vain 0 - 2 % raportoiduista ja 1 - 6 % raportoimattomista bugeista olisi voitu estää FindBugsilla. Avoimista FindBugsin löytämistä korkeimman prioriteetin varoituksista vain 18,5 % luokiteltiin oleellisiksi. FindBugs on kuitenkin mielestämme kustannustehokas työkalu bugien etsintään, koska sitä pystyy tehostamaan omilla bugi-ilmaisimilla ja sen avulla olemme löytäneet useita tärkeitä virheitä koodista. fi
dc.format.extent [10] + 81 s.
dc.format.mimetype application/pdf
dc.language.iso en en
dc.title Evaluating and enhancing FindBugs to detect bugs from mature software; Case study in Valuatum en
dc.title FindBugsin arviointi ja tehostaminen kehittyneissä ohjelmistoissa; Tapaustutkimus Valuatumilla fi
dc.type G2 Pro gradu, diplomityö fi
dc.contributor.department Tietotekniikan laitos fi
dc.subject.keyword FindBugs fi
dc.subject.keyword Java fi
dc.subject.keyword SCA fi
dc.subject.keyword staattinen koodianalyysi fi
dc.subject.keyword staattinen analyysi fi
dc.subject.keyword väärät varoitukset fi
dc.subject.keyword FindBugs en
dc.subject.keyword Java en
dc.subject.keyword SCA en
dc.subject.keyword static analysis en
dc.subject.keyword static code analysis en
dc.subject.keyword program analysis en
dc.subject.keyword code checking en
dc.subject.keyword false positives en
dc.identifier.urn URN:NBN:fi:aalto-201210043220
dc.type.dcmitype text en
dc.programme.major Tietojenkäsittelyoppi fi
dc.programme.mcode T-76
dc.type.ontasot Diplomityö fi
dc.type.ontasot Master's thesis en
dc.contributor.supervisor Lassenius, Casper


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search archive


Advanced Search

article-iconSubmit a publication

Browse

My Account