Slide 1

Slide 1 text

実機ビルドのエラーによる 検証ブロッカーを0に! 『ヘブンバーンズレッド』のスモークテスト 自動化の取り組み グリー株式会社 QAエンジニア 勅使川原 大輔 QAエンジニア 佐々 恵

Slide 2

Slide 2 text

勅使川原 大輔 2016年10月グリー株式会社に入社。 現在『ヘブンバーンズレッド』のテスト管理、 品質改善に従事。 共著『ゼロからはじめるゲームテスト ―壁抜けし たら無限ガチャで最強モードな件?』発売中! グリー株式会社 Customer&Product Satisfaction部 QAグループ WFS & Linguistic QA チーム 2

Slide 3

Slide 3 text

佐々 恵 2022年10月グリー株式会社に入社。現在『ヘブン バーンズレッド』のQA業務に従事。テスト自動化 の実装を担当。 3 グリー株式会社 Customer&Product Satisfaction部 QAグループ WFS & Linguistic QA チーム

Slide 4

Slide 4 text

アジェンダ ● 取り組みの背景 ● 自動化導入のプロセス ● 構築した自動スモークテストフロー ○ iOS/Android 詳細フロー ○ Steam 詳細フロー ● 得られた効果 ● まとめと今後の展望 4

Slide 5

Slide 5 text

取り組みの背景 5

Slide 6

Slide 6 text

『ヘブンバーンズレッド』について ライトフライヤースタジオとKeyがおくる ドラマチックRPG iOS/Android/Steamで好評配信中 2024年8月10日で2.5周年を迎えました! 6

Slide 7

Slide 7 text

QA組織について ○ グリーグループ横断のQA業務を担当 ○ QAチームは開発チームから独立した組織 7 DX事業
 マンガ
 メタバース
 ゲーム・アニメ
 QA


Slide 8

Slide 8 text

QA体制について ● ヘブバンQAチームの体制 8 プルリクエスト 単位で全チェック 毎日数十人の テスターが稼働 複数バージョンを 並行開発・QA

Slide 9

Slide 9 text

テスト準備における課題 9 ビルド作成 テスト準備 テスト開始 不具合修正 なし あり 従来のフロー ● デイリーで夜間にビルドを作成 ● 業務開始前にテスターがビルドをイ ンストール ● ビルドに問題なければテスト開始 ブロッカー? ※テスト準備:ここではビルドをインストールすること

Slide 10

Slide 10 text

テスト準備における課題 10 課題1 ● ブロッカー発生により当日テストが できなくなる →1日8時間×稼働人数の工数が無駄 に 課題2 ● 検証ブロッカー発生によりQA期間が 1日減る →テスト期間が圧迫され品質低下に ビルド作成 テスト準備 テスト開始 不具合修正 なし あり ブロッカー? ※ブロッカー:ビルドが動かないなどテストが開始できない不具合

Slide 11

Slide 11 text

解決策 11 ビルド作成 自動スモーク テスト テスト開始 不具合修正 なし あり ブロッカー? テスト準備 ビルド作成 テスト準備 テスト開始 不具合修正 なし あり ブロッカー?

Slide 12

Slide 12 text

解決策 12 ビルド作成 自動スモーク テスト テスト開始 不具合修正 なし あり ブロッカー? テスト準備 ● 自動テストで事前にブロッカーを検知 ● テスト準備工数の無駄を防止 ● 修正や再ビルドのサイクルも高速化 自動スモークテスト導入で課題を解決 ※スモークテスト:ビルドの起動からチュートリアル完了までのテスト

Slide 13

Slide 13 text

自動化導入のプロセス 13

Slide 14

Slide 14 text

取り組んだ過程 14 iOS、Androidスモークテスト
 スクリプト作成
 Steamスモークテスト
 スクリプト作成
 外部ツール連携周りの実装
 概要
 ■ アプリ起動、ログイン、バトル、ホーム画面を確認 するテストを作成
 ■ AirtestIDEを使用することでエンジニア経験が浅く ても簡単にスクリプトの作成が可能
 
 
 運用開始


Slide 15

Slide 15 text

使用したツール 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/

Slide 16

Slide 16 text

Airtestとは 16 ● ● ●   モバイルアプリやPCゲームの自動   テストをサポート   Pythonベースのスクリプト言語で   テストケースを記述   クロスプラットフォームで   一貫したテストの実行が可能 AirtestIDE

Slide 17

Slide 17 text

AirtestIDEについて 17 Pythonスクリプト 接続している端末画面

Slide 18

Slide 18 text

バトル開始〜勝利までのデモ(Airtest) 18

Slide 19

Slide 19 text

Airtestのレポート 19

Slide 20

Slide 20 text

