GREE Tech Conference 2022で発表された資料です。 https://techcon.gree.jp/2022/session/TrackB-8
グリー株式会社 QAエンジニア 勅使川原 大輔ヘブンバーンズレッドのアドベンチャーパートに対するテスト手法グリー株式会社 QAマネージャー 野本 雅俊
View Slide
登壇者紹介2 氏名と所属 野本 雅俊 (のもと まさとし) Customer & Product Satisfaction部 WFQAチーム マネージャー 略歴 2012年グリーに入社。GREE PFのQA担当後、NativeゲームのQAへ異動。2018年からマネージャーとなる。 主な業務内容 WFSタイトル全般のQA統括 各メンバーのマネジメント 氏名と所属 勅使川原 大輔 (てしがわら だいすけ) Customer & Product Satisfaction部 WFQAチーム 略歴 2016年グリーに入社。移管タイトルのQAやリスク対応推進担当などを経て、ヘブンバーンズレッドのβ開発からQAを担当。 主な業務内容 ヘブンバーンズレッドのQAチームリーダー
3 1. 本タイトルにおける品質状況 a. ヘブンバーンズレッドとは 2. アドベンチャーパートのテスト a. 探索的テスト b. フラグ分岐の網羅 3. まとめ
・新規リリースから1ヶ月程度は障害数が多くなりがち・だが、本タイトルでは障害数が抑制できていた4 タイトルA タイトルB 本タイトル90件 99件 25件本タイトルにおける品質状況リリース直後の障害数についてリリース後1ヶ月障害数比較(大小含めた件数)本タイトルのQAにおける独自の取り組みが障害抑制の一因となった
ヘブンバーンズレッドとは5 フィールド バトルアドベンチャー
ヘブンバーンズレッドとは6 フィールド バトルアドベンチャー
QAの取り組み例アドベンチャーパートのテスト• 全テストケースのレビューとフロー構築• スキルの組み合わせ網羅とテストデータ作成• アドベンチャーパートのテスト• 探索的テスト• フラグ分岐の網羅• ※VISUAL ARTS/Keyによる全分岐の網羅的な監修7
8 前提課題アドベンチャーパートのテストゲームのメイン部分を占めボリュームが大きく品質を担保すべき優先度も高いなんかADVのスクショ
9 前提課題アドベンチャーパートのテスト選択肢による分岐
10 前提課題アドベンチャーパートのテスト複雑なフラグ管理過去の選択肢が影響して分岐する
11 前提課題アドベンチャーパートのテストそれらを網羅した様な仕様書は無かった絶望的なイラスト
12 前提課題アドベンチャーパートのテストテキスト量が膨大フラグ管理が複雑網羅した仕様書が無い膨大な工数がかかるカバレッジを担保することが難しいテストケース作成が困難
13 アドベンチャーパートのテストテスト目的などを含むテストチャータを使用する詳細な手順や確認項目を記載せずテスト実行時に手順や新たな観点を発見していく探索的テスト"探索的テストは、仕様がほとんどなかったり、不十分であったり、テストのスケジュールに余裕がなかったりする場合に最も効果が大きい。他の形式的なテスト技法を補完する場合にも効果が大きい。"JSTQB Foundation Level シラバス より
14 アドベンチャーパートのテスト各シーンで確認すべきテスト目的の粒度で記載探索的テストシーン 対象 目的ADV テキスト 誤字脱字、話者名の相違などがないかADV 演出 表示崩れやNG演出がないかADV ボイス テキストとの相違や音量の不備がないかADV 背景 状況に合った背景かテストチャータの例
15 探索的テストアドベンチャーパートのテストメインストーリーはゲーム内の時間単位で区切ってテストを行った
16 アドベンチャーパートのテストテンプレートを作成し全ての章、Day、時間帯に分割してテストする探索的テスト
17 アドベンチャーパートのテストテスト設計にかかる工数を削減し全てのストーリーをテストしたことが担保できた探索的テストだがフラグ分岐の網羅はできていない
18 フラグ分岐の網羅アドベンチャーパートのテストLuaスクリプトの例見せる用のLua※実際のスクリプトとは異なります
19 フラグ分岐の網羅アドベンチャーパートのテストLuaスクリプトの例見せる用のLua※実際のスクリプトとは異なります
20 フラグ分岐の網羅アドベンチャーパートのテストLuaスクリプトの例見せる用のLua※実際のスクリプトとは異なります
21 フラグ分岐の網羅アドベンチャーパートのテスト全Luaからフラグをセット/参照している場所を抜き出して網羅Luaファイル フラグのセット/参照一章/Day01/午前01 SetFlag(“1章Day1でてへぺりんこした”)一章/Day10/夕方 GetFlag(“1章Day1でてへぺりんこした”)一章/Day03/昼 GetFlag(“ハンバーグカレー食べた ”)一章/Day03/昼 GetFlag(“カルボナーラ食べた ”)フラグの例
Luaから分岐のある箇所を確認し全ての分岐に対してフラグを立てられること回収できることを確認22 フラグ分岐の網羅アドベンチャーパートのテストフラグ分岐のテストケース
フラグ分岐を網羅した上で各分岐を探索的テストできるようにしたテンプレート23 フラグ分岐の網羅アドベンチャーパートのテスト
24 結果アドベンチャーパートのテスト品質工数 テスト作成工数削減リリース1ヶ月の障害数25件アドベンチャーの進行不能なし工数と品質に大きな効果が出せた
25 結果アドベンチャーパートのテスト一定の結果は出せているがまだ障害は減らせるはず品質を高めるため、さらなる改善に取り組んでいく
26 まとめ・仕様書が不足している場合は実装を基にしたテストを検討する・実装を読み取りプランナーやエンジニアと対等に話せる技術知見が必要・QA技術を用いて必要なテストを導くことで品質を高めることができる・品質を高めるためには積極的な『攻めのQA』を意識する今後、これらの取り組みをQA全体で共有しより技術力を高めてグリーグループ全体の品質向上に繋げていく
27 ご清聴ありがとうございました
28