• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2016 Fiscal Year Research-status Report

デバッグ手法とツールの評価のためのベンチマーク環境の構築

Research Project

Project/Area Number 15K00091
Research InstitutionThe University of Electro-Communications

Principal Investigator

寺田 実  電気通信大学, 大学院情報理工学研究科, 准教授 (80163921)

Project Period (FY) 2015-10-21 – 2018-03-31
Keywordsデバッグ
Outline of Annual Research Achievements

1. Quick Sort プログラムに含まれる partition 処理に着目し、そのうちの数ヶ所を候補として人手で選出し、テキスト処理によってそれらの箇所にあらかじめ用意した変異をランダムに加える「バグ自動生成プログラム」を作成した。変更内容としては、使用する変数の取り替え、比較演算子の取り替えなどである。生成されたプログラムにテストデータセットを与えてバグを確認できた。
さらに、正解と異なった結果をもたらしたテスト件数を手がかりにすれば、どれだけ「正解に近いが誤っているか」を評価でき、これはデバッグの難しさの尺度として利用可能なのではないかとの着想を得た。これは自動生成したバグの評価に利用することが可能であると考えられる。
2. Java のマルチスレッドプログラムを対象として、スレッド間の同期を行う処理に人手で変更を加えることによりさまざまな並列処理のバグを作成する実験を行った。たとえば synchronized構文によりガードする範囲の変更や、ガードそのものの省略などである。生成したプログラムを実行してバグの発生を確認できた。
さらに、生成したバグに対して利用可能なデバッグ手法がどれくらいあるかを基準として、生成したバグの評価を試みた。たとえば、再現性がないバグの場合、バグ発生時のトレースくらいしか有効な手段はなくなるなどである。また、自動バグ検出ツールである Java Path Finderの適用による評価も行なった。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

デバッグ手法の評価のための手段として、バグの難易度を利用する着想を得た。これは、難易度の高いバグとは、テストデータセットに対する出力を正しいプログラムの出力と比較したときに、不一致項目の件数が(1件以上であって)最小のものであるという仮説に基づくもので、これは機械的に判定可能である。
また、機械的なプログラムの変異のために、Eclipse上のJavaプログラムのAbstract Syntax Treeの処理を習得した。前年はテキスト処理で変異を行っていたが、これにより構文的に正しい変異結果をプログラムの任意の箇所で行うことが可能になった。
さらに、並行動作プログラムに対しては、人手でのバグ導入を試み、ある程度の結果を出すことができた。
以上を平成28年度の研究実施計画とてらしあわせて、おおむね順調に進展していると判断する。

Strategy for Future Research Activity

テストデータセット不一致件数の最小化という仮説にもとづき、正しいプログラムを出発点としてGenetic Programmingの手法を用いてバグ入りプログラムを生成し、それらを「正解との不一致件数最小」をふくむ評価関数で淘汰していくことで、難しいバグを人工的に合成できるをこと最優先で確認したい。これは、一般に行なわれている「正解を求めるGenetic Programming」とは逆のアプローチである。この手法を既知の様々なアルゴリズムに適用し、難しいバグが合成できたかを評価する。
並列処理についても、正解との実行トレースの一致などを評価関数として同様のバグ生成が可能かを調べていく。
29年度は最終年度でもあり、結果の公開、成果発表を行っていく。

Causes of Carryover

バグ生成のために構文解析技術の習得が必要となり、購入予定であったシステム開発用ノートPCの購入を翌年度にまわしたこと、参加予定であった学会のひとつを別の経費を使用して参加したことなどが理由である。

Expenditure Plan for Carryover Budget

システム開発用ノートPC、成果発表のための学会参加費などに当てる計画である。

  • Research Products

    (1 results)

All 2017

All Presentation (1 results)

  • [Presentation] 相関ルールを利用したソースコードの識別子推薦手法2017

    • Author(s)
      阿部真之, 寺田実
    • Organizer
      情報処理学会第58回プログラミング・シンポジウム
    • Place of Presentation
      ラフォーレ倶楽部伊東温泉湯の庭(静岡県伊東市)
    • Year and Date
      2017-01-06 – 2017-01-08

URL: 

Published: 2018-01-16  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi