CodeChecker kutatócsoport
A statikus kódvizsgálat egy olyan módszer, amellyel a program forráskódját a futtatás előtt lehet elemezni. Ipari szoftverek esetén széles körben alkalmazzák a hibák és a potenciális problémák feltárására. A CodeChecker egy eszközrendszer a statikus kódvizsgálathoz, amely az LLVM/Clang Static Analyzer és a Clang-Tidy szoftverekre épül. Kezdetben az volt a cél, hogy a scan-build funkciót helyettesítse Linux és macOS fejlesztési környezetben. A scan-build lehetővé teszi a Clang Static Analyzer futtatását a projekten. A CodeChecker kifejlesztésével nagyobb testreszabhatóságot biztosítanak, támogatja a Clang-Tidy-t, és az elemzési eredmények egy központi, távolról elérhető webalkalmazásban is megtekinthetők. Megalakulása óta a CodeChecker egy funkciókban gazdag rendszer lett a szoftverhibák feltárására és kezelésére.
A CodeChecker főbb jellemzői: (1) Több analizátor futtatásának lehetősége a projekten (jelenleg Clang Static Analyzer és Clang-Tidy). (2) Az elemzési modulok finomhangolása az elemzés indításakor, anélkül, hogy az egyes analizátorokat külön kellene konfigurálni. (3) Újabb elemzési futtatások csak a módosított fájlokat vizsgálják, nem kell az egész projektet újra elemezni (a build rendszer támogatásától függően). (4) Ismert téves riasztások elnyomása konfigurációs fájl vagy kódbeli jelölés segítségével, valamint teljes kódrészek kizárása az elemzésből. (5) Eredmények tárolásának támogatása különböző statikus analizátorokból, például Java, Python és Go nyelveken. (6) Webalkalmazás, amely lehetővé teszi az észlelt hibák megtekintését és megvitatását, egyszerű, felhasználóbarát felülettel. (7) Eredmények szűrése szinte minden paraméter szerint. (8) Különböző futtatások összehasonlítása (diff) a változtatások hatásainak ellenőrzésére. (9) Önálló, statikus HTML-jelentés generálása, ha nincs szükség a teljes webalkalmazásra. (10) Könnyen használható kliens-szerver kommunikáció a hibák tárolására és lekérdezésére. (11) Több megjelenítő felület támogatása, például webalkalmazás, parancssori eszköz, Visual Studio Code vagy Eclipse plug-in.
Csoport saját honlapja: külső link
▶ Biztonságos programozás elméletben és gyakorlatban
▶ Új ellenőrző eszközök fejlesztése AST elemzésekre és szimbolikus vizsgálatra
▶ Különböző nyílt forráskódú pluginek és nyelvek támogatása (pl. Spotbugs, PyLint)
▶ Clang Static Analyzer motor fejlesztése
▶ Adatfolyam-elemzés

AST elemzés, szimbolikus vizsgálat, adatfolyam-elemzés, valamint C/C++/Java/Python nyelvek alkalmazása.
- Porkoláb Zoltán (kutatócsoport-vezető, MTMT, Tud-O-Méter)
- Cserép Máté
- Brunner Tibor
- Umann Kristóf
- Kovács Réka
- Szalay Richárd
- Ericsson Ltd – Coverity helyettesítése CodeChecker-rel
- Graphisoft Ltd – CodeChecker bevezetése a kódalapon
- Kovács, R., Horváth, G. és Porkoláb, Z. (2019): Detecting C++ lifetime errors with symbolic execution, Proceedings of the 9th Balkan Conference on Informatics [DOI]
- Kovacs, R. és Horvath, G. (2018): An initial prototype of tiered constraint solving in the Clang Static Analyzer, Studia Universitatis Babeș-Bolyai Informatica [DOI]
- Szécsi, P. Gy., Horváth, G. és Porkoláb, Z. (2022): Improved loop execution modeling in the Clang Static Analyzer, Acta Cybernetica [DOI]
- Horváth, G. és Pataki, N. (2019): Categorization of C++ classes for static lifetime analysis, Proceedings of the 9th Balkan Conference on Informatics [DOI]
- Horváth, G., Szécsi, P., Gera, Z., Krupp, D. és Pataki, N. (2018): Challenges of implementing cross translation unit analysis in Clang Static Analyzer, IEEE 18th International Working Conference on Source Code Analysis and Manipulation [DOI]
Porkoláb Zoltán <gsd@inf.elte.hu>