Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
gree_tech
PRO
October 25, 2024
Video
Technology
1
1k
実機ビルドのエラーによる検証ブロッカーを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
3.2k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
33
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.5k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
230
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
220
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.6k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
340
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
360
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
250
Other Decks in Technology
See All in Technology
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
110
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
350
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
230
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.1k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
430
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
160
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
590
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
230k
How to Ace a Technical Interview
jacobian
281
24k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Thoughts on Productivity
jonyablonski
74
5k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Six Lessons from altMBA
skipperchong
29
4.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Leo the Paperboy
mayatellez
4
1.4k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
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