[論文レビュー] Automatic Software Repair: a Bibliography
自動ソフトウェア修復に関する包括的な調査と注釈付き参考文献集で、ソフトウェア工学、信頼性、OS、言語、セキュリティに跨る挙動修復と状態修復を網羅。修復技法をオラクルとバグ種別で分類する。
This article presents a survey on automatic software repair. Automatic software repair consists of automatically finding a solution to software bugs without human intervention. This article considers all kinds of repairs. First, it discusses behavioral repair where test suites, contracts, models, and crashing inputs are taken as oracle. Second, it discusses state repair, also known as runtime repair or runtime recovery, with techniques such as checkpoint and restart, reconfiguration, and invariant restoration. The uniqueness of this article is that it spans the research communities that contribute to this body of knowledge: software engineering, dependability, operating systems, programming languages, and security. It provides a novel and structured overview of the diversity of bug oracles and repair operators used in the literature.
研究の動機と目的
- ソフトウェア工学、信頼性、OS、プログラミング言語、セキュリティなど、複数の領域にまたがる自動ソフトウェア修復の統合的概要を提供する。
- 挙動修復と状態修復、および使用されるオラクルの種類によって修復技術を分類・分析する。
- 核心概念、修復演算子、実証的な知見を要約し、研究者と実務家を導く。
- 主要な作品の体系的な参考文献リストを提供し、用語の異表記を示して分野を統一する。
提案手法
- 自動修復に関する文献の調査と注釈付き参考文献リスト。
- 修復タイプ(挙動修復 vs. 状態修復)およびオラクル別の修復アプローチの分類。
- 修復演算子、修復テンプレート、修復モデルの記述。
- 異なるコミュニティ間の思想の収束を示すクロスドメインマッピング。
- 実証的・非実証的研究の議論と評価実践に関するノート。
実験結果
リサーチクエスチョン
- RQ1自動ソフトウェア修復の主要なアプローチは何か?修復タイプとオラクルによってどう異なるか。
- RQ2提案された修復演算子、テンプレート、モデルは何か。
- RQ3挙動修復と状態修復の関係はどうか、そしてその有効性を裏付ける実証的証拠は何か。
- RQ4異なる領域(SE、信頼性、OS、言語、セキュリティ)は自動修復にどう寄与してきたか。
- RQ5自動修復の包括的な参考文献リストを作成する際に特定された課題と未解決問題は何か。
主な発見
- 文献は挙動修復(コード修正)と状態修復(実行時/状態変更)の両方を網羅している。
- AST変異、前提条件、テンプレートベースの修正を含む、広範な修復演算子とテンプレートが存在する。
- テストスイートベースの修復、事前/事後条件、抽象挙動モデルは、オラクルを指定する一般的なパラダイムである。
- 静的解析、クラッシュ入力、ドメイン特化の修復は、従来のテストベース修復を超える領域を拡張する。
- ソフトウェア工学、信頼性、OS、PL、セキュリティのコミュニティ間で学際的な収束が見られる。
- 本論文は統一的な用語を提供し、修復概念(修復、パッチ、修正、癒す、回復など)の多様性を明確にしている。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。