プログラムの差分情報を用いた デバッグ手法の評価実験

Download Report

Transcript プログラムの差分情報を用いた デバッグ手法の評価実験

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