190 likes | 285 Views
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 データ 井ノ口 伸人. 研究の目的と主要な貢献. 研究の目的
E N D
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データ 井ノ口 伸人
研究の目的と主要な貢献 • 研究の目的 • 制御フローカバレッジ (Control Flow Coverage, CFC) とデータフローカバレッジ (Data Flow Coverage, DFC) のいいとこ取りをしたMulti-point Stride Coverage (MPSC) の提案 • 主要な貢献 • MPSCは、DFCより小さいオーバーヘッドで、同じくらいうまくテストスイートの効率の予測できる • が…… 予測性能 MPSC DFC CFC コスト ICSE‘13 勉強会 H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage
MPSCの概要 begin • 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) b1 b2 b3 b4 end ICSE‘13 勉強会 H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage
評価方法 • 評価手順 • SIRから15の対象プログラムを取得(TABLE I) • 以下の計測コードと100のmutationsを埋め込み • CFC (ブランチカバレッジ) • DFC (データフローカバレッジ) • MPSC (g=0 to 10, p=2 to 5) • 3~50のテストケースを20ずつ無作為抽出し実行 • 評価指標 • カバレッジを説明変数に含む、killできたmutationsの割合予測モデルの自由度調整済み決定係数(Adj R2) で評価 ICSE‘13 勉強会 H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage
評価結果 • 定量評価 (TABLE II) • MPSC: 7/15でAdj R2最大 • CFC: 7/15でAdj R2最大 • DFC: 1/15でAdj R2最大 • 考察 • 各カバレッジのAdj R2の大きさはほぼ同じで、実用上の差異はほとんどない • 期待に反し、DFCの予測性能が低い。テストケース数も用いているためかも Fig. 5. MPSC vs. number of mutants detected for g= 10and p = 5, subject program nanoxml (出所) 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. ICSE‘13 勉強会 H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage
紹介者の所感 • 実用上はブランチカバレッジで十分そう • 性能評価の紹介は割愛しました • Research Questionを立て、それに応える形式で書かれているので、対応が取りやすい 予測性能 • 指標の妥当性についての議論もある (恐らく心理学から転用) • internal validity • external validity • construct validity CFV MPSC DFC コスト ICSE‘13 勉強会 H1 : Comparing Multi-point Stride Coverage and Dataflow Coverage
★H2 : Interaction-Based Test-Suite Minimization Dale Blue, ItaiSegall, Rachel Tzoref-Brill, and AviadZlotnick IBM, USA; IBM Research, Israel 発表者:株式会社NTTデータ 朱峰 錦司
研究の目的 • 背景 • 組み合わせテスト設計(CTD)は重要な技術 • パッケージソフトウェアなど、テストすべきパターンが膨大なソフトウェアが増えている • CTDの適用は難しい • 組み合わせ制約をモデリングするのが大変 • 新たに作成された組み合わせパターンを具体的なテストケースに落とし込むのが大変 • 目的と貢献 • 組み合わせパターンのカバレッジを落とさずに、既存のテストケースを削減する手法を確立 • ITSM(Interaction-based Test-Suite Minimization) • 実プロジェクトでのケーススタディを通して手法の有用性を確認 テストエンジニアの心情 テストエンジニアの心情 ICSE‘13 勉強会 H2 : Interaction-Based Test-Suite Minimization
ITSMのアプローチ(1/2) • 一般的なCTDの適用 Pairwise法(2パラメータ間の 組み合わせパターンを網羅)の適用 15件の組み合わせパターンでOK (出所)Dale Blue, ItaiSegall, Rachel Tzoref-Brill, and AviadZlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191. ICSE‘13 勉強会 H2 : Interaction-Based Test-Suite Minimization
ITSMのアプローチ(2/2) • ITSMの適用 既存の50件のテストケース 2パラメータ間の組み合わせパターンカバレッジを保つように削減 22件の組み合わせパターンでOK (出所)Dale Blue, ItaiSegall, Rachel Tzoref-Brill, and AviadZlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191. ICSE‘13 勉強会 H2 : Interaction-Based Test-Suite Minimization
評価方法と結果 • 実プロジェクト適用による評価 • 2つの詳細なケーススタディ • 既存のテストケース(手法のインプット)の組み合わせパターンカバレッジは十分か? • どれぐらいテストケースを削減できたか? • 処理にどれぐらい時間がかかったか? • 1つめのケーススタディの結果を以下に紹介 工夫したアルゴ リズムも有用 削減効果大 (出所)Dale Blue, ItaiSegall, Rachel Tzoref-Brill, and AviadZlotnick; IBM, USA; IBM Research, Israel; Interaction-Based Test-Suite Minimization. In: Proc. of the 2013 ICSE. IEEE Press, 2013. p. 182-191. ICSE‘13 勉強会 H2 : Interaction-Based Test-Suite Minimization
紹介者の所感 • 有用性の高さ • 「組み合わせテスト」という、地味だけど現場でのニーズが増えている分野を攻めている • 「既存のテストケースが存在する」という、現場の実情に沿った前提を置いている • 精度/コストのトレードオフをきちんと考慮したアルゴリズムを提案している • 実プロジェクトでの検証 • 詳細なケーススタディ2件に加え、8件の実プロジェクト適用結果も掲載している • 鉄壁の防御 • ことあるごとに「ここでは関心外とする」的な予防線をはりつつ、参考文献はきちんと載せている • ex.) テストケース削減によるバグ発見能力の低下は議論の余地はあるが、[7][8][12][13]あたりを参考に、FutureWorkとして扱う ICSE‘13 勉強会 H2 : Interaction-Based Test-Suite Minimization
H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies Lingming Zhang, Dan Hao, Lu Zhang, Gregg Rothermel, and Hong Mei University of Texas at Austin, USA; Peking University, China; University of Nebraska-Lincoln, USA 発表者:NTT・ソフトウェアイノベーションセンタ田端 啓一
研究の目的と主要な貢献 • 回帰テストの並べ替えで故障検出率を増加 • 2つのテストケース並べ替え戦略を融合 • Additional strategy • それ以前のテストで未カバーの部分をカバーしていく • 故障発見確率が高い対象に有効(1回叩けば十分) • Total strategy • 1つのテストケースでなるべく広範囲をカバーする • 故障発見確率が低い対象に有効(何度も叩く必要) • 定量的な評価により、効果を実証的に提示 ICSE‘13 勉強会 H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies
提案手法の概要 • p値によるテストケースの並べ替えアルゴリズムを提案 • p値: テストケースがメソッド内の故障を発見できる確率 • 基本手法では一様なp値とし、応用手法ではメソッドごとの複雑度で調整 • 並べ替え: p値に基づいて行われる(詳細なアルゴリズムは論文を参照) p値が高い → 故障を発見しやすい → Additional strategyに漸近 t1 t2 • t3 テストケース ・・・ カバレッジ p値の設定 テスト対象 メソッド p値が低いとき → 故障を発見しづらい → Total strategyに漸近 u1 u2 • u3 ・・・ ICSE‘13 勉強会 H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies
評価方法と結果 • 評価手法と基準 • 3つのプログラムの計19バージョンで調査 • APFD(平均故障検出パーセンテージ)で評価 APFDは 高いほうが良い 評価の一例を抜粋 論文本文より抜粋 Additional Total p値の設定 • 評価結果 • TotalよりAdditionalの方が優秀だった • Additionalよりも提案手法の方が優秀なp値の区間が存在した ICSE‘13 勉強会 H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies
紹介者の所感 • 評価プログラムの選択が上手い • 3つのアプリケーションの異なるバージョンを利用(計19個) • それぞれJUnitによるテストを流用して評価している • 対象としているテストの粒度がよくわからない • ユニットテストとは明言していないがJUnitを利用している • 結合度の高いテストでもp値を応用できないだろうか? • 複雑度指標を取り入れた効果について • メソッドごとのp値をCyclomaticとMLoC(Method LoC)で調整している • 評価結果を見ると、著者の主張ほど大きな効果があると言えるか疑問 • ソフトウェアメトリクスの信奉派?? ICSE‘13 勉強会 H3 : Bridging the Gap between the Total and Additional Test-Case Prioritization Strategies
SessionHおわり ICSE'13 勉強会 セッション:Test-Case Selection