160 likes | 279 Views
プログラムの差分情報を用いた デバッグ手法の評価実験. 田原靖太 † 寺口正義 ‡ 松下誠 † 井上克郎 † * † 大阪大学大学院基礎工学研究科 ‡ 日本アイ・ビー・エム 東京基礎研究所 *奈良先端科学技術大学院大学情報科学研究科. 研究の背景. ソフトウェア保守作業 → 既存のソフトウェアに対し て様々な変更を加える 変更していない機能に欠陥が生じた場合, そのデバッグ作業は容易ではない. プログラムの差分情報を利用したデバッグ手法 DMET(Debugging METhod) の提案
E N D
プログラムの差分情報を用いたデバッグ手法の評価実験プログラムの差分情報を用いたデバッグ手法の評価実験 田原靖太† 寺口正義‡ 松下誠† 井上克郎†* †大阪大学大学院基礎工学研究科 ‡日本アイ・ビー・エム 東京基礎研究所 *奈良先端科学技術大学院大学情報科学研究科
研究の背景 • ソフトウェア保守作業 → 既存のソフトウェアに対し て様々な変更を加える • 変更していない機能に欠陥が生じた場合, そのデバッグ作業は容易ではない • プログラムの差分情報を利用したデバッグ手法DMET(Debugging METhod)の提案 • DMETに基づくデバッグ支援システムDSUS(Debugging Support System)の構築
DMET,DSUSの概略 • デバッグ手法DMET • 既存のソフトウェアに変更を加えた際,変更していない機能に欠陥が生じた場合を想定 • 欠陥の原因となるプログラム差分を特定 • デバッグ支援システムDSUS • DMETに基づいて,ソフトウェア保守における一連の デバッグ作業を支援 • DMETが特定したプログラム差分を強調表示
研究の目的 DMETが実際のソフトウェア保守作業に対して有効であるかは評価されていない DMETの実際のソフトウェア保守作業への有効性を2段階の実験によって評価する • 実際にソフトウェア保守作業を行い,デバッグの対象となるプログラムを収集 • DMETを利用することでデバッグ時間が短縮されるかどうかを調べる
デバッグ手法DMET(前提) • バージョン管理システムを利用 • ソフトウェアに対する様々な変更を管理 • 実行可能ファイルもバージョン管理の対象 • 全テストに正しい動作をする基準バージョンが存在 • テストツールを利用 → テストの自動化
デバッグ手法DMET(構成) • テスト 欠陥の原因を含むバージョン間を 特定 • 表示 1によって特定されたバージョン間の 差分を最新バージョン上で表示 • 反映 最新バージョン上での修正内容を 過去のバージョンに反映 DMETでは,1~3の工程を全てのテストに成功するまで繰り返す 開始 全て成功 テスト 終了 欠陥の発見 表示 修正 反映
デバッグ支援システムDSUSの特徴 • DMETが特定したプログラム差分を強調表示 • テスト,バージョンの登録・取り出しをシステム内部で行う
評価実験 • 実験の流れ • デバッグ対象となる欠陥を含むプログラムの収集 (仕様変更作業)・・・・・・・・・・・・・・・・・・・・・ 実験A • DSUSを用いたデバッグ作業・・・・・・・・・・・・ 実験B • 準備するもの • 対象プログラムと仕様書,被験者への仕様変更要求 • テストデータ • 機能追加前のプログラムに対するテストデータ • 追加機能が正常に働いているかを検証するテストデータ
実験手順 • 実験A • 仕様書の変更を基準バージョンのプログラムに反映 • 変更していない機能に欠陥が生じたプログラムを収集 • 実験B • 被験者をDMETを利用するグループと利用しないグループに分ける • 実験Aで欠陥が作り込まれたプログラムをデバッグ • 作業に要した時間を計測
実験Aの結果 • 変更していない機能に欠陥が作り込まれたプログラムが3つ得られた(これらのプログラムをX,Y,Zとする) • そのうちX,Yの2つがDMETによって特定されたバージョン間の差分に欠陥の原因があった 欠陥のあったプログラム
実験Bの結果(1/2) 平均所要時間(分) DMET特定部分に欠陥原因があったプログラムX, Yで作業時間が短縮
実験Bの結果(2/2) DMETによって特定された部分に欠陥の原因があったX,Yのプログラムのデバッグに要した時間の平均値の差を検定した結果,有意な差が見られた DMETによって特定された差分に欠陥の原因がある場合はDMETを用いた方が効率よくデバッグを行える 平均所要時間(分)
考察(1/2) プログラムZではDMET利用によって所要時間が増加 理由 • プログラムZの欠陥はDMETが想定していない事例(必要な変更をしなかったことによって起きた欠陥)であった • このため,DMETが欠陥原因の特定結果が正しくなかった • 正しくない結果に利用者が混乱した
考察(2/2) 特定結果が正しいかどうかをある程度予測することは可能 • DMETによって特定されたバージョン間とその幅を見る • 特定結果が疑わしい例 • バージョン間の幅が大きすぎる • 基準バージョンとの差分を特定している
まとめ • デバッグ手法DMETは,特定したバージョン間の差分に欠陥の原因がある場合は,実際のプログラム保守作業に有効である • DMETでは想定されていない事例がある • すべての欠陥に対して正しく欠陥の原因を特定することはできない • 正しく特定できなかった時は,作業時間が増大 • 正しく特定できていないことをある程度予測できる
今後の課題 • 特定結果が疑わしい場合に、システムが利用者にその旨を提示 • DMETによって正しく欠陥の原因を特定できる割合を調査