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
81
実機ビルドのエラーによる検証ブロッカーを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
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
1
94
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
68
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
68
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
53
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
51
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
59
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
110
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
270
「Groupee 」で実現!システム横断で権限管理を一元化し、グループ管理の悩みを解決
gree_tech
PRO
1
48
Other Decks in Technology
See All in Technology
Amazon CloudWatch Network Monitor 導入ガイド_デモ説明付き
yukimmmm
0
120
家具家電付アパートの冷蔵庫をIoT化してみた!
scbc1167
0
130
Shift-from-React-to-Vue
calm1205
4
1.4k
FREE Webinar: GeoServer 2.26.0 and Beyond
simboss
PRO
0
130
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
200
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
12k
ジョブマッチングサービスにおける相互推薦システムの応用事例と課題
hakubishin3
1
410
バクラクにおける可観測性向上の取り組み
yuu26
3
440
ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る
f6wbl6
0
170
最速最小からはじめるデータプロダクト / Data Product MVP
amaotone
5
770
運用イベント対応への生成AIの活用 with Failure Analysis Assistant
suzukyz
0
160
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
320
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
680
4 Signs Your Business is Dying
shpigford
180
21k
Practical Orchestrator
shlominoach
186
10k
Designing the Hi-DPI Web
ddemaree
280
34k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
BBQ
matthewcrist
85
9.3k
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
Documentation Writing (for coders)
carmenintech
65
4.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
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