Slide 1

Slide 1 text

開発もQAも自動テスト! 「LOST JUDGMENT:裁かれざる記憶」の QAテスター参加で進化した 「テスト自動化チーム(仮)」の取り組みについて 株式会社セガ 阪上 直樹 門脇 健造 粉川 貴至

Slide 2

Slide 2 text

株式会社セガ 第1事業部(龍が如くスタジオ) QAエンジニア 阪上 直樹 自己紹介

Slide 3

Slide 3 text

自己紹介 株式会社セガ プロジェクト業務部 門脇 健造 QA一筋でコンシューマーゲーム、 スマートフォンゲームタイトルのテストに多数参加 現在はプラットフォーム問わずタイトルテストの担当窓口 として、テスト進捗管理に従事

Slide 4

Slide 4 text

株式会社セガ 開発技術部 “自動化技術者” 粉川 貴至 自己紹介

Slide 5

Slide 5 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 – 運用編 – 結果編 • まとめ 本講演の目次

Slide 6

Slide 6 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 – 運用編 – 結果編 • まとめ 本講演の目次

Slide 7

Slide 7 text

開発 • ジャンル – リーガルサスペンスアクション • 対応機種 – PlayStation🄬5 / PlayStation🄬4 / Xbox Series X|S / Xbox One • 対応言語 – 音声:2言語、字幕:9言語 • 多拠点開発 – 在宅勤務・海外拠点を含む 本講演のタイトル紹介 LOST JUDGMENT:裁かれざる記憶 ※赤字:本講演で重要な要素

Slide 8

Slide 8 text

開発 どこでもリプレイシステム 全自動バグ取りシステムの活用事例 「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム https://www.slideshare.net/SEGADevTech/qa-238218522 手動プレイを記録中 リプレイ再生中 手動プレイ中にどこでも記録・リプレイが可能!

Slide 9

Slide 9 text

開発 • 開発スケジュールの時系列ごと 1. きっかけ編 2. 準備編 3. 運用編 4. 結果編 • 各時系列での各部門の視点 1. QA部門 2. 開発部門 3. 自動化技術者 講演の進行方法について

Slide 10

Slide 10 text

開発 • はじめに • テスト自動化事例 – きっかけ編 • QA部門 • 開発部門 • 自動化技術者 – 準備編 – 運用編 – 結果編 • まとめ 本講演の目次

Slide 11

Slide 11 text

QA テスト自動化・きっかけ編◆QA部門 必要なテストは年々増えていく 時間・費用・人・機材には限度がある タイトなスケジュール進行 リリース後に見つかる不具合への想い QA部門 の悩み

Slide 12

Slide 12 text

QA テスト自動化・きっかけ編◆QA部門 必要なテストは年々増えていく マルチプラットフォームや 多言語への対応など、 ゲームそのものの進化に追従する形で必 要なテストも増えていく QA部門 の悩み

Slide 13

Slide 13 text

QA テスト自動化・きっかけ編◆QA部門 時間・費用・人・機材には限度がある 時間・費用・人・機材は 言わずもがな有限 全ての事象が望みの通りの環境で進めら れるものではない QA部門 の悩み

Slide 14

Slide 14 text

QA テスト自動化・きっかけ編◆QA部門 タイトなスケジュール進行 様々な理由により 開発期間やテスト期間が後ろ倒しに なっても、リリース日を後ろ倒しには できず、当初予定していたテスト期間を 確保できないことがある QA部門 の悩み

Slide 15

Slide 15 text

QA テスト自動化・きっかけ編◆QA部門 リリース後に見つかる不具合への想い なんとかリリースに漕ぎ着けたものの、 リリース後にユーザーから不具合の報告 が来てしまった テストに十分な期間を設けることができ ていれば事前に見つけることができてい たかもしれない QA部門 の悩み

Slide 16

Slide 16 text

QA テスト自動化・きっかけ編◆QA部門 テスト自動化が 有効なのでは?

Slide 17

Slide 17 text

