Статический анализ кода с помощью Infer

android

Finding inter-procedural bugs at scale with Infer static analyzer — статья о принципе работы статического анализатора Infer и его основных отличиях от других анализаторов.

Infer разработан в Facebook для поиска ошибок в приложениях на C, C++, Objective-C и Java. В случае с Java он может выявлять такие ошибки как: обращение к объекту, содержащему значение null, утечки ресурсов, отсутствие блокировок и состояния гонки.

Основное отличие этого инструмента от других в том, что он умеет использовать знания обо всем дереве вызовов методов, чтобы найти ошибку. В качестве примера авторы приводят код, который берет объект, полученный от одного метода, и передает его другому. Благодаря возможности проанализировать, какие значения возвращает первый метод и как его использует второй, анализатор может предсказать, что первый метод может вернуть null, а второй не проверяет свои аргументы на null.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий