• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2017 年度 実績報告書

ソフトウェアの欠陥発見のための逆方向シミュレーション

研究課題

研究課題/領域番号 15K11989
研究機関山形大学

研究代表者

平中 幸雄  山形大学, 大学院理工学研究科, 教授 (40134465)

研究期間 (年度) 2015-04-01 – 2018-03-31
キーワードソフトウェア安全性検証 / 逆方向シミュレーション / 逆実行モデル / 数値範囲分割 / シンボリック逆実行 / Java bytecode
研究実績の概要

情報化社会はソフトウェアに依存しているが、そのソフトウェアの安全性検証は困難な技術テーマである。そこで、本研究ではこれまでと異なる逆方向シミュレーションを使ったソフトウェアの網羅的安全性検証を研究した。
通常のソフトウェアテストは個々のテストデータに対する出力を検証するため、網羅性に欠ける。データを数値範囲でまとめてテストする方法や、変数と演算記号を使ってシンボリックにトレースすることで網羅性の確保が期待できるが、プログラムによっては膨大なケース数を取り扱う必要が出てくる。しかし、異常値など特定の出力値に対する入力条件を求めることは、逆算を使えば効率良くできることもある。そこで、プログラムの最後から逆方向にたどっていく方法を研究した。
実際に、Java プログラムを対象に、機械語命令に相当するJavaバイトコードを逐次逆実行しながら、プログラム中のバグや誤動作要因を検知できる逆方向シミュレータを実現した。逆実行では個々の機械語命令の逆処理が必要になり、2入力1出力命令では原理的に不可能に見えるかもしれないが、演算結果を特定すればそれに対応する入力の組み合わせは有限になり、順次試していけば、最終的に可能な入力値組み合わせだけが残る。実際に数値範囲分割法として、数値を範囲で扱い、範囲を段階的に細分していくことで能率良く検証を行う方法を実現した。
数値範囲分割法ではオーバフローも検証対象にできる利点があるが、計算時間が長くなりやすい弱点がある。そこでデータに名前を付け、演算を記号的に処理するシンボリック法による逆方向シミュレーションも開発した。シミュレーション後に条件式の評価を行うことになるが、実際にプログラムに適用して有効な検証が行えた。今後の課題として、機械語命令に依存して数値範囲分割法とシンボリック法を選択、組み合わせる方法の開発がある。

  • 研究成果

    (3件)

すべて 2018 2017 その他

すべて 学会発表 (2件) (うち国際学会 2件) 備考 (1件)

  • [学会発表] Symbolic backward simulation of Java bytecode program2018

    • 著者名/発表者名
      Tetsuya Inafune, Shinichi Miura, Toshihiro Taketa, Yukio Hiranaka
    • 学会等名
      Proc. 10th International Conference on Computer Modeling and Simulation (ICCMS2018)
    • 国際学会
  • [学会発表] Backward range simulation of Java bytecodes and reduction of its processing time2017

    • 著者名/発表者名
      Yukio Hiranaka, Tetsuya Inafune, Shinichi Miura, Toshihiro Taketa
    • 学会等名
      Proc. 8th International Conference on Computer Modeling and Simulation (ICCMS2017)
    • 国際学会
  • [備考] 研究報告

    • URL

      http://eatz.yz.yamagata-u.ac.jp/informative/houkoku/kenkyuhoukoku.html

URL: 

公開日: 2018-12-17  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi