GitHub Copilot AgentでCTS/VTSを自動化してみた 〜Android 15車載機向けの効率化実験〜

こんにちは、車載ソフトウェア開発に携わるエンジニアです。今回は、Android 15を搭載した車載機に対して行うCTS(Compatibility Test Suite)とVTS(Vendor Test Suite)のテストを、GitHub Copilot Agent Modeでどこまで自動化できるかを試してみました。

手作業だとどうしても煩雑になりがちなテスト実行・レポート収集・結果解析・原因調査といった一連の流れを、Copilotがどこまで支援してくれるのか――実際にローカル環境で試して得られた知見を共有します。


検証環境と目的

  • 対象デバイス:Android 15搭載のIVI端末
  • 実行環境:VS Code + GitHub Copilot Agent Mode
  • 目的
    • CTS/VTSのテスト実行を自動化できるか
    • 結果の取得と解析まで任せられるか
    • Not Doneの原因調査に役立つか

1. テスト実行を自動化する

CTS/VTSの実行にはGoogle公式のTrade Federation(通称Tradefed)を使います。以下の流れでセットアップし、Copilotに実行を任せます。

手動での手順(ベースライン)

  1. デバイスをADB接続
  2. CTS/VTSパッケージを展開
  3. cts-tradefedまたはvts-tradefedを起動
  4. run cts / run vts を入力して実行

Copilot Agentによる支援

VS CodeでCopilot Agentを有効にすると、

「接続済みのデバイスでCTSを実行して」

という自然言語の指示から、必要なコマンド実行やファイルパスの補完まで自動で計画・実行してくれます。

実際に run cts の入力、ログモニタリング、エラー対応(例:device not foundの検出)なども提案してくれました。


2. 結果の収集を自動化する

テスト実行後は results フォルダ内にZIP形式でログが保存されます。

例:

android-cts/results/2025.07.01_13.00.zip

Copilotに

「最新のCTS結果を開いて解析して」

と指示すれば、自動で test_result.xml を抽出し、中身を開いてパースするコードを作成してくれます。PythonやShellスクリプトで結果をCSV化することも容易です。


3. 結果ログを解析する

Copilotに

「CTSの失敗テスト一覧と件数を出力して」

といった指示を出すと、以下のような処理を自動化できます。

  • result="fail" のテストケース名を収集
  • 各モジュールの成功/失敗数を集計
  • StackTrace要素を抽出して原因分析を補助

これにより、再実行対象や影響範囲の特定が格段に早くなります。


4. Not Done(未完了)テストの原因調査

CTS/VTSではテストの一部がスキップされると「Module Not Done」として表示されます。

Copilotは以下のタスクを支援できます。

  • done="false"のモジュール抽出
  • DeviceNotAvailableExceptionなどのエラーキーワード抽出
  • エラーの意味推定(例:「接続断の可能性があります」)

さらに、run retry --retry-type NOT_EXECUTED といった再試行の提案まで行ってくれます。


GitHub Copilot Agent Modeの可能性と限界

効果的だった点

✅ ターミナル操作・コマンド入力の補助
✅ XML解析・スクリプト自動生成
✅ ログファイルのキーワード抽出と要約

注意点

⚠ 環境依存問題(物理再起動等)は自動化不可
⚠ 長時間の処理は途中で計画がズレる可能性あり
⚠ Android 15固有のテストには未対応なことも


おわりに:Copilotと二人三脚でCTS/VTSを乗り越える

GitHub Copilot Agent Modeは、単なるコーディング支援にとどまらず、テストの実行→結果取得→分析→対処までをカバーする強力なエージェントです。

完全自動化はまだ難しいですが、「定型的な作業はAIに」「判断や対処は人間が」という役割分担を意識することで、現場レベルでも十分に活用できることがわかりました。

次のステップとしては、Copilotに社内テスト仕様や過去バグデータを学習させてよりプロジェクト特化型の支援AIへと進化させていく構想も描いています。


参考リンク

未分類

Posted by amauzpoo