開発 「龍が如く7 光と闇の行方」開発時点 • テスト自動化チーム(仮)の構成 – メンバー • 開発部門+自動化技術者 – 担当箇所 • 管理、運用:1名 • テスト結果の見える化:1名 • スクリプト作成・保守:4名 • 機材管理:若手プログラマの空き時間 – なぜ(仮)なのか? • 組織上認められたチームではない • 自動テストの普及後に解散するのが最終目標 テスト自動化・きっかけ編◆開発部門

Slide 18

Slide 18 text

開発 • 開発部門内のみでテスト自動化を行う課題 – 本業としてゲームの実装を行いながらの作業 – 自動テストを作成・保守するための人材・機 材のリソース不足 – 品質保証・テスト設計の知見不足 テスト自動化・きっかけ編◆開発部門 開発部門・QA部門の組織を越境した テスト自動化チーム(仮)を結成!

Slide 19

Slide 19 text

自動化 • QA部門 – 今回本格的にテスト自動化に取り組むことに • 開発部門 – 開発部門内でのテスト自動化が整備され、QA部門を巻き込みた いタイミング • 自動化技術者とそれぞれとの関係 – QA部門と自動化技術者 • 長年テスト自動化についての協力関係はあったが、直接的な アウトプットは薄かった – 開発部門と自動化技術者 • ここ数年間、プロジェクトのテスト自動化対応に直接協力 テスト自動化・きっかけ編◆自動化技術者

Slide 20

Slide 20 text

自動化 テスト自動化・きっかけ編◆自動化技術者 2 0 1 0 2 0 2 0 年月 自 動 化 の 協 力 これまでの自動化技術者とそれぞれの部門との関係 QA部門 ・自動化に対する知見の熟成と今回のきっかけ ⇒ ついに実プロジェクトでの取り組みに 開発部門 ・知見共有→直接的な協力 時 が き た ! QA部門と自動化技術者 開発部門と自動化技術者 プロジェクトへの直接的なアウトプット

Slide 21

Slide 21 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 • QA部門 • 開発部門 • 自動化技術者 – 運用編 – 結果編 • まとめ 本講演の目次

Slide 22

Slide 22 text

開発 テスト自動化・準備編 開発部門 自動化 技術者 QA部門

Slide 23

Slide 23 text

QA QA部門の事前準備 テスト自動化・準備編◆QA部門 環境 機材 人材 学習

Slide 24

Slide 24 text

QA ・開発部門と同環境でテスト自動化が可能? ・特別な環境が必要? 開発側に準備を依頼 テスト自動化・準備編◆QA部門 環境

Slide 25

Slide 25 text

QA ・テスト自動化メンバーの選定 ⇒テスターの中からプログラムの知識に明るいメンバーを選出 テスト自動化・準備編◆QA部門 人材

Slide 26

Slide 26 text

QA ・テスト自動化で専用に使用できる機材の確保 ⇒手動テストと機材を併用する事によるトラブルを起こさないため テスト自動化・準備編◆QA部門 機材

Slide 27

Slide 27 text

QA ・参考書による学習 ・「龍が如く7 光と闇の行方」 のテスト自動化環境を試験運用 ⇒「どこでもリプレイ」の動かし方、スクリプト例を事前に学習 テスト自動化・準備編◆QA部門 学習

Slide 28

Slide 28 text

QA テスト自動化・準備編◆QA部門 同じ操作を繰り返し試行することで発生するかもしれない 不具合を自動検知することを目的として作成 ATMにアクセスして 1万円を引き出す 所持金が100万円に なるまで繰り返す 準備中に作成したスクリプト ©SEGA ©SEGA ©SEGA

Slide 29

Slide 29 text

QA 準備OK! テスト自動化・準備編◆QA部門 環境 機材 人材 学習

Slide 30

Slide 30 text

開発 • QA部門の学習のフィードバック • QA部門で動く自動テスト環境の準備 • 職種の違いを意識したワークフローの再構築 • 自動テストのテストケース設計 テスト自動化・準備編◆開発部門

Slide 31

Slide 31 text

