Praktická aplikace Facebook Infer na systémový kód

but.committeeprof. Ing. Tomáš Vojnar, Ph.D. (předseda) doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda) Ing. František Grézl, Ph.D. (člen) doc. Ing. Jan Kořenek, Ph.D. (člen) Dr. Ing. Petr Peringer (člen)cs
but.defenceStudent nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A. Otázky u obhajoby: Based on which criteria you selected the filters to implement? Did you consider implementing the proposed methods (a better incremental analysis or TP filtering) directly in Infer? How difficult would that be? Dotaz na filtry použité v heuristice pro detekci paměťových úniků. Dotaz na zvolené implementační jazyky a rozsah implementace.cs
but.jazykangličtina (English)
but.programInformační technologiecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorVojnar, Tomášen
dc.contributor.authorBeránek, Tomášen
dc.contributor.refereeMalík, Viktoren
dc.date.created2021cs
dc.description.abstractStatická analýza je dnes často využívána ve vývojovém procesu pro hledání defektů v produkovaném softwaru. I když nástroje na statickou analýzu dokáží hledat defekty v softwarech o miliónech řádků kódu, mají také řadu nevýhod. Hlavními nevýhodami jsou náročnost nasazení nástroj na vyvíjený projekt, vysoký počet falešných hlášení a časové i paměťové požadavky. Tato práce se zaměřuje na zmírnění těchto negativních vlastností u nástroje Facebook Infer, zejména pro analýzu Linuxových nástrojů v podobě SRPM balíčků. Pro zjednodušení nasazení byl vytvořen modul pro nástroj csmock, který umožňuje automaticky spouštět statické analyzátory nad balíčky pro CentOS a Fedoru. Pro snížení počtu falešných hlášení byl vytvořen filtr, který filtruje výstup Inferu podle heuristik, které byly navrženy na základě zkušeností získaných kontrolou hlášení z Inferu. Filtr byl také zapojen do modulu pro csmock a otestován na řadě balíčků. Na analyzovaných balíčcích filtr dokázal odstranit 60 % falešných hlášení se ztrátou 2.5 % skutečných defektů. Doba potřebná pro běh analýzy může být zkrácena použitím inkrementální analýzy. U inkrementální analýzy Inferu byly experimentálně zjištěny nedostatky, proto se tato práce věnuje také vytvoření nástavby nad Inferem, která nahrazuje inkrementální analýzu v Inferu.en
dc.description.abstractStatic analysis is nowadays often used in the development process to find defects in the produced software. Although static analysis tools can effectively find bugs in software with millions of lines of code, they have also some disadvantages. The main disadvantages are the difficulty to deploy the chosen tool on the given project, high numbers of false reports, and the time and space requirements. This thesis focuses on mitigating these negative features of the Facebook Infer tool mainly for the context of using it to analyse Linux utilities shipped as SRPM packages. To simplify its deployment, an Infer plugin has been created for the csmock tool, which allows static analysers to run automatically on packages for CentOS or Fedora. To reduce the number of false reports, a filter has been created, which filters Infer's output according to several proposed heuristics based on experience obtained by analysing the reports produced by Infer. The filter has been also included into the csmock plugin and tested on a number of packages. On the analysed packages, the filter was able to remove 60 % of false reports with a loss of 2.5 % of real defects. The time required to run the analysis can be reduced by using incremental analysis. Shortcomings of the incremental analysis provided implicitly by Infer were experimentally found, so this thesis also describes the creation of a wrapper for Infer, which replaces the incremental analysis in Infer.cs
dc.description.markAcs
dc.identifier.citationBERÁNEK, T. Praktická aplikace Facebook Infer na systémový kód [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2021.cs
dc.identifier.other136613cs
dc.identifier.urihttp://hdl.handle.net/11012/199441
dc.language.isoencs
dc.publisherVysoké učení technické v Brně. Fakulta informačních technologiícs
dc.rightsStandardní licenční smlouva - přístup k plnému textu bez omezenícs
dc.subjectstatická analýzaen
dc.subjectFacebook Inferen
dc.subjectcsmocken
dc.subjectinkrementální analýzaen
dc.subjectautomatizovaná analýzaen
dc.subjectSRPM balíčeken
dc.subjectintegrace statických analyzátorůen
dc.subjectfiltrování falešných hlášeníen
dc.subjectanalýza softwaruen
dc.subjectstatic analysiscs
dc.subjectFacebook Infercs
dc.subjectcsmockcs
dc.subjectincremental analysiscs
dc.subjectautomated analysiscs
dc.subjectSRPM packagecs
dc.subjectintegration of static analyserscs
dc.subjectfalse positive filteringcs
dc.subjectsoftware analysiscs
dc.titlePraktická aplikace Facebook Infer na systémový kóden
dc.title.alternativePractical Application of Facebook Infer on Systems Codecs
dc.typeTextcs
dc.type.driverbachelorThesisen
dc.type.evskpbakalářská prácecs
dcterms.dateAccepted2021-06-15cs
dcterms.modified2021-06-19-12:15:56cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid136613en
sync.item.dbtypeZPen
sync.item.insts2025.03.18 19:37:14en
sync.item.modts2025.01.17 11:14:16en
thesis.disciplineInformační technologiecs
thesis.grantorVysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémůcs
thesis.levelBakalářskýcs
thesis.nameBc.cs
Files
Original bundle
Now showing 1 - 4 of 4
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
2.7 MB
Format:
Adobe Portable Document Format
Description:
final-thesis.pdf
Loading...
Thumbnail Image
Name:
Posudek-Vedouci prace-24187_v.pdf
Size:
88.04 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Vedouci prace-24187_v.pdf
Loading...
Thumbnail Image
Name:
Posudek-Oponent prace-24187_o.pdf
Size:
89.13 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Oponent prace-24187_o.pdf
Loading...
Thumbnail Image
Name:
review_136613.html
Size:
1.45 KB
Format:
Hypertext Markup Language
Description:
file review_136613.html
Collections