FSE/ASE2011勉強会 F07:Testing 紹介者 早稲田大学 鷲崎研究室 青井 翔平 1 Strong Higher Order Mutation-Based Test Data Generation Mark Harman Yue Jia Willian B . Lengdon 2 前提知識 • Mutation-Based Testとは? • オリジナルのプログラムをバグがでるようにミュータント を生成して、テストの十分性を評価する手法 Original バグ Mutant • 既存のテストデータ生成手法 • Dynamic Symbolic Execution • 動的な記号的実行 • Search Based Software Testing テスト実行 • メタヒューリスティクスな手法を用いたテスト技法 • 問題 • 複数の改変を加えたミューテーションを扱った研究がない • Propagationを意識していない 3 目的と貢献 • 目的 • 複数の改変を加えたミューテーションに対応したテスト データの生成 • Propagationを意識したテストの生成 • 貢献 • 単純なミュータント、複雑なミュータント両方を利用した テストデータ自動生成で幅広い大小様々なプログラムで実 行 • 既存の手法との比較実験を行った結果、ミュータントへの テストデータ網羅率で上回った。 4 本論文での定義 • Infection • あるテストを実行したときに、元のプログラムとミュータント プログラムで状態がかわること • Propagation • 変わった状態が出力として顕在化すること • Weakly Kill(既存手法) 網羅率 • Infectionのみを満たすテスト 出力 • Strongly Kill • Propagationまでを満たすテスト • First Order Mutant(既存手法) 既存 影響 提案 • ひとつのシンプルなシンタックス変更などで作成したミュータ ント • Higher Order Mutant • 複数のFirst Order Mutantのバグを結合したもの Mutant1 バグ2 Mutant2 バグ1 Higher Mutant 5 Higher Order Mutant • 定義:以上のfirst Order Mutant で構成されている • Case:1全ての構成しているfirst Order Mutantを横断するパス がある場合 • 各first Order Mutantのパスを結合する Mutant1 State1 Mutant2 • Case2: Case1が存在しない • ただのfirst Order Mutantとして扱う State1 Mutant2 State2 6 Mutant1 提案手法 オリジナル プログラム ミュータント プログラム Weakly Kill DSE 既存手法と同様 の網羅率測定 プログラムを書き換えないまま様々な動的な記号的 実行によるテストの入力の生成 SBST 影響のある Propagationを一つ にまとめる 差異の判定 Strongly Kill Out hill climbing algorythmを用いた テストの入力の生成 7 評価実験と結果 ・実システムを構築して、17のプログラムで評価実験を行う。 全ての結果の平均のみの表示 Program R-DSE %(網羅率) RI-DSE %(網羅率+影響) Order Average Order 1st 2nd 1st 2nd 1st 2nd 55 56 62 65 15 21 Program SHOM %(網羅率+影響+出力) Order(Std.) Average Imp . On R Imp . On RI (# wins) 1st 2nd 1st 2nd 69(2.1) 71(5.3) 15(7.6) 16(8.8) 8 RQ1:提案手法のfirst order Mutant への性能 RQ2:提案手法のHigher order Mutant への性能
© Copyright 2024 ExpyDoc