タグ

findbugsに関するmarujunjunのブックマーク (5)

  • Javaを書く新入社員のみなさん、FindBugsは絶対入れよう! - ほくそ笑む

    春ですね。どうやら新入社員向けの記事を書くのが流行っているようで。私も尻馬に乗っかろうと思います。 私が新入社員に一つだけアドバイスするとしたら何かなーと考えて、FindBugs について紹介することにしました。 FindBugs FindBugs は Java プログラムの静的解析ツールです。*1 FindBugs はプログラム中のバグっぽい部分を指摘してくれるナイスなやつです。 例えば、次のコードにバグがあるのがわかりますか? /** * 入力された文字列を標準出力に出力する. * @param input 入力文字列 * @throws IllegalArgumentException 入力が null の場合 */ public void printInput(String input) { if (input == null) { new IllegalArgumentExcep

    Javaを書く新入社員のみなさん、FindBugsは絶対入れよう! - ほくそ笑む
  • Efficient data transfer through zero copy

  • Java開発においてバグを除去する効率的な方法はこれだ――オープンソースツールの「FindBugs」とバグ検出に優れた「Jtest」の併用のすすめ

    FindBugsだけで当に満足できる解析ができているか? しかし「FindBugsだけではコードの品質を担保することは難しい」と天久氏は続ける。というのも、各テストツールの解析精度や検出できるバグの種類(ルール)には違いがあるからだ。FindBugsには、クラスやメソッドが分かれている処理の問題を検出できない弱点がある。 例えばNullPointerExceptionを検出したいとする。FindBugsでは「検出は可能だが不十分」と天久氏は指摘する。他のメソッドやクラスにまたがった場合、問題を検出できないからだ。 FindBugsでNullPointerExceptionが検出できない例 また、クロスサイトスクリプティングの検出能力についても不十分だという。サーブレットの出力にHTTPパラメータを直接書き込む処理が一つのクラスに閉じていれば問題ないが、別のクラスで処理する場合には検出でき

    Java開発においてバグを除去する効率的な方法はこれだ――オープンソースツールの「FindBugs」とバグ検出に優れた「Jtest」の併用のすすめ
  • Javaプログラムの静的解析ツール「FindBugs」入門 |

    プログラムの静的解析とは何か? プログラムの静的解析とは、プログラムソースの中からバグが発生しそうな箇所や無駄な処理を発見する分析手法で、プログラムを実行せずに問題を発見・検知します。 (逆にプログラムを実行して問題を見つける手法は「動的解析」といいます) 例えば NullPointerException が発生する可能性がある箇所や、絶対に実行されない処理などを、問題となり得る箇所をプログラムを実行することなく発見してくれます。 プログラムの不具合は、開発工程のできるだけ早いタイミングで見つかる方が良いことは言うまでもありません。 大人数で開発したプログラムを結合して動かすよりも個人で開発しているタイミングでバグが発見される方が良いですし、単体試験を行うよりもソースを書いている最中にバグを知れた方が良いですし、プログラムを実行してからよりも実行する前にバグを知れた方が助かります。 Fin

    Javaプログラムの静的解析ツール「FindBugs」入門 |
  • 静的コード解析でコードの改善を行う - 水まんじゅう2

    コードレビューはしたことがあるでしょうか。 変なコードを書いていないかを確認するためにだれかにコードを確認してもらうという事はよくやります。 誰かにコードを見てもらえるのが一番良いのですが、その誰かがいない場合、機械的にコードを解析して変なところがないかを確認してもらうことが出来ます。 それが静的コード解析です。 Javaでは多くの静的コード解析ツールがあり、多くは無償で利用することが出来ます。 今回はそのうちのFindBugsとPMDを利用して静的コード解析をしてみたいと思います。 FindBugs FindBugsはコンパイルされたバイナリを解析し、不具合を検出してくれます。 例えば、 if("str" == "str")〜〜 という書き方は良くなく、Javaでは以下のように記載する必要があります。 f("str".equals("str"))〜〜 こういった問題点を検出してくれます。

    静的コード解析でコードの改善を行う - 水まんじゅう2
  • 1