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
gree_tech
PRO
October 25, 2024
Video
Technology
1
950
実機ビルドのエラーによる検証ブロッカーを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.5k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
27
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
170
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
160
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
280
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
300
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
220
Other Decks in Technology
See All in Technology
Claude Skillsの テスト業務での活用事例
moritamasami
1
110
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
180
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.3k
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
170
ESXi のAIOps だ!2025冬
unnowataru
0
400
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
140
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
130
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
2.5k
202512_AIoT.pdf
iotcomjpadmin
0
150
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
270
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.9k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
Into the Great Unknown - MozCon
thekraken
40
2.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
91
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Between Models and Reality
mayunak
0
150
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
29
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
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