Facebook、静的コード解析ツール「Infer」を公開。Objective-C/Java/Cコードのバグを指摘してくれる

2015年6月16日

Facebookはコードを解析してバグを発見する静的コード解析ツール「Infer」をオープンソースで公開しました

Open-sourcing Facebook Infer: Identify bugs before you ship | Engineering Blog | Facebook Code

Inferが対応するコードはAndroidのJavaとiOSのObjective-C、およびC。現時点ではAndroidとJavaではNullPointerExceptionおよびリソースのリーク。iOSとCコードではメモリーリークを発見してくれます。

実際にプログラムを実行することなくバグを発見しようとする静的コード解析は、コードをビルドしてテストプログラムなどを実行するよりも迅速にバグを発見できる方法として期待されています。

Inferも、Facebookがより早く高い品質のソフトウェアをデリバリする目的で開発されたものです。下記はInferを発表したブログ「Open-sourcing Facebook Infer: Identify bugs before you ship」から。

Each month, hundreds of potential bugs identified by Facebook Infer are fixed by our developers before they are committed to our codebases and deployed to people's phones. This saves our developers many hours finding and fixing bugs, and results in better products for people.

毎月、何百ものバグ候補がInferによって指摘され、そのおかげでコードがコミットされて利用者のスマートフォンで利用される前に開発者が修正されている。これは開発者がバグを発見するための時間を何百時間と節約し、結果としてよりよい製品を届けることに役立っている。

バグの正答率80%

Inferは2013年にFacebookが買収したMonoidicsの技術がベースになっており、静的解析の技術としてSeparation logicbi-abductionと呼ばれる理論を用いていると説明されています。

Separation logic was a breakthrough for highly theoretical computer science — a new kind of mathematical logic used to describe mutations of computer memory (analogous to how Boolean logic describes circuits).

Separation logicは高度なコンピュータサイエンスにおけるブレイクスルーを実現した理論で、コンピュータのメモリの働きを置換表現する新種の数学的理論だ(ブーリアンロジックが回路を記述するのに相似する)。

バグの発見を支援してくれるのは便利ですが、もしもバグでないコードにもバグの可能性ありと報告してしまうと、開発者はあるはずもないバグを探すためにコードを調べなくてはならず、かえって開発者の仕事の効率を落としてしまうことになります。

それだけに静的解析ツールではバグ発見の精度が重要ですが、Facebookによると、Inferが指摘したバグ候補の80%が実際にバグとして修正されているとのことです。

It is important that these reports be high quality so that we help developers without slowing them down. In recent months, the fix rate for issues reported to our developers has been hovering around 80 percent, a high rate for such an automated tool.

開発者の開発スピードを落とさないためには、バグ報告の品質が高いことは重要だ。最近ではバグ報告に対して開発者が修正を行う割合は80%にまで浮上してきており、自動化ツールによって高い正答率を実現できている。

Facebookは今後、さらに静的コード解析を進化させていくと説明しています。

Program verification is an area with an active research community and promising technology. At Facebook, we have a saying that this journey is 1 percent finished.

プログラムの検証はリサーチコミュニティの活発かつ将来有望な分野です。Facebookでは、まだこの行程の最初の1%に到達したに過ぎないと言っています。

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : Facebook , ソフトウェアテスト , 開発ツール



≪前の記事
「ASCIIDWANGO(アスキードワンゴ)」ブランドの第一弾書籍、クヌース氏の名著「The Art of Computer Programming」が6月26日発売へ

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





  1. Visual Studio OnlineがGitHubやJenkins、Xcode Buildなど外部のリポジトリやビルドシステムをサポート。プライベートリポジトリは無料で制限なく作成可能
  2. ホワイトボックススイッチとは何か? オープン化がすすむネットワーク機器のハードとソフトの動向(前編)。ホワイトボックススイッチユーザ会 第一回勉強会
  3. Microsoft Edge、レスポンシブイメージ対応の「srcset」に対応。夏以降は主要ブラウザすべてでsrcsetサポート
  4. 「Mesosphere Datacenter OS(DCOS)」が正式版に。クラスタを簡単に拡張、縮小。ワンクリックでクラスタへのアプリ展開も
  5. 米HPがChefやDocker、Ansible、OpenStack、VMwareなど主要インフラのAPIを統合する「Project Synergy」を発表
  6. ホワイトボックススイッチとは何か? オープン化がすすむネットワーク機器のハードとソフトの動向(後編)。ホワイトボックススイッチユーザ会 第一回勉強会
  7. ストレージ市場の2015年第1四半期シェア調査、トップはEMC。ストレージアレイは減少しサーバ内蔵型が成長。米IDC
  8. 米HP、業務アプリケーション向けのUXフレームワーク「Grommet」、オープンソースで公開
  9. Nutanixが新ハイパーコンバージド基盤の「Acropolis」と管理ツール「Prism」を発表。分散ストレージにイレイジャーコード、独自ハイパーパイザを無償提供
  10. 「ASCIIDWANGO(アスキードワンゴ)」ブランドの第一弾書籍、クヌース氏の名著「The Art of Computer Programming」が6月26日発売へ
  11. シスコCEOを退任するジョン・チェンバース氏にスタンティングオベーション。Cisco Live! 2015 San Diego
  12. AngularJSのエキスパート達が語る、AngularJSの使いどころとつらいところ(前編)。Deverlopers Summit 2015
  13. 最初の「Ember.js 2.0」ベータ版が登場、ReactのようなVirtual DOMを採用した高速レンダリングエンジンGlimmerを搭載。1.x系は1.13で終了へ
  14. [速報]マイクロソフト、コードを書くのに最適化したツール「Visual Studio Code」発表。Windows、MacOS、Linuxに対応、無料提供。Build 2015
  15. インテル、プログラマブルなLSI「FPGA」大手のアルテラ買収を発表。XeonにFPGAを組み込む計画も表明

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus