Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ゲームのテスト設計のチャレンジ

 ゲームのテスト設計のチャレンジ

Avatar for Shinsuke Matsuki(snsk)

Shinsuke Matsuki(snsk)

January 20, 2025
Tweet

More Decks by Shinsuke Matsuki(snsk)

Other Decks in Technology

Transcript

  1. スピーカー 松木 晋祐(Shinsuke Matsuki/@snsk) 株式会社ベリサーブ 執行役員 研究企画開発部長 AIQVE ONE株式会社 取締役CTO

    独立系ソフトウェアベンダにて、テストオペレータから品質部門統括まで、ソフトウェアテストと品質保証にま つわるさまざまなロールを経験後、ベリサーブ・AIQVE ONEへ参画。 NPOソフトウェアテスト技術者振興協会 会員 | テスト自動化研究会 ファウンダー Androidテスト部 ファウンダー | 東京電機大学 非常勤講師 | ISO/IEC/IEEE 29119-9 Editor W3C CSSWG コントリビューター | JSTQB Technical Committee など 共著/共訳/寄稿など
  2. テストアーキテクチャってなに • テスト開発において、テスト要求分析(TRA)とテスト詳細設計(TD)の間に入 る工程の成果物。システム開発における基本設計(外部設計)に該当 • テスト観点を扱いやすい粒度まで分解、体系化して、テスト全体の要素と構造 を明らかにする ◦ テストタイプなど、すごく大きな粒度で扱うこともあれば、テスト観点レベルで構造化すること もある。HAYST法におけるFV表(たぶん)、VSTePにおけるNGT(Notation

    for Generic Testing)、などが該当 • テストレベルは一部または全てを含む。これは組織による • 本用語、工程における国際的な合意は無い ◦ 無いし、テストアーキテクチャはこう描くという決まりも無い 本定義、及び僕の定義は以下の基本的に秋山さん資料に従っています https://www.jasst.jp/symposium/jasst12tokyo/pdf/A2-3.pdf
  3. テストアーキテクチャってなに • 「ls」コマンドのテスト開発におけるテストアーキテクチャ図(拙作) https://github.com/snsk/ls_testing/wiki/test_development • このアーキテクチャ図では、上に 行くほど重要。左に行くほど優 先、を示し、箱の大きさはテストの 厚み(ボリューム)を示している •

    箱は入れ子にできる • この様式の弱点は、入れ子の子要 素が他の何より重要、か優先の場 合に、描画が煩雑になる点 ◦ その場合は、(そんなに重要なら)別の 名前の箱として表現できるかもしれ ない • 前提や、やらないこと、は下に書 いてある
  4. ゲームのテスト自動化の困難性 Cristiano Politowski, Fabio Petrillo, Yann-Gäel Guéhéneuc. A Survey of

    Video Game Testing. 2021 カップリング UIとゲームメカニクスの間のカップリング スコープ ゲーム状態の探索空間が大きいので、すべてをカバーするのは不可能 ランダム性 ゲームにおける非決定性は、正しい動作を主張することを難しくしている 変更 ゲームデザインは頻繁に変更されるため、自動化を維持するのが難しい コスト テスターより自動化エンジニアのコストが高い。保守のコストもある 時間 開発者が自分のゲームをテストする時間がない ファン要素 自動テストで「楽しさ」を捉えることは不可能。また、多くのイベントが同時に発生 するゲームでは自動化が困難 コード 自動テストコード自体のバグ、プラットフォーム間の差異。
  5. テスト自動化で抑えるべきポイント • 自動テストは「フェーズ」ではなく「サービス」である ◦ いつでも、動いていなければならない • 構築3割、運用7割 • 原則としてリグレッションテストである。見つかるのはデグレードか変更され た箇所

    • どんなテストを、どれぐらい自動化するのか?テストタイプを意識する • 自動化に向いているテスト ◦ 同じ操作を、パラメータを変えて行うテスト ◦ ソーク(浸出)テスト、ロードテスト、負荷計測のテスト ◦ ツールによっては通しプレイ(プログレッション)のテスト ◦ バージョンROMごとの起動確認、初期シーケンスのテスト ◦ チュートリアルの自動化(半自動化)