Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の...
Search
gree_tech
PRO
October 25, 2024
Video
Technology
1
930
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/TrackB-5
gree_tech
PRO
October 25, 2024
Tweet
Share
Video
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.1k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
24
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
150
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
140
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.3k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
260
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
280
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
190
Other Decks in Technology
See All in Technology
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
180
Security Diaries of an Open Source IAM
ahus1
0
130
品質のための共通認識
kakehashi
PRO
3
220
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
660
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
5
1.4k
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
370
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
470
第4回 「メタデータ通り」 リアル開催
datayokocho
0
120
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
720
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
280
プロダクトマネージャーが押さえておくべき、ソフトウェア資産とAIエージェント投資効果 / pmconf2025
i35_267
2
590
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
130
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Site-Speed That Sticks
csswizardry
13
990
Building Applications with DynamoDB
mza
96
6.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Unsuck your backbone
ammeep
671
58k
BBQ
matthewcrist
89
9.9k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Transcript
実機ビルドのエラーによる 検証ブロッカーを0に! 『ヘブンバーンズレッド』のスモークテスト 自動化の取り組み グリー株式会社 QAエンジニア 勅使川原 大輔 QAエンジニア 佐々
恵
勅使川原 大輔 2016年10月グリー株式会社に入社。 現在『ヘブンバーンズレッド』のテスト管理、 品質改善に従事。 共著『ゼロからはじめるゲームテスト ―壁抜けし たら無限ガチャで最強モードな件?』発売中! グリー株式会社 Customer&Product
Satisfaction部 QAグループ WFS & Linguistic QA チーム 2
佐々 恵 2022年10月グリー株式会社に入社。現在『ヘブン バーンズレッド』のQA業務に従事。テスト自動化 の実装を担当。 3 グリー株式会社 Customer&Product Satisfaction部 QAグループ
WFS & Linguistic QA チーム
アジェンダ • 取り組みの背景 • 自動化導入のプロセス • 構築した自動スモークテストフロー ◦ iOS/Android 詳細フロー ◦
Steam 詳細フロー • 得られた効果 • まとめと今後の展望 4
取り組みの背景 5
『ヘブンバーンズレッド』について ライトフライヤースタジオとKeyがおくる ドラマチックRPG iOS/Android/Steamで好評配信中 2024年8月10日で2.5周年を迎えました! 6
QA組織について ◦ グリーグループ横断のQA業務を担当 ◦ QAチームは開発チームから独立した組織 7 DX事業 マンガ メタバース ゲーム・アニメ
QA
QA体制について • ヘブバンQAチームの体制 8 プルリクエスト 単位で全チェック 毎日数十人の テスターが稼働 複数バージョンを 並行開発・QA
テスト準備における課題 9 ビルド作成 テスト準備 テスト開始 不具合修正 なし あり 従来のフロー •
デイリーで夜間にビルドを作成 • 業務開始前にテスターがビルドをイ ンストール • ビルドに問題なければテスト開始 ブロッカー? ※テスト準備:ここではビルドをインストールすること
テスト準備における課題 10 課題1 • ブロッカー発生により当日テストが できなくなる →1日8時間×稼働人数の工数が無駄 に 課題2 •
検証ブロッカー発生によりQA期間が 1日減る →テスト期間が圧迫され品質低下に ビルド作成 テスト準備 テスト開始 不具合修正 なし あり ブロッカー? ※ブロッカー:ビルドが動かないなどテストが開始できない不具合
解決策 11 ビルド作成 自動スモーク テスト テスト開始 不具合修正 なし あり ブロッカー?
テスト準備 ビルド作成 テスト準備 テスト開始 不具合修正 なし あり ブロッカー?
解決策 12 ビルド作成 自動スモーク テスト テスト開始 不具合修正 なし あり ブロッカー?
テスト準備 • 自動テストで事前にブロッカーを検知 • テスト準備工数の無駄を防止 • 修正や再ビルドのサイクルも高速化 自動スモークテスト導入で課題を解決 ※スモークテスト:ビルドの起動からチュートリアル完了までのテスト
自動化導入のプロセス 13
取り組んだ過程 14 iOS、Androidスモークテスト スクリプト作成 Steamスモークテスト スクリプト作成 外部ツール連携周りの実装 概要 ▪ アプリ起動、ログイン、バトル、ホーム画面を確認
するテストを作成 ▪ AirtestIDEを使用することでエンジニア経験が浅く ても簡単にスクリプトの作成が可能 運用開始
使用したツール 15 • インストール ◦ iOS ▪ ios-deploy • https://www.npmjs.com/package/ios-deploy
◦ Android ▪ adb • https://developer.android.com/tools/releases/platform-tools?hl=ja • スモークテスト ◦ Airtest ▪ https://airtest.netease.com/
Airtestとは 16 • • • モバイルアプリやPCゲームの自動 テストをサポート Pythonベースのスクリプト言語で テストケースを記述 クロスプラットフォームで
一貫したテストの実行が可能 AirtestIDE
AirtestIDEについて 17 Pythonスクリプト 接続している端末画面
バトル開始〜勝利までのデモ(Airtest) 18
Airtestのレポート 19
取り組んだ過程 20 iOS、Androidスモークテスト スクリプト作成 Steamスモークテスト スクリプト作成 外部ツール連携周りの実装 つまづいた点 ▪
iOSのみAirtestIDE接続がうまくいかない ➔XcodeバージョンとiOSバージョンをAirtestサポー ト内に設定 ▪ 画像認識に失敗することがある ➔スクリプト内の画像をPF毎に用意 運用開始 概要 ▪ アプリ起動、ログイン、バトル、ホーム画面を確認 するテストを作成 ▪ AirtestIDEを使用することでエンジニア経験が浅く ても簡単にスクリプトの作成が可能
取り組んだ過程 21
概要 ▪ iOS、Androidと同じ内容のテストを作成 ▪ 直接ゲーム画面からスクリーンショットを取得しスク リプトを作成 iOS、Androidスモークテスト スクリプト作成 Steamスモークテスト スクリプト作成 外部ツール連携周りの実装 運用開始 つまづいた点 ▪ ウィンドウ切り替えが多いと接続が切れやすい ➔Steamブラウザ内の操作はAirtestライブラリだけで なくpygetwindowライブラリも使用
取り組んだ過程 22
概要 ▪ 下記3つの連携の仕組みを実装 ・Jenkinsからビルドファイルのダウンロード ・各PFへのインストール ・slackへテスト結果の送信 iOS、Androidスモークテスト スクリプト作成 Steamスモークテスト スクリプト作成 外部ツール連携周りの実装 運用開始 つまづいた点 ▪ インストールが失敗しやすい ➔失敗時に繰り返すように実装
取り組んだ過程 23
概要 ▪ 実業務での運用を開始 iOS、Androidスモークテスト スクリプト作成 Steamスモークテスト スクリプト作成 外部ツール連携周りの実装 運用開始 つまづいた点 ▪ UI変更がある度にスクリプト修正が必要 ➔都度修正を実施 ▪ PFごとに画像認識に失敗しやすい操作が異なる ➔PFごとに修正を実施
構築した自動スモークテストフロー 24
スモークテスト環境の構成図 25 WindowsPC iOS Android CIツール チャット スモークテスト サーバー USB接続
LAN接続 webhook
iOS/Android 詳細フロー 26
ビルド完成〜ビルド情報のキュー 27 #ビルドch スモークテストサーバー ③ビルド情報を キュー Queue ①ビルド結果 通知 ②ビルドの完了を
検知
ビルド情報の取得〜ビルドインストール 28 Queue ⑥ビルド インストール ⑤ビルド ダウンロード ④ビルド情報を デキュー
⑨テスト結果 通知 スモークテスト開始〜テスト結果通知 29 ビルド情報 #自動テストch ⑧スモークテスト 実行 ⑦ビルド情報 読み込み
Steam 詳細フロー 30
ビルド完成〜ビルド情報のキュー 31 ③ビルド情報をキュー #ビルドch Queue WindowsPCで キュー管理 スモークテストサーバー ①ビルド結果 通知
②ビルドの完了を 検知 WindowsPC
ビルド情報の取得〜テスト結果通知 32 Queue ⑥テスト結果 通知 #ビルドch #自動テストch ⑤ビルドインストール &スモークテスト ④ビルド情報を
デキュー WindowsPC
得られた効果 33
得られた効果 34 • • • 課題1 1日8時間×稼働人数の工数が無駄
➔約200時間/施策の無駄を削減 課題2 検証ブロッカーが発生するとQA期間が1日減少 ➔QA期間前に修正することで当初のQAスケジュールでの運用を実現 その他付加価値 ➔ブロッカー以外の不具合の検知を実現 (サーバーリリース前日に新規ユーザーに影響する不具合など)
まとめと今後の展望 35
まとめ 36 実施内容 • ビルド毎のテスト開始の可否確認を自動化 • 不具合の検知を早めることで開発効率や品質の向上に寄与 取り組みのポイント • エンジニア経験が浅いメンバーでもAirtestを活用することで対応ができた
• テスト実行上の課題をQAチーム主体で解決ができた
今後の展望 37 • ビルドパイプラインへの組み込み ◦ Jenkins Jobトリガーでテスト開始 • スモークテストの精度向上 ◦
Hierarchy要素でUI操作 ◦ テスト範囲拡大 ◦ ソケット接続エラーの解消 • •
ご清聴ありがとうございました 38
None