Основные понятия
生成器の実行トレースを分析し、有効性を保持しつつ縮小されたテスト入力を生成する。
Аннотация
本論文は、テスト入力の縮小のための新しいアプローチ「GReduce」を提案している。従来のデルタデバッグは、テスト入力の構文的な特性しか考慮せず、多くの無効なテスト入力を生成してしまうという問題がある。一方、GReduceは、テスト入力を生成する生成器の実行トレースに着目し、トレースの一部を削除することで有効性を保持しつつ縮小されたテスト入力を生成する。具体的には、以下の3つのステップからなる:
- トレース抽出: 生成器の実行をトレースとして抽出する。
- トレース縮小: トレース内の縮小可能な部分を特定し、ラベル付けする。
- トレース整列再実行: ラベル付けされたトレースに基づいて生成器を再実行し、縮小されたテスト入力を生成する。
評価の結果、GReduceは既存手法と比べて、より小さいサイズのテスト入力を生成でき、かつ高速であることが示された。
Статистика
グラフ、深層学習モデル、JavaScriptプログラムのベンチマークでは、Perses[44]の結果と比べて、サイズが28.5%、34.6%、75.6%に縮小され、所要時間は17.5%、0.6%、65.4%であった。
SymPyとSmartCheckのベンチマークでは、Hypothesis[28]、QuickCheck[4]、SmartCheck[38]と比べて、縮小結果は同等以上で、所要時間は大幅に短縮された。
Цитаты
"テスト入力の縮小は、特に長大で複雑なテスト入力を扱う際に、開発者が根本原因を特定するのに不可欠である。"
"既存のデルタデバッグアルゴリズムは、テスト入力の構文的特性しか考慮せず、多くの無効なテスト入力を生成してしまう。"
"生成器ベースのテストは、複雑な入力仕様を持つソフトウェアシステムのテストに大変有効である。"