このページの本文へ移動
  1. ホーム >
  2. プレスリリース >
  3. Javaプログラムの網羅的検証を並列処理で高速化
  • English

PRESS RELEASE (技術)

2010年12月17日
Fujitsu Laboratories of America, Inc.
株式会社富士通研究所

Javaプログラムの網羅的検証を並列処理で高速化

プログラムの品質向上を実現する検証技術の実用化に向け第一歩

Fujitsu Laboratories of America Inc.(注1)と株式会社富士通研究所(注2)(以下、富士通研究所)は、Javaプログラムの網羅的検証を並列処理で高速に行う技術を開発しました。

ICTシステムの品質を確保するには、ソフトウェアであるプログラムを十分にテストすることが必要です。富士通研究所が開発したプログラムを網羅的に検証する技術に対して、今回開発した技術を適用することにより、クラウドの活用による検証時間の大幅な短縮が可能になり、プログラムの品質向上につながると期待されます。

プログラムの検証とは

ビジネスの根幹を担うICTシステムの品質を確保するためには、システムの機能を提供するプログラムが想定通りに動作するかを十分にテストして検証しなければなりません。たとえば商品購入Webサイトのプログラムをテストするには、商品番号が入力される場合・されない場合や、購入数量に正しい値が入力される場合・されない場合など、システムのいろいろな使い方や状況の組み合わせを洗い出して(テストケース作成)、組み合わせの一つ一つにあわせてプログラムに与えるデータを作成し(テストデータ作成)、そのデータを使って実際にプログラムが正しく動作するかを確認する必要があります(テスト実施による検証)。


図1. テストケース作成とテストデータ作成

開発の背景

米国National Aeronautics and Space Administration(NASA) (注3)が開発した検証ツールのJava PathFinderは、与えられたJava プログラムに対して、テストケースやテストデータを人間が手動で与えなくてもプログラムを自動的に実行する機能(シンボリック実行)(注4) を提供しています。富士通研究所は文字列型データも処理できるようにこれを拡張し、処理対象データの多くが文字列データである業務アプリケーションを検証できるようにしました。


図2. シンボリック実行の様子

課題

従来の技術では、検証する範囲を絞り込んだ場合でも数万行のプログラムを処理するのに数時間かかるため、検証時間を短縮する技術の開発が課題になっていました。

開発した技術

今回、Javaプログラムの検証を並列に行う技術を開発しました。これにより、クラウドの計算パワーを活用して高速に検証を実施することが可能となります。計算機ノード10台で実験したケースでは、従来技術に比べて約10倍の性能向上を実現しました。

開発した技術は以下の通りです。

  1. シンボリック実行の処理を分割して複数の計算ノード割り当てる並列化技術

    シンボリック実行では、プログラム内の条件分岐をたどる木構造の探索処理を行います。今回開発した技術では、木構造を分割して複数の計算機ノードに割り当て、それぞれを並列に処理することで高速化を実現しました(図3(1))。

  2. 負荷の高い計算機ノードの処理を再分割して負荷の小さい計算機ノードに再割り当てする平準化技術

    プログラムの構造によっては各計算機ノードに割り当てる探索の量にはムラがでることがあり、並列化しても処理時間を短縮できないケースがあります。今回開発した技術では、それぞれの計算機ノードで探索を監視し、処理が一定量を超えても終了しない場合には、自分の探索範囲を再分割して処理が終了しているノードに処理させます。これにより、各ノードが処理する量を均等にして並列処理の効果を維持します(図3(2))。


図3. シンボリック実行の並列化/平準化

効果

クラウドを活用するなどの方法で計算機ノードを増やすことによって、大規模なプログラムを短時間で検証することが可能です。これにより、プログラムの品質向上に大きく貢献することが期待できます。

今後

富士通研究所では、社内試行を通じて技術を強化し、2011年度中の実用化を目指します。また、本技術をクラウド上のサービスとして提供することも検討していきます。

商標について

記載されている製品名などの固有名詞は、各社の商標または登録商標です。

以上

注釈

  注1 Fujitsu Laboratories of America, Inc.:
代表取締役社長 松本均、米国カリフォルニア州。
  注2 株式会社富士通研究所:
代表取締役社長 富田達夫、本社 神奈川県川崎市。
  注3 National Aeronautics and Space Administration(NASA):
アメリカ航空宇宙局。米国政府で宇宙開発を担当する部局。
  注4 シンボリック実行:
テストデータの値をシンボルとして用意し、実行時に分岐条件を元にシンボルのとり得る範囲の「場合分け」を行いながら、それぞれのパスを実行するプログラム実行方式。

関連リンク

本件に関するお問い合わせ

株式会社富士通研究所
ソフトウェア&ソリューション研究所 ソフトウェアイノベーション研究部
電話: 044-754-2675(直通)
E-mail: java-verification@ml.labs.fujitsu.com


プレスリリースに記載された製品の価格、仕様、サービス内容、お問い合わせ先などは、発表日現在のものです。その後予告なしに変更されることがあります。あらかじめご了承ください。