開発 • フィードバックで気をつけたこと – 手動テストの方が早いものは止める – 実際のゲームは開発中なので、変更に追随し ないといけない点を共有 – デバッグ機能の使用可能範囲 • 自動テストがゲームの値を取得:OK • 自動テストがゲームの値を変更:NG QA部門の学習のフィードバック

Slide 32

Slide 32 text

開発 • どこでもバグ報告 – バグ報告時の自動入力ツール • エラー送信 – クラッシュレポートの自動化 • オートテスト – 自動テストシステムの総称 • どこでもログ分析 – 開発時のゲームやツールのログを収集・分析する基盤 龍が如くスタジオの自動テスト環境 自動テスト環境の詳細は『「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて』 https://www.slideshare.net/SEGADevTech/7-234572005

Slide 33

Slide 33 text

開発 QA部門 自動テスト環境の構築 ダンプ保管サーバ 作成・編集 自動取得 エラー送信 見える化 開発部門 作成・編集 見える化 エラー送信 自動取得 テストスクリプト テストケース設定 テスト環境 自動構築 自動テスト実行 テスト結果分析 テストスクリプト テストケース設定 テスト環境 自動構築 自動テスト実行 テスト結果分析 新規で準備した部分 バージョン管理 (ゲームと分離) 最新パッケージ ログサーバ

Slide 34

Slide 34 text

開発 • 別拠点 • PCのスペック – ゲームが動かないスペック • ネットワーク環境 – アクセス可否や権限 • サーバへの通信速度 – パッケージのダウンロード – ダンプのアップロード • 手動テストの邪魔にならない環境 – 手動テスト時のセーブデータや実績などに影響があると困る 開発部門とQA部門の環境の違い

Slide 35

Slide 35 text

開発 QA部門 自動テスト環境の構築(要検証ポイント) 作成・編集 見える化 開発部門 作成・編集 見える化 エラー送信 自動取得 テストスクリプト テストケース設定 テスト結果分析 テストスクリプト テストケース設定 テスト環境 自動構築 自動テスト実行 テスト結果分析 新規で準備した部分 バージョン管理 (ゲームと分離) ログサーバ ダンプ保管サーバ 自動取得 エラー送信 テスト環境 自動構築 自動テスト実行 最新パッケージ

Slide 36

Slide 36 text

開発 検証例・エラー送信(クラッシュレポート) 自動 アップロード ダンプ保管サーバ フルダンプ (GB単位) 数十GBを頻繁にアップロードできないかも? エラー 発生! 自動 出力

Slide 37

Slide 37 text

開発 検証例・エラー送信(クラッシュレポート) エラー 発生! 自動 アップロード ダンプ保管サーバ 検証の結果、QA拠点はフルダンプでOK 在宅環境のエラー送信の仕組みとして転用 ミニダンプ (MB単位) フルダンプ (GB単位) 1週間でローカル環境から自動削除 (必要に応じて手動アップロード) 自動 出力 自動 出力

Slide 38

Slide 38 text

開発 • 開発部門の運用ワークフローの振り返り – エラー発生後、自動的に「エラー送信」チケットとして登録 – ダンプやログ、動画等を解析 • 修正が容易な場合 – そのまま即修正 • 時間がかかる場合 – チケットをコピーして正式な「バグ」チケット化 自動テスト運用ワークフローの検討 ダンプやログの解析は開発者自身でないと難しい エラー送信チケットの詳細は、『「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム』 https://www.slideshare.net/SEGADevTech/qa-238218522

Slide 39

Slide 39 text

開発 • QA部門用の運用ワークフローを提案 – エラー発生後、自動的に「エラー送信」チケットとして登録 – 動画等を解析 • 自動テストと同条件・同手順の手動での再現確認 – 再現した場合 » チケットをコピーして正式な「バグ」チケット化 – 再現しないが自動テスト側で再現が継続する場合 » 開発部門のテスト自動化メンバーに調査を依頼 自動テスト運用ワークフローの提案 手動でも再現を確認しているため 修正確認も円滑に実施可能

Slide 40

Slide 40 text

