Infer für C, Java und Objective-C

Facebook stellt Analysetool Infer Open Source

Moritz Hoffmann

(c) Shutterstock/Yesaulov Vadym

Facebook nutzt Infer als statisches Analysetool, um Bugs im Quellcode zu entdecken. Dabei können Programme durch automatisierte Tests auf Fehler gescannt werden. Um sein bislang auf Android- und Objective-C-Code beschränktes Deployment-Modell für Infer zu erweitern, hat Facebook das Analysetool nun Open Source gestellt.

Infer erfordert Python 2.7 und ist für die Anwendung in C, Java und Objective-C konzipiert. Hello-World-Beispiele auf der Projektseite geben einen Einblick in die Arbeitsweise von Infer, das Null Pointer Accesses sowie Resource- und Memory-Leaks aufspürt. In einem Blogbeitrag zur Veröffentlichung von Infer beziffert Jim Purbrick, Engineer Manager bei Facebook, die Fehlerfindungsrate von Infer auf etwa 80 %. Ausgenommen von der Liste der von Infer auffindbaren Bugs sind bislang Array-Bound-Fehler, Cast Exceptions, Leak-Daten und Concurrency Race Conditions. Momentan in Arbeit sind Lösungen für Array-Fehler, Cast Exceptions und Leaks.

Um den Ansprüchen des hochdynamischen Codesystems von Facebook, an dem viele Entwickler ständig arbeiten und das bis zu 1000 Modifikation am Tag erfährt, zu genügen, arbeitet Infer mit der Methode „Separation & Bi-Abduction“. Die Separation erlaubt es Infer dabei, nur kleine, unabhängige Teile im Anwendungsspeicher anzusprechen, ohne in jedem Schritt den Gesamtspeicher durchforsten zu müssen. Mit der Deduktionstechnik Bi-Abduction können unabhängige Teile des Anwendungscodes während mehrerer Betriebsläufe zwischengespeichert werden, so dass nur die Teile der Software automatisch analysiert werden, die zuvor einer Änderung unterzogen wurden.

Das Team um Facebook Infer sieht die Entwicklungsarbeit noch am Anfang, vor allem in puncto Programmverifikation sei noch viel Entwicklungsarbeit zu leisten. Die Veröffentlichung wollen die Infer-Macher als Schritt in diese Richtung verstanden wissen. Zukünftig soll das Tool vom engen Austausch der Projekt-Entwickler und der forschungsorientierten Community profitieren. Dazu steht das Projekt ab jetzt auf GitHub zur Verfügung.

Aufmacherbild: Magnifying glass above bugged binaries von Shutterstock.com
Urheberrecht: Yesaulov Vadym

Geschrieben von
Moritz Hoffmann
Moritz Hoffmann
Moritz Hoffmann hat an der Goethe Universität Soziologie sowie Buch- und Medienpraxis studiert. Er lebt seit acht Jahren in Frankfurt am Main und arbeitet in der Redaktion von Software und Support Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: