この記事は Akatsuki Games Advent Calendar 2025 11日目の記事です。
はじめに
アカツキゲームスサーバーエンジニアの @haruby863 です。
自動E2Eリグレッションテストの運用をしています。
CEDEC 2025にて 「長期運営ゲームをあと10年続けるための、0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~」(発表資料) で登壇させていただきました。
この発表の際にご質問をいただいた、レポートや通知の具体的な内容についてご紹介します。
レポートの種類
現在2種類のレポートを使用して運用しています:
Airtest内蔵のレポート
Slack通知でのレポート
1. Airtest内蔵のレポート
LogToHtmlをオーバーライドし、Jinja2テンプレートをカスタマイズすることでAirtestのレポートに情報を追加しています。
レポート例

Binary Name: proj.android-poco-debug-hoge Git Branch: origin/hoge Git Commit Hash: sample1234567890sample1234567890sample12 Avd Name: Pixel6_API33 Machine User Name: hoge-macstudio Server Name: hoge User Id: 1234567890 Scenario Name: skip_login_dialog Scenario List: launch, skip_tutorial, skip_login_dialog, hoge Jenkins Url: http://example.com/job/hoge/13084/ report_url: http://example.com/reports/proj.android-poco-debug-hoge/20251205100747/skip_login_dialog/log.html
カスタム情報の内容:
- バイナリ名
- 自動テストシナリオリポジトリのGitブランチ名とコミットハッシュ
- エミュレーターのAVD名
- 実行マシン名
- アプリの接続先サーバー名
- ユーザーID
- 実行シナリオ名
- 連続実行のシナリオ名
- JenkinsジョブのURL
- このレポートのURL
カスタム情報を丸ごとクリップボードにコピーできるボタンを置いているため、問い合わせの際に便利です。
2. Slack通知でのレポート
2種類のSlack通知を使い分けています:
- テスト実行ごとの結果Slack通知
- 日次集計通知
テスト実行ごとの結果Slack通知
テストが終わるたびに通知します。
通知内容:
- バイナリ名
- 自動テストシナリオリポジトリのGitブランチ名とコミットハッシュ
- エミュレーターのAVD名
- JenkinsジョブのURL
- シナリオ結果(Airtestレポートのリンク)と接続先サーバー、ユーザーID
- エラーメッセージ
- メンション
成功時

失敗時

日次集計通知
毎日全てのテスト実行が終わる頃に、テスト実行ごとのログをAmazon S3へ送信し、Amazon Athenaでクエリできるようにしています。
集計通知はAWS Lambdaで定期実行しています。
QAメンバーへの共有や、デイリースクラム後のシナリオメンテナンスメンバーによる確認に使っています。
通知内容:
- バイナリ名(シナリオのブランチ名)@接続先サーバー名
- 集計日時や成功率
- 失敗したシナリオの情報
- 成功したシナリオの列挙
通知例

今後やりたいこと
QAエンジニア以外からも、さらに見やすくし自動E2Eリグレッションテストを利用しやすくするため、さらに改善に向けて動いています。
改善案
- Airtestレポート
- logcatで取得したエミュレーター側の詳細なログを添付して、デバッグを効率化する
- テスト実行ごとの結果Slack通知
- 基本テキストベースのため、失敗した際にスクリーンショットを添付して、結果をよりわかりやすくする
- 日次集計通知
- 独自にhtmlでレポートを作るようにし、実行時間の推移などをグラフを活用して見やすくする