開発 自動テスト運用ワークフロー図 QA部門・手動テストチーム QA部門・テスト自動化チーム 開発部門・開発チーム 日中:ゲーム実装 夜間:自動テスト実行 開発部門・テスト自動化チーム 日中: 自動テスト作成 自動テスト結果分析 24時間:自動テスト実行 エラー送信 エラー送信 バグ報告 最新 パッケージ 最新 パッケージ 最新 パッケージ 最新 パッケージ どこでもバグ報告 日中:手動テスト 安定 パッケージ 日中: 自動テスト作成 自動テスト結果分析 夜間:自動テスト実行 最新 パッケージ 最新 パッケージ 情報共有

Slide 41

Slide 41 text

開発 • テストケース – 正常系(シナリオクリアなど) – 異常系(ランダムや探索テストなど) • 検討材料 – マルチプラットフォーム×多言語 • 正常系テストの組み合わせが増える – 異常系のスクリプト作成 • エラー調査を含め、難易度が高い 自動テストのテストケース設計 今回は正常系テストに注力!

Slide 42

Slide 42 text

自動化 • QA部門 – 環境、機材、人材、学習面それぞれ準備が必要 • 開発部門 – 自動テスト環境をQA部門で動かすための対応が必要 – 運用の準備、QA部門とのすり合わせが必要 • 自動化技術者として – QA部門と自動化技術者 • テスト自動化の学習、開発側の自動テストシステムの仕組みの理解 をフォロー – 開発部門と自動化技術者 • QA部門に自動テストの仕組みを提供するための対応をサポート テスト自動化・準備編◆まとめ

Slide 43

Slide 43 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 – 運用編 • QA部門 • 開発部門 • 自動化技術者 – 結果編 • まとめ 本講演の目次

Slide 44

Slide 44 text

開発 • テストケース – メインシナリオ:開発+QA – サイドケース:開発+QA – ユースドラマ:開発 – ミニゲーム:QA – パフォーマンス計測:開発 • 対応プラットフォーム:開発+QA • 対応言語:開発+QA 自動テストのカバー範囲(計画)

Slide 45

Slide 45 text

QA 開発部門と共同で テスト自動化を行う スクリプトの作成を実施! テスト自動化・運用編◆QA部門

Slide 46

Slide 46 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 47

Slide 47 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 48

Slide 48 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 49

Slide 49 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 50

Slide 50 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 3. テスト結果内の問題部分を調査 3-b. 自動テスト側の不備 3-a. ゲーム側の不具合 3-c. ゲームの仕様変更による問題

Slide 51

Slide 51 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 52

Slide 52 text

QA QA部門での自動テストサイクル テスト自動化・運用編◆QA部門 1. 終業時に作成した自動テストを実行して退勤 2. 翌日始業時にテスト結果の内容を確認 3. テスト結果内の問題部分を調査 5. 1~4の繰り返し 4. 他の箇所に問題がないか確認

Slide 53

Slide 53 text

QA テスト自動化・運用編◆QA部門 敵に見つからないように身を隠しながら目的地を目指すシーン 複雑なアクションでも自動でクリア!

Slide 54

Slide 54 text

QA テスト自動化・運用編◆QA部門 シナリオ名 機材名 ログ 成功 率 クリア回数 実行 回数 自動テストのシナリオクリア結果ページ(毎日更新) 成功率が低いので 原因を調査 ※「W64」は、デバッグ用Windows版の結果

Slide 55

Slide 55 text

QA 運用時のコミュニケーション ・リアルタイムで連絡を取りたい ・拠点は離れていても込みいった相談事もしたい ・週1回のWeb会議を実施したい 「Microsoft Teams」を使用 テスト自動化・運用編◆QA部門

Slide 56

Slide 56 text

QA テスト自動化・運用編◆QA部門 鉄骨につかまるアクションが上手く できないです ※該当の動画を添付 問題なく進むことができました! そのようなアクションがある ことは聞いていましたが、動 画で初めて内容を見ました 対応検討します 相談して頂いたアクションを 自動化できるようにPython 関数を追加しました 不明なものはリアルタイムに都度相談できる環境 QA QA 開発 開発

Slide 57

Slide 57 text

