核心概念
アプリ更新時に、学習モデルを適応させることで、効率的にアプリの更新部分をテストできる。
要約
本論文では、Continuous Adaptation of Learned Models (CALM)と呼ばれる、アプリ更新時のテストアプローチを提案している。
CALM は以下の特徴を持つ:
- 前バージョンのアプリモデルを再利用し、更新部分のテストに効率的に活用する。
- 静的解析と動的解析を組み合わせ、アプリモデルを更新バージョンに適応させる。
- レイアウト変更に合わせてモデルの遷移を更新
- 非決定的な遷移を扱うためのレイアウトガード遷移を導入
- 状態爆発を防ぐための確率的アクション列を使用
- 過去の実行結果を活用した後方等価状態の検出
- オンラインおよびオフラインでのモデル改良
- 更新メソッドの実行に関連する画面のみを提示することで、テストオラクルコストを最小化する。
CALM の評価実験の結果、既存手法と比べて、同じ最大画面数の制約下で、更新メソッドと命令の割合を大幅に高く実行できることが示された。特に、更新量が少ない一般的なシナリオでその差が顕著であった。
統計
アプリ更新時の95%の障害は視覚検査が必要
更新メソッドの実行割合が既存手法より6ポイント高い
更新量が少ない場合、既存手法より13ポイント高い
引用
"アプリ更新は頻繁に行われ、ソフトウェアエンジニアは更新された機能のみを検証したいが、自動テスト手法はアプリ全体を検証するため、リソースの無駄遣いとなっている。"
"CALM は、前バージョンのアプリテストで自動的に学習したモデルを適応させることで、アプリ更新を効率的にテストする自動化アプローチを提案する。"