Android Studioに静的分析ツールFindBugsを追加して品質を高める

はじめに

静的解析は、ざっくり噛み砕くとソースコードを解析し、良くない書き方を教えてくれます。 テストは実行時のチェックしますが、静的解析はソースコードをチェックする違いがあります。

Androidのオープンソース等でよく見かけるFindBugsを紹介します。今回は、ソースコードに手を加えない簡単に利用できる部分を紹介します。

FindBugs™ - Find Bugs in Java Programs

FindBugsは、Javaコードのバグ検出のために設計されたオープンソースの静的分析ツールです。 Android Studioのプラグインがありますので、簡単に利用することができます。

インストール

[Android Studio] - [Preference]を開き、[Plugins]を開く

スクリーンショット_2017-01-22_18_18_01

スクリーンショット_2017-01-22_18_18_18

FindBugsを有効にする。

スクリーンショット_2017-01-22_18_19_19

スクリーンショット_2017-01-22_18_19_44

やってみる

例題として、nullを参照してる時どんな結果になるか試してみます。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String text = null;
        Log.d("log", "text.length=" + text.length());
    }

}

スクリーンショット_2017-01-22_18_20_28

スクリーンショット_2017-01-22_20_00_03

スクリーンショット 2017-01-22 20.20.26

Nullを参照してると検出された。

スクリーンショット 2017-01-25 9.10.09

まとめ

簡単に導入することできました。定期的に確認して、おかしなコードを書いていないみるのも良いと思います。今回はAndroid Studioにプラグインをいれるだけの簡単な部分だけでした。もっといろいろ解析できるみたいなので次回挑戦したいと思います。

参考