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
340
実機ビルドのエラーによる検証ブロッカーを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
2
940
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
290
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
300
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
250
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
300
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
550
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
410
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
560
「Groupee 」で実現!システム横断で権限管理を一元化し、グループ管理の悩みを解決
gree_tech
PRO
1
250
Other Decks in Technology
See All in Technology
手を動かしてレベルアップしよう!
maruto
0
230
What's new in Go 1.24?
ciarana
1
110
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
330
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
140
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
360
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
190
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.2k
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
270
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
偏光画像処理ライブラリを作った話
elerac
1
180
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
430
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
A Tale of Four Properties
chriscoyier
158
23k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
990
Adopting Sorbet at Scale
ufuk
74
9.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
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