QA テスト自動化・運用編◆QA部門 開発部門 開発部門とQA部門の橋渡し 共同作業中の気軽な情報交換で プロジェクトの一体感が向上! QA部門 テスト自動化チーム(仮) 最近実装したとこ ろが心配 特定シナリオのバグが多い けど何か変更した? ミニゲームの△△が ちょっと操作しにくい ○○の仕様が近々 変わるかも? 正式なやり取り 今日のパッケージ はここが不安定 QA 開発

Slide 58

Slide 58 text

開発 • 自動テストシステムの改善 • マルチプラットフォーム×多言語対応 • 多拠点開発のサポート テスト自動化・運用編◆開発部門

Slide 59

Slide 59 text

開発 • 自動テストの作成・保守の負担が軽減し、シス テム側の改善に注力 • 新規要素の自動テスト対応の迅速化 – スティール中のコイン投げ – アスレチック中の壁登り、鉄骨渡り – 探偵ガジェットの使用 自動テストシステムの改善

Slide 60

Slide 60 text

開発 マルチプラットフォームと多言語化により、組み合わせが爆発 • 組み合わせの例 – プラットフォーム:4 – 字幕言語:9 – 音声言語:2 – DLC「海藤正治の事件簿」:あり・なし • 上記だけで4×9×2×2=144パターン – それぞれのメインシナリオ、サイドケース、ミニゲーム… マルチプラットフォーム×多言語対応 自動テストであっても、 全組み合わせを網羅するのは不可能!

Slide 61

Slide 61 text

開発 リソースを最大限活用する組み合わせ プラットフォーム字幕 音声 海藤DLC DevWindows 日本語 日本語 あり PS4 英語 英語 なし PS5 ハングル 日本語 なし XBOXONE 簡体字 英語 あり XBOXSERIES 繁体字 日本語 なし DevWindows フランス 英語 なし PS4 イタリア 日本語 あり PS5 ドイツ 英語 なし XBOXONE スペイン 日本語 なし XBOXSERIES 日本語 英語 あり DevWindows 英語 日本語 なし PS4 ハングル 英語 なし PS5 簡体字 日本語 あり XBOXONE 繁体字 英語 なし XBOXSERIES フランス 日本語 なし DevWindows イタリア 英語 あり PS4 ドイツ 日本語 なし PS5 スペイン 英語 なし XBOXONE 日本語 日本語 あり XBOXSERIES 英語 英語 なし DevWindows ハングル 日本語 なし PS4 簡体字 英語 あり PS5 繁体字 日本語 なし XBOXONE フランス 英語 なし 制限の中でも 最大限の組み合わせを網羅 条件別に組み合わせが ずれていくように設定

Slide 62

Slide 62 text

開発 • 日々のパッケージ更新で特定言語を起動できな い不具合が頻発 – 海外拠点の翻訳QAに悪影響 – 時差による手戻りコストが高い • パッケージ提出のたびに手動で確認… 多拠点開発での問題点 「龍が如く7 光と闇の行方 インターナショナル」開発時

Slide 63

Slide 63 text

開発 多拠点開発を支える自動テスト 【自動】全プラットフォームで実施 1. ゲームを起動 2. タイトルの設定で言語を切り替え 3. すべての言語切り替えが成功したら1 章からシナリオテストを開始 【手動】上記の動画を目視でも確認 – 進行不能もあるため すべて手動でテストする時と比較して 確認時間と手戻りロスを大幅に削減 言語切り替えのみの自動テスト

Slide 64

Slide 64 text

自動化 QA部門、開発部門(と自動化技術者)全員で 「テスト自動化チーム(仮)」として 日々の自動テスト作成・運用に取り組んだ テスト自動化・運用編◆まとめ

Slide 65

Slide 65 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 – 運用編 – 結果編 • QA部門 • 開発部門 • 自動化技術者 • まとめ 本講演の目次

Slide 66

Slide 66 text

QA テスト自動化・結果編◆QA部門 QA部門内の「テスト自動化チーム(仮)」の動き 【良かった点】 ※pkg = パッケージ pkg 更新 業 務 開 始 起動・ 手動テスト 開始 pkg ダウン ロード pkg インス トール 自動テスト 結果確認・ 手動テスト 開始 自動起動・ 自動テスト 開始 pkg 自動 インス トール pkg 自動 ダウン ロード pkg 更新

Slide 67

Slide 67 text

QA 【気づいたこと】 ・事前準備の時間が必要 ・繰り返しの確認が必要なものは自動化を試みるべき ・自動化した時のメリット・デメリットを事前に考慮 ・手動テストと自動テストは異なる テスト自動化・結果編◆QA部門

Slide 68

Slide 68 text

QA 【出来るようになったこと】 ・開発部門と同じ環境で自動テストが出来るようになった ・Pythonを使って自動テストのための スクリプトが書けるようになった ・自動テストの結果内容を理解して 必要な行動を取れるようになった ・自動テストの仕組みを理解した上で 自動化したいテスト内容を考えられるようになった テスト自動化・結果編◆QA部門

Slide 69

Slide 69 text

開発 • テスト自動化チーム(仮)の変化 • 自動テストの実績 • 不安定なテストの減少による効果 テスト自動化・結果編◆開発部門

Slide 70

Slide 70 text

開発 • LOST JUDGMENT時のチーム構成 – メンバー • 開発部門+自動化技術者+QA部門 – 担当箇所 • 管理、運用:2名 • テスト結果の見える化:2名 • スクリプト作成・保守:4名(QA部門2名は専任) • 機材管理:若手プログラマの空き時間 – 自動テスト専用機材(ピーク時) • PC:65台 • 開発機:43台 テスト自動化チーム(仮)の変化

Slide 71

Slide 71 text

開発 自動テストの実績(円グラフ) 自動テスト 16,930件 33.4% JUDGE EYES:死神の遺言 自動テスト 手動テスト 自動テスト 19,007件 63.7% 大幅に 効率アップ LOST JUDGMENT:裁かれざる記憶

Slide 72

Slide 72 text

開発 自動テストの実績(表) エラー検知 規模 価値 自動 テスト 総数 自動 テスト率 自動テスト 稼働数 のべ 稼働時間 龍が如く0 誓いの場所 621件 9,664件 6.4%​ 100​ - 龍が如く6 命の詩。 8,102件 43,369件 18.7%​ 150​ 82,104 h​ 龍が如く極2 8,645件 20,675件 41.8%​ 180​ 78,160 h​ 北斗が如く 16,532件 41,190件 40.1%​ 210​ 114,808 h​ JUDGE EYES:死神の遺言 16,930件 50,671件 33.4%​ 200​ 244,040 h​ 龍が如く7 光と闇の行方(※) 32,315件 45,880件 70.4%​ 219​ 593,560 h​ LOST JUDGMENT:裁かれざる記憶 19,007件 29,833件 63.7%​ 212​ 566,976 h​ ※龍が如く7はインターナショナル版を含む

Slide 73

Slide 73 text

開発 自動テストの実績(表) エラー検知 規模 価値 自動 テスト 総数 自動 テスト率 自動テスト 稼働数 のべ 稼働時間 龍が如く0 誓いの場所 621件 9,664件 6.4%​ 100​ - 龍が如く6 命の詩。 8,102件 43,369件 18.7%​ 150​ 82,104 h​ 龍が如く極2 8,645件 20,675件 41.8%​ 180​ 78,160 h​ 北斗が如く 16,532件 41,190件 40.1%​ 210​ 114,808 h​ JUDGE EYES:死神の遺言 16,930件 50,671件 33.4%​ 200​ 244,040 h​ 龍が如く7 光と闇の行方(※) 32,315件 45,880件 70.4%​ 219​ 593,560 h​ LOST JUDGMENT:裁かれざる記憶 19,007件 29,833件 63.7%​ 212​ 566,976 h​ ※龍が如く7はインターナショナル版を含む アクションゲームでも 同水準の効率を維持! 多機種・多言語で増大する 組み合わせをカバー

Slide 74

Slide 74 text

