ユーザーからデバッグ情報を収集する新オープンソースプロジェクト

  • このエントリーをはてなブックマークに追加

 オープンソースソフトのファンたちは、長い間「大人数でかかれば、どんなバグもすぐに見つかる」という考えを抱いてきたが、この考えに新たな一捻りを加えたある大学プロジェクトが動き出した。

 カリフォルニア州立大学バークレー校とスタンフォード大学の研究者らは、いくつかのオープンソースソフトを改良し、デバッグに関する情報を中心となるサイトに送信するソフトウェアパッケージをリリースした。これらのソフトウェアを使うことで、ユーザーはバグの発見作業に参加できる。

 この「Cooperative Bug Isolation Project」が、十分な数のユーザーに特製バージョンのソフトウェアを使わせることができれば、デバッグ作業を行なう人々に、ソフトウェア内部の仕組みを把握する手掛かりをより多く提供できることになる。

 「我々は、多くのユーザーの力を集めて、本当にバグを見つけ出し、もっと直接的にそのバグにつながるような情報をエンジニアに提供しようとしている」と、このプロジェクトに参加しているカリフォルニア州立大学バークレー校の大学院生、Ben Liblitは話している。

 米Microsoftは、長い間「Dr. Watson」という名のソフトウェアを使って、インターネット経由でデバッグ情報を収集してきている。しかし、バークレー校とスタンフォードのプロジェクトは、オープンソースの手法をつかって、この問題に取り組もうとしている。同プロジェクトでは、オープンソースのプログラマが自らの書いたソフトに追加して、デバッグに利用できる"sampler"というソフトを提供している。

 samplerソフトを、広く利用されているGCCプログラミングツールに若干変更を加えたプログラムに挿入すると、その結果得られるプログラムには、プログラムの稼動時のデータを取得する命令が「装備」される。この命令により、たとえば、プログラムが各分岐点でどちらに進んだかを、毎回記録できる、とLiblitは話している。

 このプロジェクトの重要なポイントの1つは、samplerソフトがプログラムを停滞させないようにすることだ。このプロジェクトの目標は、プログラムのパフォーマンス低下を5%以内に留めることだった、とLiblitは言う。パフォーマンスの低下を防ぐため、samplerソフトはランダム化スキームに基づいて、情報の記録を時々しか行わない。しかし、プログラムが正常に終了したか、あるいはクラッシュしたかについては毎回記録されるようになっている。

 これにより、デバッグ作業者は、プログラムが正常に機能したときに辿った経路と、クラッシュしたときに辿った経路の2つのデータを比較できる。両者の経路の多くは同じである可能性が高いが、もしも違いが見つかれば、デバッグ担当者はバグの疑いがあるプログラムの箇所を特定できるようになる、とLiblitは説明している。

 「これで、どれほど貴重なデータが集まってくるのかを予想するのは難しい。だが、非常に多くのトライアルからデータを集計し、それを統計学的に処理しようというアイデア自体は価値のあるものだと思う」と、調査会社米IlluminataのアナリストJonathan Euniceはコメントしている。

この記事は海外CNET Networks発のニュースをCNET Japanが日本向けに編集したものです。

  • このエントリーをはてなブックマークに追加