プログラム開発論
- 発表論文
- Effect of Test Set Minimization on Fault Detection Effectiveness ( 17th ICSE )
- 概要
- プログラムPがテスト集合Tのもとで実行されている.
1.Tのサイズはあらかじめわかる.
2.Tによって実行されるPのコードの割合は実行するとわかる.
3.Tによってエラーが発見できる割合もわかる.
- 1.と2.は3.に対してどのような影響を与えるのだろうか.
- 2.を一定とした時に1.を変化することで3.はどのように変化する
のかを調べる.
- 実験の結果,もとのテスト集合とおなじデータフローをカバーする最
小のテスト集合が見つかり,そのテスト集合を利用してもバグ発見の
割合がほとんど減少しないことがわかった.
- 議論のポイント
- 実験のやりかたに落度はないか
- 実験に使うプログラム数は評価を得るのに十分な数か
- テストケースの生成方法は妥当か
- エラー毎にプログラムを生成するのは妥当か
- 質疑応答(Q&A)
- 実験することの意図がわからない.
確かにその通りで,コストの削減を意図しているが扱うコストの定義
理由が明確ではない.
コストとして普通テスト時間やテストにかかる費用といったものが考
えられるが,本論文ではテスト集合に含まれるテスト数をコストとし
て扱っている.
- エラーを全て必ず発見できるのはどのようなテスト集合なのか.
この実験では,テストケースプール中のどのテストケースを用いても
発見できないエラーを除いているので,全てのテストケースを含むテ
スト集合を考えた場合に,埋め込んだ全てのエラーを確実に発見でき
る
- 実験に際して除いたエラーは実際問題としてどのようなエラーなのか.
本論文において除いたエラーは,開発段階では発見できない(準備し
た実験環境では発見できない)けれども,実際の運用段階において何
らかの条件が重なった場合にたまたま発見されるような除去の難しい
頑固なエラーを指すものだと考えている.
- 例えば,準備したテストケースの10%を用いることで70%のエラーが発
見できるなら,このやりかたも有効だと思うのですが.
本論文では,エラーの何%を見つけられるかではなく,エラーを
100%見つけることができるかどうかを評価基準としている.従って,
10%のテストケースを用いてどの程度のエラーを発見できるかといっ
た実験は行われていない.
(説明間違いの訂正)
エラーを100%発見できるかどうかに着目して評価しているのではなく,
最小化する前のテスト集合で発見できるエラーの割合を基準とする
最小化した後のテスト集合で発見できるエラーの割合に着目して評価
している.
- 井上先生のコメント
- 実際の環境で生じるようなテストケースを考慮しておらず,実験
環境で閉じたものになっている.
- 1つの基準(all-use基準)でしか実験していないが,他の基準によっ
ても実験すべきである.
元に戻る