開発 • テストケース – メインシナリオ:100% – サイドケース:90% – ユースドラマ:100% – ミニゲーム:100% – TownGo(実績系):一部(手動テストチームからの要望) – パフォーマンス計測:FPS/VRAM等 • 対応プラットフォーム:100% • 対応言語:100% 自動テストのクリア率(カバー範囲)

Slide 75

Slide 75 text

開発 • 前作(JUDGE EYES)のデバッグ期 – メインシナリオのクリア率が不安定 – バグか自動テストの問題かの調査が多発 • 本作(LOST JUDGMENT)のデバッグ期 – メインシナリオの全クリアを日々100%維持 自動テストの精度が向上 不安定なテスト(Flaky Test)が減少した結果 再現率の低い不具合に気づくことができた

Slide 76

Slide 76 text

自動化 • QA部門、開発部門それぞれの成果として – 開発側の自動テストの仕組みをQA部門が使用 し、協力して運用する事例ができた • 自動化技術者として – 間に入ることで、それぞれの部門に不足して いる部分をサポートできた テスト自動化・結果編◆まとめ

Slide 77

Slide 77 text

開発 • はじめに • テスト自動化事例 – きっかけ編 – 準備編 – 運用編 – 結果編 • まとめ 本講演の目次

Slide 78

Slide 78 text

QA 開発 • QAテスターが自動テストを作成可能 – QAテスターの1人のカバー範囲が拡大 – ゲームの規模拡大でも品質を維持・向上 • マルチプラットフォーム・多言語に有効 – 爆発する組み合わせを自動テストでカバー 本事例でのテスト自動化の成果

Slide 79

Slide 79 text

QA 開発 • QA視点の自動テストの実施 • QAテスターからQAエンジニアへのキャリアパス • 自動テスト稼働のための機材不足 – QA部門での稼働数を増やしていく • 自動テストの作成・保守コストの増加 – スクリプトの自動生成を検討 今後の課題

Slide 80

Slide 80 text

開発 運用 環境 自動テスト テスト自動化のロードマップ ランダム入力 パス入力 ルールベースAI プレイヤーAI スクリプト 画像認識 機械学習 テストケース の設定 ログやキャプチャ の自動収集 クラウド実行 環境 汎用化 テストケース の自動生成 ~龍3 龍4,5,0,極 龍6,極2,7 クラッシュ レポート 最新ビルドに 更新して実行 テスト結果の 見える化 自動テストの 協力者を増やす 成果を示して 規模拡大 テスト自動化 チームの結成 みんなで 自動テスト 現在進行形

Slide 81

Slide 81 text

開発 • テスト自動化専任エンジニア:達成 • 若手プログラマ:達成 • QAテスター:達成 みんなで自動テスト • ゲームデザイナー:レベルデザイン確認 • アーティスト:UIや背景の自動撮影 • サウンド:環境音等の再生条件確認 将来

Slide 82

Slide 82 text

開発 みんなで自動テストの実現に向けて 「テスト自動化チーム(仮)」の挑戦は続く

Slide 83

Slide 83 text

桑原 和人(株式会社セガ 第1事業部) 堀江 裕貴(株式会社セガ 第1事業部) 米澤 綾恭(株式会社セガ 第1事業部) 徐 文杰(株式会社セガ 第1事業部) 石井 航(株式会社セガ 第1事業部) 石山 莉帆(株式会社セガ 第1事業部) 越智 拓海(株式会社セガ 第1事業部) 白崎 真希子(株式会社セガ プロジェクト業務部) 小田内 敦史(株式会社セガ プロジェクト業務部) 共同研究・開発者

Slide 84

Slide 84 text

• 「龍が如く」の高速デバッグ術 ~そびえ立つバグの山を踏破するための弾 丸ワークフロー~ – http://jasst.jp/symposium/jasst16tokyo/pdf/E2.pdf • 無料で始める! 「龍が如く」を面白くするための 高速デバッグログ分析と 自動化 – http://www.jasst.jp/symposium/jasst18tokyo/pdf/D4.pdf • 「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム (仮)による若手育成の取り組みについて – https://www.slideshare.net/SEGADevTech/7-234572005 • 「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取 りシステム – https://www.slideshare.net/SEGADevTech/qa-238218522 関連資料