研究実績の概要 |
Linuxの開発において、 多くの場面で活用されているファイルシステムテストツールであるxfstestsをターゲットとし, xfstests内の各種テストケース総勢498個について, Btrfs, Ext4, XFS上でそれぞれどの程度のカバレッジがあるのかを計測した。これらのファイルシステムは、全てxfstestsにおいて固有のテストケースが実装されており、個々のファイルシステムの特有の機能についてもカバーされていることが期待される。 また, ファイルシステムには, ファイルシステム作成時のオプションやmount時のオプション, あるいはファイルシステムのサイズなど様々な設定項目があるため, そうしたパラメータにおけるカバレッジの変化を見るために, パラメータを変更したカバレッジの測定を行った. 結果として, 約13000件のカバレッジデータを収集した。 これらのカバレッジデータをパラメータごとに集計し, パラメータごとのカバレッジの差分を見るとともに, カバーされていないコード(24057行)およびその周辺を実際に読んで, どのようにすれば該当コードを実行できるのかを分析した。 分析結果として, 各コード行について, 「ファイルシステムの設定変更で実行される」, 「テストケースの追加が必要」といった分類を行った。 こうした分析からファイルシステムのどの機能部分においてどの程度のカバレッジがあるのか, どのようにすればカバレッジを向上させることができるかを明らかにした。 これらの詳細な分析を元にして, 現在ジャーナル誌への投稿に向けて執筆を行っている。 今後、この分析を元に、カバレッジを自動的に向上する手法について研究を進めていく。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
ファイルシステムにおける多様なパラメータを変更し, 様々なケースにおけるカバレッジを取得した. 調査の中で, テスト環境の変更を必要とし, 新たな機材や新たなソフトウェアの導入を必要とするものもあったが, それらの問題も解決され, 多様パターンでのカバレッジを明らかにすることができた. その結果から全コードとの関係を詳細に分析し, 全てのコード行に対して, なぜその行が実行されるのか, あるいはされないのかの分析を終えることができた. 今年度においての研究成果発表はなかったものの, こうした膨大な分析を終えることはでき, 成果発表に向けての作業を進めており, おおむね順調であると言える.
|
今後の研究の推進方策 |
今後はまず, 現在得られている分析結果を元に, 現在のファイルシステムテストがファイルシステムのどのような機能の部分をなぜ実行できていないのかを明らかにした結果をまとめジャーナル誌に投稿を目指す. その後, 得られた知見を元として, ファイルシステムのテストカバレッジを自動的に向上させる手法を研究する. 現状, 各テストケースでのカバレッジ情報を持っているので, 全テストケースで実行されていないコード行に対して, 最も近いテストケースを探すことができる. このテストケースに対して, 現在セキュリティの分野で多く用いられているファジングの技術を摘要し, 該当テストケースによるテストカバレッジの増加を目指す. ファイルシステムはパラメータの数が膨大であり, またメタデータのような構造化されたデータを持つことから, 「正しい」一方で, 新しいコード行を通すでパラメータを効率的に与えることにはチャレンジがある.
|