Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

Akatsuki Hackers Labは株式会社アカツキゲームスが運営しています。

自動E2Eリグレッションテストのレポート、通知の具体例のご紹介

この記事は Akatsuki Games Advent Calendar 2025 11日目の記事です。

はじめに

アカツキゲームスサーバーエンジニアの @haruby863 です。
自動E2Eリグレッションテストの運用をしています。
CEDEC 2025にて 「長期運営ゲームをあと10年続けるための、0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~」(発表資料) で登壇させていただきました。
この発表の際にご質問をいただいた、レポートや通知の具体的な内容についてご紹介します。

レポートの種類

現在2種類のレポートを使用して運用しています:

  1. Airtest内蔵のレポート

  2. Slack通知でのレポート

1. Airtest内蔵のレポート

LogToHtmlをオーバーライドし、Jinja2テンプレートをカスタマイズすることでAirtestのレポートに情報を追加しています。

レポート例

カスタムしたAirtestレポートの例。カスタム情報欄があり、バイナリ名やブランチ名などがテキストエリア内に記載されており、その直下にクリップボードにコピーボタンがある
カスタムした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
  • エラーメッセージ
  • メンション
成功時

すべてのシナリオが成功したことや、アプリバイナリ名、ブランチ名など必要情報が記載されているSlack通知の例
成功時の通知例

失敗時

失敗したシナリオやアプリバイナリ名、ブランチ名など必要情報が記載されているSlack通知の例
失敗時の通知例

日次集計通知

毎日全てのテスト実行が終わる頃に、テスト実行ごとのログをAmazon S3へ送信し、Amazon Athenaでクエリできるようにしています。
集計通知はAWS Lambdaで定期実行しています。

QAメンバーへの共有や、デイリースクラム後のシナリオメンテナンスメンバーによる確認に使っています。

通知内容:

  • バイナリ名(シナリオのブランチ名)@接続先サーバー名
  • 集計日時や成功率
  • 失敗したシナリオの情報
  • 成功したシナリオの列挙

通知例

集計期間内に実行されたテストの結果の通知。アプリバイナリ名や接続先サーバー、実行数、成功率、失敗したシナリオのリスト、成功したシナリオのリストがまとまって記載されている
集計通知の例

今後やりたいこと

QAエンジニア以外からも、さらに見やすくし自動E2Eリグレッションテストを利用しやすくするため、さらに改善に向けて動いています。

改善案

  • Airtestレポート
    • logcatで取得したエミュレーター側の詳細なログを添付して、デバッグを効率化する
  • テスト実行ごとの結果Slack通知
    • 基本テキストベースのため、失敗した際にスクリーンショットを添付して、結果をよりわかりやすくする
  • 日次集計通知
    • 独自にhtmlでレポートを作るようにし、実行時間の推移などをグラフを活用して見やすくする