19
+ ICSE’13 勉勉勉 Session H : Test-Case Selection 2013 勉 7 勉 9 勉 勉勉 () NTT 勉勉勉勉勉勉

ICSE’13 勉強会 Session H : Test-Case Selection

  • Upload
    matteo

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

ICSE’13 勉強会 Session H : Test-Case Selection. 2013 年 7 日 9 日(火) NTT 朱色のチーム. H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage. Md. Mahdi Hassan and James H. Andrews University of Western Ontario, Canada. 発表者:株式会社 NTT データ 井ノ口 伸人. 研究の目的と主要な貢献. 研究の目的 - PowerPoint PPT Presentation

Citation preview

Page 1: ICSE’13  勉強会 Session H : Test-Case Selection

+

ICSE’13 勉強会Session H : Test-Case Selection

2013 年 7 日 9 日(火)NTT 朱色のチーム

Page 2: ICSE’13  勉強会 Session H : Test-Case Selection

+

H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage

Md. Mahdi Hassan and James H. AndrewsUniversity of Western Ontario, Canada

発表者:株式会社 NTT データ 井ノ口 伸人

Page 3: ICSE’13  勉強会 Session H : Test-Case Selection

3+研究の目的と主要な貢献研究の目的

制御フローカバレッジ (Control Flow Coverage, CFC) とデータフローカバレッジ (Data Flow Coverage, DFC) のいいとこ取りをした Multi-point Stride Coverage (MPSC) の提案

ICSE‘13 勉強会  H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage 2013/7/9

主要な貢献 MPSC は、 DFC より小さい

オーバーヘッドで、同じくらいうまくテストスイートの効率の予測できる

が……

予測

性能

コスト

DFC

CFC

MPSC

Page 4: ICSE’13  勉強会 Session H : Test-Case Selection

4+MPSC の概要2 つのパラメータを持つbranches の組 gap (g): branches の間にある

branches の数 points (p): 組に含まれる

branches の数

例:右図フロー (g=1, p=3) (begin, begin, b1), (begin, b1,

b2), (b1, b2, b3), (b2, b3, b4),(b3, b4, end), (b4, end, end)

ICSE‘13 勉強会  H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage 2013/7/9

b1

begin

end

b2

b3

b4

Page 5: ICSE’13  勉強会 Session H : Test-Case Selection

5+評価方法

評価手順 SIR から 15 の対象プログラムを取得 (TABLE I) 以下の計測コードと 100 の mutations を埋め込

み CFC ( ブランチカバレッジ ) DFC ( データフローカバレッジ ) MPSC (g=0 to 10, p=2 to 5)

3 ~ 50 のテストケースを 20 ずつ無作為抽出し実行

評価指標 カバレッジを説明変数に含む、 kill できた

mutations の割合予測モデルの自由度調整済み決定係数( Adj R2) で評価

2013/7/9ICSE‘13 勉強会  H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage

Page 6: ICSE’13  勉強会 Session H : Test-Case Selection

6+評価結果

定量評価 (TABLE II) MPSC: 7/15 で Adj R2 最大 CFC: 7/15 で Adj R2 最大 DFC: 1/15 で Adj R2 最大

考察 各カバレッジの Adj R2 の大

きさはほぼ同じで、実用上の差異はほとんどない

期待に反し、 DFC の予測性能が低い。テストケース数も用いているためかも

2013/7/9ICSE‘13 勉強会  H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage

(出所) HASSAN, Mohammad Mahdi; ANDREWS, James H. Comparing multi-point stride coverage and dataflow coverage. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 172-181.

Fig. 5. MPSC vs. number of mutants detected for g = 10 and p = 5, subject program nanoxml

Page 7: ICSE’13  勉強会 Session H : Test-Case Selection

7+紹介者の所感

実用上はブランチカバレッジで十分そう

性能評価の紹介は割愛しました

Research Question を立て、それに応える形式で書かれているので、対応が取りやすい

2013/7/9ICSE‘13 勉強会  H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage

予測

性能

コスト

DFCCFVMPSC指標の妥当性についての

議論もある ( 恐らく心理学から転用 ) internal validity external validity construct validity

Page 8: ICSE’13  勉強会 Session H : Test-Case Selection

+

★H2 : Interaction-Based Test-Suite Minimization

Dale Blue, Itai Segall, Rachel Tzoref-Brill, and Aviad ZlotnickIBM, USA; IBM Research, Israel

発表者:株式会社 NTT データ 朱峰 錦司

Page 9: ICSE’13  勉強会 Session H : Test-Case Selection

9+研究の目的 背景

組み合わせテスト設計( CTD )は重要な技術 パッケージソフトウェアなど、テストすべきパターンが膨大なソフトウェア

が増えている CTD の適用は難しい

組み合わせ制約をモデリングするのが大変

新たに作成された組み合わせパターンを具体的なテストケースに落とし込むのが大変

目的と貢献 組み合わせパターンのカバレッジを落とさずに、既存のテスト

ケースを削減する手法を確立 ITSM ( Interaction-based Test-Suite Minimization )

実プロジェクトでのケーススタディを通して手法の有用性を確認

ICSE‘13 勉強会  H2 : Interaction-Based Test-Suite Minimization 2013/7/9

テストエンジニアの心情

テストエンジニアの心情

Page 10: ICSE’13  勉強会 Session H : Test-Case Selection

10+ITSM のアプローチ (1/2)一般的な CTD の適用

ICSE‘13 勉強会  H2 : Interaction-Based Test-Suite Minimization 2013/7/9