取り組んだ過程 20 iOS、Androidスモークテスト
 スクリプト作成
 Steamスモークテスト
 スクリプト作成
 外部ツール連携周りの実装
 つまづいた点 
 ■ iOSのみAirtestIDE接続がうまくいかない
 ➔XcodeバージョンとiOSバージョンをAirtestサポー ト内に設定
 ■ 画像認識に失敗することがある
 ➔スクリプト内の画像をPF毎に用意
 運用開始
 概要
 ■ アプリ起動、ログイン、バトル、ホーム画面を確認 するテストを作成
 ■ AirtestIDEを使用することでエンジニア経験が浅く ても簡単にスクリプトの作成が可能
 
 


Slide 21

Slide 21 text

取り組んだ過程 21 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 概要
 ■ iOS、Androidと同じ内容のテストを作成
 ■ 直接ゲーム画面からスクリーンショットを取得しスク リプトを作成
 
 
 
 iOS、Androidスモークテスト
 スクリプト作成
 Steamスモークテスト
 スクリプト作成
 外部ツール連携周りの実装
 運用開始
 つまづいた点 
 ■ ウィンドウ切り替えが多いと接続が切れやすい
 ➔Steamブラウザ内の操作はAirtestライブラリだけで なくpygetwindowライブラリも使用


Slide 22

Slide 22 text

取り組んだ過程 22 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 概要
 ■ 下記3つの連携の仕組みを実装
 ・Jenkinsからビルドファイルのダウンロード
 ・各PFへのインストール
 ・slackへテスト結果の送信
 
 
 
 iOS、Androidスモークテスト
 スクリプト作成
 Steamスモークテスト
 スクリプト作成
 外部ツール連携周りの実装
 運用開始
 つまづいた点 
 ■ インストールが失敗しやすい
 ➔失敗時に繰り返すように実装


Slide 23

Slide 23 text

取り組んだ過程 23 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 概要
 ■ 実業務での運用を開始
 iOS、Androidスモークテスト
 スクリプト作成
 Steamスモークテスト
 スクリプト作成
 外部ツール連携周りの実装
 運用開始
 つまづいた点 
 ■ UI変更がある度にスクリプト修正が必要
 ➔都度修正を実施
 ■ PFごとに画像認識に失敗しやすい操作が異なる
 ➔PFごとに修正を実施


Slide 24

Slide 24 text

構築した自動スモークテストフロー 24

Slide 25

Slide 25 text

スモークテスト環境の構成図 25 WindowsPC iOS Android CIツール チャット スモークテスト サーバー USB接続 LAN接続 webhook

Slide 26

Slide 26 text

iOS/Android 詳細フロー 26

Slide 27

Slide 27 text

ビルド完成〜ビルド情報のキュー 27 #ビルドch スモークテストサーバー ③ビルド情報を キュー Queue ①ビルド結果 通知 ②ビルドの完了を 検知

Slide 28

Slide 28 text

ビルド情報の取得〜ビルドインストール 28 Queue ⑥ビルド インストール ⑤ビルド ダウンロード ④ビルド情報を デキュー

Slide 29

Slide 29 text

⑨テスト結果 通知 スモークテスト開始〜テスト結果通知 29 ビルド情報 #自動テストch ⑧スモークテスト 実行 ⑦ビルド情報 読み込み

Slide 30

Slide 30 text

Steam 詳細フロー 30

Slide 31

Slide 31 text

ビルド完成〜ビルド情報のキュー 31 ③ビルド情報をキュー #ビルドch Queue WindowsPCで キュー管理 スモークテストサーバー ①ビルド結果 通知 ②ビルドの完了を 検知 WindowsPC

Slide 32

Slide 32 text

ビルド情報の取得〜テスト結果通知 32 Queue ⑥テスト結果 通知 #ビルドch #自動テストch ⑤ビルドインストール &スモークテスト ④ビルド情報を デキュー WindowsPC

Slide 33

Slide 33 text

得られた効果 33

Slide 34

Slide 34 text

得られた効果 34 ●   ●     ●     課題1 1日8時間×稼働人数の工数が無駄   ➔約200時間/施策の無駄を削減   課題2 検証ブロッカーが発生するとQA期間が1日減少   ➔QA期間前に修正することで当初のQAスケジュールでの運用を実現   その他付加価値   ➔ブロッカー以外の不具合の検知を実現    (サーバーリリース前日に新規ユーザーに影響する不具合など)

Slide 35

Slide 35 text

まとめと今後の展望 35

Slide 36

Slide 36 text

まとめ 36 実施内容 ● ビルド毎のテスト開始の可否確認を自動化 ● 不具合の検知を早めることで開発効率や品質の向上に寄与 取り組みのポイント ● エンジニア経験が浅いメンバーでもAirtestを活用することで対応ができた ● テスト実行上の課題をQAチーム主体で解決ができた

Slide 37

Slide 37 text

今後の展望 37 ● ビルドパイプラインへの組み込み ○ Jenkins Jobトリガーでテスト開始 ● スモークテストの精度向上 ○ Hierarchy要素でUI操作 ○ テスト範囲拡大 ○ ソケット接続エラーの解消 ●   ●  

Slide 38

Slide 38 text

ご清聴ありがとうございました 38

Slide 39

Slide 39 text

No content