Staattisten koodianalysaattorityökalujen kartoittaminen ja ominaisuuksien vertailu
Kelloniemi, Jussi (2025)
Kandidaatintyö
Kelloniemi, Jussi
2025
School of Engineering Science, Tietotekniikka
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe20251215119709
https://urn.fi/URN:NBN:fi-fe20251215119709
Tiivistelmä
Tässä työssä kartoitetaan eri staattisia koodianalyysi työkaluja Java- ja C-kielille. Staattinen koodianalyysi on tärkeä osa koodin laadun valvonnassa ja sitä varten on kehitetty useita eri työkaluja. Työn tavoitteena on vertailla eri staattisia koodianalyysityökaluja Java- ja C-kielille. Työssä eritysesti vertailtiin PMD, Cppcheck, Checkstyle, SpotBugs, Infer ja SonarQube työkaluja. Työssä käydään läpi näiden työkalujen ominaisuuksia ja missä niitä voidaan hyödyntää. Vertailu suoritetaan kirjallisuuskatsauksen perusteella, jonka avulla pyritään selvittämään, mitä kullakin työkalulla voidaan tehdä ja mitä virheitä työkalut pystyvät tunnistamaan.
Työn tulosten mukaan eri työkaluja painottavat eri osa-alueita tarkastuksissaan. Näitä osa-alueita on koodintyyli ja rakenne, bugien tunnistaminen, tietoturvariskien tunnistaminen ja muistivuotojen tunnistaminen. Työ tarjoaa lukijalle kirjallisuuteen perustuvan vertailun, jonka avulla on helpompi arvioida eri staattisten koodianalyysityökalujen sopivuutta eri tarkoituksiin. This study maps different static code analysis tools for Java and C languages. Static code analysis is important part of code quality control, and several tools have been developed for it. Study reviews the features of different tools and where they can be utilized. The aim of this study is to compare different static code analysis tools for Java and C. The tools specifically examined in this work are PMD; Cppcheck, Checkstyle, SpotBugs, Infer and SonarQube. The study discusses the features of these tools and the context in which they can be utilized. The comparison is based on literature review, which aims to find what each tool can do and what errors they can identify.
According to the results, the tools emphasize different aspects in their analysis. These aspects include code style and structure, bug detection, identification of security vulnerabilities and detection of memory leaks. The study provides a literature-based comparison that helps readers assess the suitability of different static code analysis tools for various purposes.
Työn tulosten mukaan eri työkaluja painottavat eri osa-alueita tarkastuksissaan. Näitä osa-alueita on koodintyyli ja rakenne, bugien tunnistaminen, tietoturvariskien tunnistaminen ja muistivuotojen tunnistaminen. Työ tarjoaa lukijalle kirjallisuuteen perustuvan vertailun, jonka avulla on helpompi arvioida eri staattisten koodianalyysityökalujen sopivuutta eri tarkoituksiin.
According to the results, the tools emphasize different aspects in their analysis. These aspects include code style and structure, bug detection, identification of security vulnerabilities and detection of memory leaks. The study provides a literature-based comparison that helps readers assess the suitability of different static code analysis tools for various purposes.