15 件の組み合わせパターンでOK

(出所) Dale Blue, Itai Segall, Rachel Tzoref-Brill, and Aviad Zlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191.

Pairwise 法( 2 パラメータ間の組み合わせパターンを網羅)の適用

Page 11: ICSE’13  勉強会 Session H : Test-Case Selection

11+ITSM のアプローチ (2/2)ITSM の適用

ICSE‘13 勉強会  H2 : Interaction-Based Test-Suite Minimization 2013/7/9

既存の 50 件のテストケース

22 件の組み合わせパターンでOK

2 パラメータ間の組み合わせパターンカバレッジを保つように削減

(出所) Dale Blue, Itai Segall, Rachel Tzoref-Brill, and Aviad Zlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191.

Page 12: ICSE’13  勉強会 Session H : Test-Case Selection

12+評価方法と結果実プロジェクト適用による評価

2 つの詳細なケーススタディ 既存のテストケース(手法のインプット)の組み合わせパターンカバ

レッジは十分か? どれぐらいテストケースを削減できたか? 処理にどれぐらい時間がかかったか?

1 つめのケーススタディの結果を以下に紹介

2013/7/9ICSE‘13 勉強会  H2 : Interaction-Based Test-Suite Minimization

(出所) Dale Blue, Itai Segall, Rachel Tzoref-Brill, and Aviad Zlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191.

削減効果大

工夫したアルゴ

リズムも有用

Page 13: ICSE’13  勉強会 Session H : Test-Case Selection

13+紹介者の所感 有用性の高さ

「組み合わせテスト」という、地味だけど現場でのニーズが増えている分野を攻めている

「既存のテストケースが存在する」という、現場の実情に沿った前提を置いている

精度/コストのトレードオフをきちんと考慮したアルゴリズムを提案している

実プロジェクトでの検証 詳細なケーススタディ 2 件に加え、 8 件の実プロジェクト適用結果も掲載している

鉄壁の防御 ことあるごとに「ここでは関心外とする」的な予防線をはりつつ、参考文献はきちんと載せている ex.) テストケース削減によるバグ発見能力の低下は議論の余地はあるが、 [7]

[8][12][13] あたりを参考に、 FutureWork として扱う

2013/7/9ICSE‘13 勉強会  H2 : Interaction-Based Test-Suite Minimization

Page 14: ICSE’13  勉強会 Session H : Test-Case Selection

+

H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization

StrategiesLingming Zhang, Dan Hao, Lu Zhang, Gregg Rothermel, and Hong MeiUniversity of Texas at Austin, USA; Peking University, China; University of Nebraska-Lincoln, USA

発表者:NTT・ソフトウェアイノベーションセンタ 田端 啓一

Page 15: ICSE’13  勉強会 Session H : Test-Case Selection

15+研究の目的と主要な貢献

回帰テストの並べ替えで故障検出率を増加

2つのテストケース並べ替え戦略を融合 Additional strategy

それ以前のテストで未カバーの部分をカバーしていく 故障発見確率が高い対象に有効(1回叩けば十分)

Total strategy 1 つのテストケースでなるべく広範囲をカバーする 故障発見確率が低い対象に有効(何度も叩く必要)

定量的な評価により、効果を実証的に提示ICSE‘13 勉強会  H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies 2013/7/9

Page 16: ICSE’13  勉強会 Session H : Test-Case Selection

16+提案手法の概要 p値によるテストケースの並べ替えアルゴリズムを提案

p値 : テストケースがメソッド内の故障を発見できる確率 基本手法では一様な p値とし、応用手法ではメソッドごとの複雑度で調整

並べ替え : p値に基づいて行われる ( 詳細なアルゴリズムは論文を参照 )

2013/7/9ICSE‘13 勉強会  H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies

p値の設定

p値が高い→ 故障を発見しやすい→ Additional strategy に漸近

p値が低いとき→ 故障を発見しづらい→ Total strategy に漸近

t1 t2 t3 ・・・テストケース

u1 u2 u3 ・・・テスト対象メソッド

カバレッジ

Page 17: ICSE’13  勉強会 Session H : Test-Case Selection

17+評価方法と結果 評価手法と基準

3つのプログラムの計 19 バージョンで調査 APFD(平均故障検出パーセンテージ ) で評価

2013/7/9ICSE‘13 勉強会  H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies

論文本文より抜粋

Total Additional

APFD は高いほうが良い

評価結果 Total より Additional の方が優秀だった Additional よりも提案手法の方が優秀な p値の区間が存在した

評価の一例を抜粋

p値の設定

Page 18: ICSE’13  勉強会 Session H : Test-Case Selection

18+紹介者の所感

評価プログラムの選択が上手い 3つのアプリケーションの異なるバージョンを利用 ( 計 19個 ) それぞれ JUnit によるテストを流用して評価している

対象としているテストの粒度がよくわからない ユニットテストとは明言していないが JUnit を利用している 結合度の高いテストでも p値を応用できないだろうか?

複雑度指標を取り入れた効果について メソッドごとの p値を Cyclomatic と MLoC(Method LoC) で調整してい

る 評価結果を見ると、著者の主張ほど大きな効果があると言えるか疑問 ソフトウェアメトリクスの信奉派??

2013/7/9ICSE‘13 勉強会  H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies

Page 19: ICSE’13  勉強会 Session H : Test-Case Selection

19

+

2013/7/9 ICSE'13 勉強会 セッション: Test-Case Selection

SessionH おわり