ISTQB® Certified Tester Game Testing v1.0.1 の翻訳とサマリー

この記事は [ソフトウェアテスト Advent Calendar 2023](https://qiita.com/advent-calendar/2023/softwaretesting) 7日目の記事です。
昨日は ころむにー さんの [CI環境でiOSのUIテストを自動実行する際、失敗したテストケースの画面録画を残す](https://zenn.dev/colomney/articles/record-video-on-ios-xcuitest) でした。サーバを立てて、シミュレータの画面録画も自動化していて素敵でした。自動テストは失敗したときのトラブルシュートに時間がかかるので画面録画は重宝しますね。

https://zenn.dev/colomney/articles/record-video-on-ios-xcuitest

# 概要

普段ゲーム開発に携わっているため、 [ISTQB® Certified Tester Game Testing v1.0.1（CT-GaMe）](https://istqb-main-web-prod.s3.amazonaws.com/media/documents/ISTQB_CT_GaMe_Syllabus_v1.0.1_LtrKuyi.pdf)[^KEY_1] を翻訳し、そのサマリーをまとめてみることにしました。

## 注意書き

[^KEY_1]: CT-GaMeは、ISTQB®認定スキームにおけるスペシャリストの一部であり、初のゲームテスティング認定テスター資格です。CTFLの次のステップとして、ソフトウェアテストに携わる方で、ゲームテストの知識を深めたい方、ゲームテストのスペシャリストとしてキャリアを積まれたい方を対象としています。また、ゲームソフトウェアエンジニアリングに携わる方で、ゲームテスティングをより深く理解したい方にもおすすめの資格です。[JSTQB の ISTQB® NEWS より](https://jstqb.jp/istqbnews.html)

本記事は2022年11月に ISTQB® よりリリースされた 

- Certified Tester Game Testing v1.0.1（CT-GaMe）

を翻訳し、そのサマリーを自分なりにまとめたものになります。翻訳が間違っている箇所や曖昧な箇所があると思いますが、内容が日本語である程度把握可能な状態になることを目指しました。

:::note warn
正確な内容を確認したい場合は、[原文](https://istqb-main-web-prod.s3.amazonaws.com/media/documents/ISTQB_CT_GaMe_Syllabus_v1.0.1_LtrKuyi.pdf) を読まれることを強く推奨します。
:::

# サマリーの前に

本編は 89 ページあるシラバスの要約なのでとても長いです。
なので、サマリーに入る前にシラバス全体を翻訳して思うこととして、以下の4点について先にまとめてみます。

* 特に勉強になった章
* 書いてあること
* 書いていないこと
* 得られた学び

## 特に勉強になった章

- Testing Game Mechanics - ゲームメカニクスのテスト
    - 概念としては理解しているものの、「メタメカニクス」という言語化で理解が深まった
- Sound Testing - サウンドテスト
    - サウンドの聴こえる範囲をツールで可視化する発想はなかった
- Localization Testing - ローカライゼーションテスト
    - 国際化を経てローカライゼーションする、という説明にとても納得した

## シラバスに書いてあること

- ゲームソフトウェアの特徴的な機能や内容の紹介、テスト手法、欠陥種類、ツールアプローチ
    - メカニクス
    - グラフィックス
    - サウンド
    - レベル
    - コントローラー
    - ローカライゼーション
- 主に3Dゲームのテストアプローチに焦点を当てている
- 広く、浅く、簡潔にまとめられたゲームテスト知識

## シラバスに書いていないこと

- ソフトウェアテストに関する知識のゲームテストへの活かし方(深さの不足)
    - 抽象的なテスト手法を具体化しているわけではない
- 運用フェーズ(ポストプロダクションステージ)のテスト手法
    - チェッキング作業をどのように効率化させるとよいか
- ゲームの面白さを高めるためのテスト
    - 例えば、ユーザ受け入れテストに関する記述はない

## シラバスから得られた学び

- ほとんどのゲーム(特にオープンワールドゲーム)は要素の組み合わせを全てテストすることは不可能
    - テストチームが広大なマップを手動でテストしてはいけない
    - エンジニアやデザイナーが利用する開発ツールを用いて、E2Eテスト以外でテストする方法をテストチームで考える

# サマリー
それでは、ここから各章のサマリーです。

## 1. Specificity of Game Testing - ゲームテストの特異性

### ゲームテストの基礎

#### ゲームテストの特異性

- ソフトウェアテストでは、さまざまな特異性を区別するのが一般的
    - アプリケーションのパフォーマンステスト
    - モバイルアプリケーションのテスト
    - セキュリティシステムの脆弱性を探す
    - コンピューターゲームの欠陥を探す
- このシラバスではゲームテストならではの項目(特異性)をどのようにテストするかを説明する

#### ゲーム製品のリスク

- ゲーム内での不正な利益の獲得
- プレイヤーの主観的な意見による市場の成功への依存
- マルチプラットフォームの問題
- ゲームメカニクスの効果の予測の複雑さ

#### ゲームテストに関連する欠陥

- グラフィックとアニメーションの問題
- ゲームの世界の物理法則の違反
- ゲームの人工知能の欠陥
- ゲームのプロットの不正確さ
- 一部のインターフェース要素の誤った機能（例：ゲームキャラクターが空から出現し、敵を攻撃せず、浮遊する車など）

#### ゲームテストの難しさ

- 欠陥は簡単に見つけることができるかもしれない
- ただ、それらを再現するための正確な手順を特定することは困難
- この複雑さがゲームテストを難しくしている

#### 優れたテスターに必要な要素

- 意図したゲームシナリオに基づいてテストを設計する
- 仕様に準拠しているかを検証する
- 設計されたシナリオからの可能な逸脱を分析する
- これらの逸脱の結果について報告する

#### ネガティブテスト

- 他のソフトウェアと同様に明らかな欠陥を特定し、プレイヤーが非標準の操作を行った結果として現れる暗黙の欠陥を見つけることが重要
    - 敵と戦い、施錠されたドアの鍵を探す代わりに、ユーザーはレベル中のあらゆる箱を集め、それらを使って梯子を作り、それを使ってフェンスを乗り越えることで、厳しい戦闘を回避すること
- 非標準操作による欠陥リスクは、ゲームプロジェクトにおいてネガティブテストを行う重要性を高める

#### プレイヤー意見への依存

- ビジネスの問題を解決するために設計されたソフトウェアでは、その機能が最も重要な要素
- ゲームソフトウェアでは、プレイヤーの興味のレベルとゲームセッションの印象が最も重要な要素
    - ゲームが退屈、単調、または古いグラフィックを使用している場合、プレイヤーは単にそれを使用しなくなる
    - ゲームの観客の大部分は、ゲーム批評家、レビュアーのフィードバックに基づいて製品の購入または使用についての決定を下す

#### マルチプラットフォーム

- 各アップデートは、利用可能なプラットフォームごとにテストする必要がある
- これにより、深刻なリスクが生じ、テストに必要な時間が大幅に増加する

### ゲームテストが製品のリスクを軽減する方法

- ほとんどのゲーム、特にオープンワールドゲームは、ゲームオブジェクト、イベント、要素のすべての組み合わせをテストすることは不可能
- 各テストケースに対して、優先順位をつける
    - ここで欠陥を見つける可能性はどれくらいか？
    - 欠陥が見つかった場合、会社にどのような影響があるか？
- 個々の欠陥ではなく、欠陥グループを特定する
    - 開発者がコードやアーキテクチャで問題を同時に解決することができる
- チュートリアルはプレイヤーが製品を評価するための重要な要素
    - チュートリアルの欠陥リスクは優先して下げる

### テストとプレイの違い

- ゲームのテスターの仕事の本質は、一日中同僚とオンラインでプレーすることだと思われるかもしれない
    - しかし、これは真実とはほど遠い発想である
- 新しいプロジェクトを知るためやプレイテスト中にプレーするときを除いて、ほとんどプレーすることがない
    - 他のソフトウェアと同様にさまざまなタイプのテストを実施することに関心がある
- ゲームテスターの役割
    - テストモデルとテスト戦略を開発する
    - テストデータを設計・準備する
    - 仕様をレビューする
    - 様々なタイプのテストを実施する
    - 欠陥を見つけ、分析する

### ゲームソフトウェア開発ライフサイクル全体でのテスト活動

- コンセプトステージ
    - 成果物
        - ビジョン文書
        - コンセプト文書
        - 製品および技術的な制約
    - テスト活動
        - テスト戦略を描く
    - テストウェア
        - テスト戦略
        - テスト計画の草案
        - テストの高レベルな作業推定
        - テスト環境
- プリプロダクションステージ(プロトタイプ)
    - 成果物
        - 要件仕様
        - ゲームのプロトタイプ
        - 前のステージで作成されたテストアーティファクト
    - テスト活動
        - 要件仕様のレビュー
        - テスト計画やテストスケジュールの作成
    - テストウェア
        - テスト戦略
        - テスト計画
        - テストスケジュール
        - テスト環境
- プロダクションステージ(α、β)
    - テスト活動
        - ゲームの機能、非機能テスト
        - システムテスト、受け入れテスト
        - 確認テスト、リグレッションテスト
    - テストウェア
        - テスト計画
        - テストスケジュール
        - テストケース、テスト条件、チェックリスト、テストスイート、スクリプト
        - 欠陥レポート
        - テストレポート
- ポストプロダクションステージ(運用)
    - テスト活動
        - アップデートの機能、非機能テスト
        - リグレッションテスト

## 2. ****Testing Game Mechanics - ゲームメカニクスのテスト****

### ゲームメカニクス

#### テスト対象

- ゲームシステムと言い換えても良さそう
- ゲームメカニクスの目的
    - プレイヤーを増やしたり、維持し続けるために興味を引くこと
- ゲームプレイと非ゲームプレイによる違い
    - コアメカニクス
        - ゲームプレイの内側にあり、ゲームプレイ全体を通して繰り返すアクションによってプレイヤーが特定の体験を受け取る仕組み
    - メタメカニクス
        - ゲームプレイの外側にあり、プレイヤーがゲームデザイナーの意図通りに行動するための仕組み
            - ゲームへの復帰、プレイの継続、購入の促進など
- ゲームのアーキテクチャによる違い
    - クライアントメカニクス
    - サーバメカニクス
    - クライアントサーバメカニクス

#### 欠陥の種類

- メカニクスの機能的な欠陥
    - 武器がリロードされない、アイテムが収集されない
    - 機能テストで検知
- ゲームの認識性の欠陥
    - なぜゲームオーバーになったのか理解できない
    - グラフィックステスト、サウンドテストなどで検知
- 特定のゲーム環境で生じるメカニクスの効果の欠陥
    - 特定の敵に対して、想定外に強いスキルを実装した
    - 探索的テスト、アドホックテストで検知

#### テスト手法

- コアメカニクス
    - 機能の正確性やプレイヤーの興味度や魅力度のテスト
    - パフォーマンステスト
    - プロトタイプ開発フェーズ
        - 機能テスト、非機能テスト
- メタメカニクス
    - ゲームプレイの平均時間、平均支払額、他ゲームへの影響の評価
    - ベータ開発フェーズ
        - A/B テストがよく使用される
- クライアントメカニクス
    - ブラックボックステストでアプリケーションの UI を介してテストする
    - 欠陥が生じたとき、プレイヤー自身にのみ影響が与えられる
- サーバメカニクス
    - UI ではなく、サーバコンソールや管理ツールを使用してテストする
    - 重要なテストタイプは機能テスト、パフォーマンステスト、セキュリティテスト
- クライアントサーバメカニクス
    - 異なるメカニクスを同時にテスト可能なテストケースを作成し、テストする
    - E2Eテスト、ゲームサーバにログインし、バトルで敵を倒す
- 開発初期の段階でゲームメカニクスの仕様をレビューすることが大切
    - ゲーム開発プロセスやメカニクスへのプレイヤーの反応の問題を防止することができる
        - 特定のプロジェクトでメカニクスを実装できない
        - バランスの取れていないメカニクスがある

#### テストツール

- ケースバイケースなので一概に言えない

### ゲームの状態

#### 状態テスト

- ゲームの状態: ゲームの特定の瞬間におけるすべてのオブジェクトを構成するパラメータや変数の値
- プレイヤーへの可視パラメータと非可視パラメータがある
- 状態をテストするための重要なポイント
    - ゲームが実際のパラメータの値を使用しているかどうか
        - スキルの効果値と説明文が一致しているか？
- 保存と読み込み
    - チェックポイントによるオートセーブ
    - 固定セーブ
    - オートセーブ
    - 手動または自由なセーブ

#### テスト観点

- プレイヤーは前のゲームセッションで終了したゲームレベルにいるかどうか
- プレイヤブルキャラクターがアーティファクトを持っているかどうか
- ゲームキャラクターの速度パラメータがアーティファクトによって実際に増加しているかどうか

## 3. ****Graphics Testing - グラフィックステスト****

### テスト対象の特徴

- どんなゲームでもプレイヤーがゲームのプロセスを視覚化できるように、多くの異なるグラフィック要素が存在する
- グラフィックオブジェクト作成プロセスでは異なる専門家が特定の機能を担当する
    - アーティスト
    - 3Dモデラー
    - テクスチャアーティスト
    - アニメーションスペシャリスト
    - テクニカルアーティスト
    - テスター
- ゲームの主な領域
    - レベル(ゲームマップ)
    - モデル
    - 2Dグラフィックス
    - 3Dグラフィックス
    - コンピュータ生成画像(CGI)グラフィックス
    - テクスチャ
    - コリジョン
    - アニメーション
    - エフェクト
    - シーンのライティング
    - 歴史の正確性
- 複雑で豊富なグラフィックコンテンツは、ゲームと他のソフトウェアの大きな違いの一つ
- ゲームのグラフィックをテストするためには、テスターは物理学、光学、色のレンダリング技術理解、歴史の知識を持つ必要がある
- グラフィックには、プレイヤーのゲーム認識と体験に直接的な影響を与える欠陥の大部分が集中するため、グラフィックテストは重要なテスト活動である

### 欠陥の種類

- 視覚的な欠陥
    - 画面上のイメージの引き裂き
    - テクスチャの欠如
    - 特定の領域の予期しない切り取り
- テクスチャの欠如
    - テクスチャが正しく適用されていない
    - グラフィックプロセッサの性能不十分や開発上の欠陥
- レベルオブディテール(LoD)
    - カメラから遠い位置では、より低い解像度のモデルを使用することで、レンダリングのパフォーマンスを向上させる
    - システム性能の低さにより、 LoD が正しく機能しない欠陥
- コリジョン
    - ゲーム内オブジェクトが大きさを持ち、他のオブジェクトとの衝突に反応する方法
    - キャラクターが壁や床をすり抜けたりする、などの欠陥
- ヒットボックス
    - キャラクターやゲームオブジェクトがダメージを受けたかどうかを判断する範囲
    - 敵に攻撃したはずなのにダメージが与えられない、などの欠陥
- 歴史的なプロトタイプとの不一致
    - 歴史的なものを取り扱うゲームで表現されるオブジェクトの、歴史的な不正確さ
    - 特定の航空機モデルのプロペラの位置が違う、などの欠陥
- 空中に浮かぶオブジェクト
    - 複数人が同じ場所を作業していた際に引き起こされる、オブジェクトの位置のずれ
    - 以前存在していたオブジェクトが空中に浮いてしまったりする、などの欠陥
- テクスチャ間の目立つ接合部
    - 大きなマップやロケーションの地形で見られる境界
    - テクスチャの接合部の継ぎ目が見えてしまう欠陥
- オブジェクトの破壊
    - オブジェクトを破壊したときの効果は、そのモデル自体に対応している
    - オブジェクトを破壊したときの、破片の飛び方や破片の数がおかしい欠陥
- ライティングの欠陥
    - プレイヤーがゲーム環境を認識しやすくしたり、感情をコントロールしたりするために、ライティングは重要な役割を果たす
    - 全体のライティングの欠陥
    - 点光源の欠陥
    - 探照灯の光源の欠陥
    - 面を持つ光源の欠陥
    - 方向性の光源の欠陥
    - 光を発する光源の欠陥
    - 拡散光源の欠陥
- アニメーションの欠陥
    - オブジェクトのモデルにボーンが多ければ多いほど、よりリアルなアニメーションが作成できる
    - キャラクターの腕や足が伸びたり、一部から切り離されたりする、などの欠陥
- ビジュアルエフェクト(VFX)の失敗
    - キャラクターのアクション、イベント、自然現象に関連する様々な効果
    - ビジュアルエフェクトを発生させるイベントとエフェクトが同期していない欠陥
    - ハードウェアリソース不足により、エフェクトのフレームレートの維持と表示ができない欠陥

### テスト手法

- アートテスト
    - テスト実行環境を用意し、グラフィックデザインを作成するアーティスト自身がレビューする
    - モデルをゲームエンジンに出力する前に品質を向上させることができる
- 技術的なテスト
    - ポリゴンの制限やテクスチャの形式、LoD の切り替え距離などの要件を、テクニカルアーティストとともにテストする
    - グラフィックコンテンツのリソース内の未使用および一時ファイルの検索
    - クライアントリソースに必要なコンテンツが全て存在するかの検索
    - テクスチャ形式のテスト
    - コンテンツのテスト時にクライアントのログを確認
    - テクスチャやモデルの数の制限に準拠するかの確認
- ゲームプレイのテスト
    - ゲームプレイに影響を与える要素を対象としたテスト
    - HP が準拠しているかどうかのテスト
    - 衝突モデルがビジュアルモデルと一致していることのテスト

### テストツール

- テスターは開発者と同じツールを使用して、ほとんどのテストを行う
- ゲーム内コンテンツエディタ
- 自動化ツール(テストスクリプト)
    - 指定されたルートにキャラクターを自動的に進める機能
- ゲームエンジンに組み込まれるツール
    - オブジェクトエディタ
    - ワールドエディタ
    - ライティングエディタ

## 4. Sound Testing - サウンドテスト

### テスト対象の特徴

- サウンドはゲームの認識性を高める重要な要素
    - 適切な雰囲気を作り出し、危険を警告し、キャラクターの感情を伝え、ゲームの世界を補完する
- 低品質、非現実的、不適切または機能しないサウンドはプレイヤーの没入感を損なう可能性がある
- サウンドトラック作成プロセスはタスクを複雑化させる
    - 環境音
    - キャラクターの声
    - バックグラウンドのサウンドトラック
    - 効果音
    - さまざまな音のオブジェクト
    - ボイスファイル
- サウンドの種類
    - 音楽
        - 特別な瞬間の「壮大さ」を強調する
        - イベントのダイナミクスを高める
        - 雰囲気を増加させる
        - キャラクターの感情的な状態を説明する
        - 効果音では、繰り返しのメロディによって、プレイヤーに特定の感情的反応を無意識に形成する
        - 小さなゲームでも、UI 要素に効果音を追加し、プレイヤーにフィードバックを与える
    - キャラクターサウンド(フォーリー)
        - キャラクターの衣服の擦れ、呼吸音、叫び声、足音など
            - サウンドエフェクトのパイオニア、ジャック・フォーリーにちなんで名付けられた
        - キャラクターの状態を判断する重要な要素
    - スピーチ
        - キャラクターボイス
        - キャラクターの感情を正確に伝えることができ、プレイヤーと感情を同期させることができる
    - 環境音
        - 木の葉の音、鳥のさえずり、波の音、酒場の不明瞭な会話など
        - プレイヤーは空間を把握し、ゲームの周囲の世界をより良く理解できる
- 音響効果とテクノロジー
    - ゲームの仮想成果にプレイヤーを没入させるために、サウンドトラックはエディタで処理され、一部の音を誇張したりする
    - 遮音
        - 音量を下げるだけでなく、特別な効果を追加する
    - 残響
        - 音の音量と空間の奥行きを伝えるためにエコーを引き起こす
    - バイノーラル効果
        - 音の出どころを決定するために、音が特定の方向から聞こえるようにする
- サウンドエリア
    - 異なる場所に音の環境を設定する際に利用される
    - サウンドゾーンの変化には遷移や、窓の開けしめなどの行動が必要

### 欠陥の種類

- 間違った音の再生
    - 再生する音が異なる
- 正しい音の再生誤り
    - オーディオドロップ
        - 再生される音の一部が消える
    - スキッピング
        - 音声がスキップされる
    - 歪み
        - パフォーマンスの問題で、一部フレーズが歪んで聞き取りにくくなる
    - 再生遅延
        - ゲーム状況の表示に音声が遅れる
- 欠陥と原因例
    - オブジェクト/環境の音がない
        - 欠陥：金属の表面を歩く際に足音が聞こえない、キャラクターが無音で移動する
        - 原因：開発者がこの表面に音を設定または接続するのを忘れた
    - オブジェクトや周囲の音が大きすぎる/小さすぎる
        - 欠陥：特定の場所でオブジェクトが燃えているが、火の音が大きすぎるか、逆に非常に静かで現実的ではない
        - 原因：効果の音量が間違って設定されている
    - オブジェクトや環境の音が間違って設定されている
        - 欠陥：水上でモーターボートを運転している間、ゲームはレーシングカーの音を再生する
        - 原因：オブジェクトのための誤った音声ファイルがコードに書かれている
    - 音のソースに応じた位置づけが間違っている
        - 欠陥：ゲームには常に剣をハンマーで打つ鍛冶屋がいるが、打撃音が部屋の別の角で再生される
        - 原因：音声エディタで効果音の位置が間違って設定されている
    - 音のカバレッジエリアが誤って設定されている
        - 欠陥：銃声が数メートルの半径内でしか聞こえない。プレイヤーが遠くに移動すると、音が全く聞こえなくなるのは現実的ではない
        - 原因：音の半径が間違って設定されている
    - 音声の歪み
        - 欠陥：プレイヤーは音声がキンキンとヒスノイズを立て始める
        - 原因：破損したオーディオファイルが使用されている
    - 音の連続的な繰り返し
        - 欠陥：音がループして連続的に再生される
        - 原因：音のループが停止するべきポインタが正しく設定されていない
    - 「つまり」再生による音声の歪み
        - 欠陥：ゲームのキャラクターの移動中に、移動の音響デザインの歪みが生じる
        - 原因：音のアセンブリに問題が発生したり、ゲームクライアントの一般的な不安定性による問題が発生する可能性がある
    - オーディオ再生のタイムディレイ
        - 欠陥：カットシーン中、キャラクターが話し始めるが、そのセリフが口の動きが始まるよりも少し遅れて再生される
        - 原因：キャラクターの口のアニメーションが対応する音声ファイルの開始と同期していない可能性がある

### テスト手法

- 形式的なテスト手法
    - すべてのオーディオファイルの存在、正確さ、音量、および整合性のテスト
- 非形式なテスト手法
    - ゲームのリアリズムや雰囲気を評価するテスト
- テスターはサウンドの仕様から、どの位置、どのゲームシーンや状況で音が再生されるべきかを理解する必要がある
- ゲームのリソースエディタを利用して、サウンドとゲームアクションの同期テストを行うことができる
- コンテンツ-音響テスト
    - サウンドエディタやゲームのリソースエディタを使用して、作成されたコンテンツのサウンドを聴き、オーディオパラメータをテストする
        - オブジェクトと設定が適切か？
        - アクターに対する声は適切か？
        - 邪魔にならないか？
        - 音量レベルは正しいか？
        - サウンドエフェクトは適切か？
- 音楽とゲームサウンドのミックスのテスト
    - 高品質で適切に聞こえるサウンドでも、最終的なミキシングが正しく行われていないと、プレイヤーにストレスを与えてしまう
        - すべてのオーディオコンポーネントが調和していることが重要である
    - テスターは完成したサウンドがクライアントに正しく組み込まれているかをリソースエディタや独自の経験に基づいてテストする
- 音楽のコンポジションのテスト
    - コンポジションやミックスは、個別に録音されたトラックから最終的な音楽を作成する段階
        - 1つのプロジェクトに組み合わせ、エフェクトで処理する作業で構成される
    - マスタリングが完了すると、マスタリングされた音楽のテストを行う
        - 欠陥、音の不連続性、干渉をチェックする
- サウンドのテスト
    - サウンドのテストは、開発の後半に始まることが多い
    - サウンドを作成した専門家によって事前にテストされる必要がある
- ゲームへのサウンドの統合
    - テスターは次の特性を評価する
        - サウンドまたは音楽のオンオフ能力
        - 音量変更能力
        - オーディオファイルの形式と、プロジェクト内のフォルダへの正しい分布の遵守
        - ゲームマップ上の音源位置、音の伝播距離ゾーン
        - 統合されたサウンドのシステムパフォーマンス
        - ヘッドフォン、スピーカー、モニタースピーカーなどの異なるオーディオシステムでのサウンドの互換性

### テストツール

- オーディオエディタ
    - テスターは常にオーディオエディタにアクセスできるわけではない
    - 開発チームのテスターもしくは直接作業する専門家によって使用される
- マップ、ロケーションエディタ
    - マップエディタでは、ほとんどの音効果や音源が配置され、調整される
    - テスターはマップエディタで音源の位置を表示することができる
    - エディタを介して、再生される音と音の伝播距離をテストすることができる
        - 伝播距離は球体として表示されるか、音を聞く開始地点を示すゾーンとして表示される

## 5. Game Level Testing - ゲームレベルテスト

### テスト対象の特徴

- ゲームレベルとは、プレイヤーが特定のタスクを完了しなければならない、仮想世界のゲーム内の別のエリアのこと
    - ステージやエリア、とも呼ばれる
- レベルデザインは、ゲームのマップ、ロケーション、タスク、ミッション、およびその他の環境を作成するゲーム開発の段階
- レベルを作成するためには、通常は特別なソフトウェアであるレベルエディタが使用される
- レベル構成要素
    - 構造的ジオメトリ
        - 地形
    - ゲーム環境
        - 家屋、道路、樽、ベンチ、石など
    - ライティング
        - 光源
    - サウンド
        - バックグラウンドのサウンドトラックやイベントに対する効果音
    - ゲームの機能
        - キャラクターや敵の出現ポイント
        - 勝利、敗北条件
        - ゲームの自動保存ポイント
        - 特定のイベントやスクリプトを実行するトリガー

### 欠陥の種類

- ジオメトリ
    - プレイヤーがレベル(マップ)の一部に詰まってしまう状況
- アクセス不能エリア
    - 開発者が意図していないアクセスできない場所へのアクセス
- 複雑なゲームプレイ
    - ゴールの指針が不明確、レベルクリアのためのアクションが不明確
- ゲームバランスのレベル
    - レベルクリア不可能な敵の出現
- 不適切な制限とルール
    - ゲームプレイには影響を与えず、利点も提供しないが、ゲームの受容性と没入感を損なう
        - 腰の高さまでのフェンスでアクセス不能エリアを作成する
- ナラティブ
    - 一般的なストーリーテリングのスタイルやゲームのプロットに違反するレベルの欠陥
        - 受容性や没入感に影響を与える
- オブジェクトの色コーディングの変更
    - オブジェクトの特性と色がゲーム内で統一されていない
    - プレイヤーは異なる特性を持つオブジェクトを色で区別している

### テスト手法

- ゲームレベルのプロトタイプのテスト
    - ゲームの将来のレベルの3Dモデルが仮の状態で作成されている
    - 要件が確定されていないため、探索的テストや他の経験に基づくテスト技術が最も効果的
- ジオメトリのプロトタイプのテスト
    - 仮状態のオブジェクトがアーティストによって作成された3Dモデルに置き換えられる
    - レベル上にアートワークを施した後にゲームプレイを妨げる欠陥がないことをテストする
        - プレイテストでオブジェクトモデルの正確性などをテストする
- 最終バージョンのテスト
    - レベルデザイナーは開発チーム全体のソフトウェアを一体化させ、レベルを完成させる
    - パフォーマンスと互換性のテストを行う
        - オブジェクトの表示品質、ライティングや影のテスト
        - コリジョンチェック

### テストツール

- 3Dエディタやレベルエディタ
    - オブジェクトを視覚的にテストせず、特別なアルゴリズムを使用してテストを簡略化することも可能
    - オブジェクトのテクスチャを非表示にすることで、進行不能箇所や生存可能経路を見つけることも可能

## 6. Game Controllers Testing - ゲームコントローラーテスト

### テスト対象の特徴

- ゲームコントローラは、コンソールやコンピュータゲームで使用される入力デバイス
- ゲームコントローラを使用して、プレーヤーはゲームの要素の移動やアクションを制御する
- 典型的な入力デバイス
    - ゲームパッド、キーボードとマウス、タッチスクリーンなど
- 特殊な入力デバイス
    - ジョイスティック、レーシングゲームパッド、釣り竿コントローラなど

### 欠陥の種類

- ゲーム中にコントローラを切り替える際の置き換えの欠如または完全な欠如
- 欠陥の原因
    - 古いコントローラドライバ
    - コントローラのモデルとアプリケーションの非互換性
    - 個々のデバイスまたはバッチ全体の欠陥
    - ゲームプレイと説明書の不一致
- セキュリティ要件を満たすかどうか
    - ジャイロスコープを使用するゲームでコントローラを振る場合

### テスト手法

- ゲーム機能が使用可能な状態になった時点から開始可能
- 機能テスト
    - アプリケーションのすべての機能が接続されたデバイスと正しく連携することをテストする
    - 切断された場合、アプリケーションが一時停止するかどうかを確認する
- セキュリティテスト
    - コントローラに技術的な脆弱性が存在し、ハッキング可能になっていないかテストする
- エルゴノミクステスト
    - ボタンに確立された目的に沿っているかテストする
        - ｢OK｣に使用されるボタン、｢キャンセル｣に使用されるボタンなど
- コンプライアンステスト
    - UI だけでなく、全体的なユーザエクスペリエンス(UX)をテストする
        - ボタンの目的がゲームジャンルの標準と一致しているかどうか
        - デバイスによってゲームプレイに差が生じないかどうか

### テストツール

- ビデオ録画とコントローラの図式表現
    - ゲーム上にコントローラの図式表現とコマンドを表示し、欠陥を発見、分析するためにコントローラの動きを理解しやすくする
- 振動のパフォーマンステストを行うためのツール

## 7. Localization Testing - ローカライゼーションテスト

### テスト対象の特徴

- 国際化
    - 特定の地域への適応のリスクと困難を回避するために、使用されるプロセス
    - ほぼどこでも製品を使用できるように適応すること
    - 開発段階で行われる一連の活動であり、ソフトウェアの翻訳とローカライゼーションを容易にするためのもの
    - 言語学者や翻訳者の関与なしでソフトウェア開発者の責任で行われる
- ローカライゼーション
    - 特定の地域での使用に変更を加えること
    - 専門の翻訳者の責任で行われる
- 国際化に必要な要素
    - ソフトウェアの作成と開発を行い、ローカライゼーションと国際的な使用に障壁がないようにすること
        - Unicode の使用や文字エンコーディングのアプローチ（必要な場合）を提供する
    - ローカライゼーションプロセスの前に使用できなかった要素を使用するための機能の作成
        - たとえば、DTD（Document Type Definition）マークアップ言語に対して双方向テキストのフレームワークを追加すること
    - 地域的、言語的、文化的な参照をサポートする能力
        - 日付と時刻の書式、地域のカレンダー、数字の書式や数字システム（ローマ数字やアラビア数字）、選択および表示リストの使用、個人名および連絡先フォームの使用など
    - コードやコンテンツからローカライズされた要素を抽出し、後でダウンロードしたり、ユーザーの設定に基づいて選択したりできるようにすること
        - ロード可能な言語パックの形式で実装される
- ローカライゼーションに必要な要素
    - ゲームの対話や字幕、ツールチップ、説明やメッセージ、キャラクターの名前、オブジェクトの名前の翻訳
    - スクリーンセーバー、インターフェース、メニューアイテムの翻訳
    - テクスチャやグラフィックの再描画
    - 俳優の選定、吹き替えや音声ファイルの録音
    - ローカライズされた素材のゲームへの統合
    - プロジェクトのウェブサイトや印刷物の翻訳と適応
    - 広告資料（ニュース、プレスリリース、マーケティング資料）の翻訳
    - ローカライズされたバージョンのリリース後のゲームのサポート（アップデート、ニュース、パッチ）
- ゲーム製品とアプリケーションソフトウェアのローカライゼーションの違い
    - ローカライゼーションの過程で考慮するコンテンツの物量
        - グラフィックコンテンツのターゲットオーディエンスへの適応
            - 看板、キャラクター、ゲームオブジェクト、レベルマップ、シンボルや小道具、ゲームアイテム、広告のスクリーンセーバーなど
        - オーディオコンテンツのローカライゼーション
            - ターゲットオーディエンスの言語で声優によって重ねられ、その内容自体も適応される必要がある
        - テキストコンテンツのローカライゼーションと適応
            - 科学的スタイル（メカニズムの説明、指示書）
            - ジャーナリスティックスタイル（新聞、雑誌、記事）
            - アートスタイル（個人の日記、本）
            - 公式ビジネス（書類、各種文書）
            - 口語の日常会話（キャラクターの対話）
        - ジャンルと文学的特徴への準拠
            - プレイヤーの種族の名前やオブジェクトの名前など、ジャンルで受け入れられている用語を考慮して翻訳する必要がある

### 欠陥の種類

- 技術的な側面
    - 文字化け
    - 文字列がインターフェースの文字数限界を超える
    - オフセット
    - ローカライズされた言語への翻訳がない
    - オーバーラップ
    - テキストの欠落
    - 間違ったフォントやサイズ
    - 誤ったホットキー
    - テキストテンプレート内の変数
    - オリジナルと翻訳の音のシーケンスの同期が取れていない(リップシンクなど)
- 翻訳の欠陥
    - 正しく翻訳されていない
    - 矛盾する用語がある
- コンテンツの文化的適応
    - ユーモア
    - 宗教
    - 歴史の正確性と出来事の認識
    - 国の文化と世界観の特異性
    - 法的制約
    - 過剰なローカライゼーション

### テスト手法

- ローカライゼーションのテスト目標
    - ゲームが多言語インターフェースと機能をサポートし、ローカライゼーションの問題（他の言語への翻訳、日付と数字の書式、郵送先の住所、名前の順序、通貨など）がないことを確認すること
- ローカライゼーションのテストは、ゲーム製品が特定のターゲットオーディエンスに適応されているか、文化的、言語的、宗教的、政治的な特徴や参照に従っているかを評価するテスト
    - ローカライゼーションテストと言語テストとは異なる
- 翻訳テスト
    - ゲームの多言語対応インターフェースを翻訳の欠陥、郵便住所の正確さ、名前の正確さ、通貨、日付と時刻の形式などをテストする
        - テスターは常に特定の国で採用されているシステムを認識し、速度、長さ、重さ、温度などを明確にユーザーに伝えるために覚えておく必要がある
- コンプライアンステスト
    - ゲームやアプリケーションの年齢制限システムは、各国の法律や文化の特異性を考慮している
    - 異なる地域でサポートされている法的要件を考慮する必要がある
- 色とシンボルのテスト
    - 特定の色やシンボルは、国によって異なる意味を持つ場合があるため、テストする必要がある
- フルローカライゼーションテスト
    - ローカライゼーションの欠陥に対して、徹底的にテストを行う
    - クライアントに新しいローカライゼーションを開発する場合にのみ効果的
- 部分ローカライゼーションテスト
    - 以前にテストされたローカライゼーション内でテキストが変更された場合に行う
    - 効率を達成しながらコストを最小限に抑える点で最適
- ローカリぜーションテストの予備段階
    - ローカライズされたゲームビルドで以下をテストする
        - 選択した地域の日付と時刻の形式
        - 電話番号と住所の形式
        - カラースキーム
        - 地域基準に合致する製品名
        - 通貨の形式
        - 単位言語テスト
    - 言語の特徴をテストする
        - 同じ用語が使用されていること
        - 文法上の欠陥がないこと
        - 綴りの欠陥がないこと
        - 句読点の規則に従っていること
        - 正しいテキストの方向が使用されていること（右から左または左から右）
        - ブランド、都市、場所、ポジションなどの正しい名前が設定されていることユーザーインターフェース（または外観）
    - その他の観点をテストする
        - 画像のキャプションはすべてローカライズされていること
        - ローカライズ版のレイアウトが元のものと同じであること
        - ページ/画面の改行が対象言語のルールに従って配置されていること
        - 会話、ポップアップ、通知が正しく表示されること
        - 行の長さが既存の制限を超えず、テキストが正しく表示されること
- 機能テスト
    - ローカライズ製品の機能
    - 情報の入力機能
    - 異なるロケールや言語の特殊文字のサポート
    - キーボードショートカットのサポート
    - 様々なフォントのサポート
    - 様々な形式の区切り記号のサポート
- テストするためのローカライゼーションのタイプ
    - "Box" のローカライゼーション
        - パッケージに書かれる内容のローカライズや、ストアページの説明やスクリーンショットのローカライズ
    - インターフェースのローカライゼーション
        - ゲーム内の説明、インターフェース、ヘルプページ、ボタンのラベルなどが翻訳
    - テキストのローカライゼーション
        - ゲーム内の全てのテキスト(字幕に至るまで)の翻訳
    - ボイスアクティングによるローカライゼーション
        - 俳優によって吹き替えられる音声と対話
    - グラフィックのローカライゼーション
        - デザイン、グラフィックオブジェクト、テクスチャなどに書かれた文字の翻訳
    - 深いローカライゼーション - 文化的適応
        - 文化的適応のためにゲームが完全に作り直され、ソースコードとメカニクスだけが残る

### テストツール

- ビジュアル文字列比較ツール
    - 参照と対象のローカライゼーションの文字列を比較するのに使用される
- 自動文字列比較ツール
    - テストされたローカライゼーションにおけるあらゆる種類の欠陥の存在に関するデータを取得するための補助スクリプト、プログラム、ユーティリティなどが含まれる
- ローカライゼーションファイルの構造をテストするためのツール
    - 不足しているか冗長なファイルを検出します。
- ローカライゼーションのテストに使用される自動化ツール
    - スクリーンショットを2つのローカライゼーションで比較し、重大な不一致がある場合に失敗を生成するツール
    - 変更の有無を参照の変更の有無に基づいて判断するツール
    - 参照と対象のローカライゼーションの各ペアの文字列内の変数と数値を比較するツール

# まとめ

この記事では、ISTQB® Certified Tester Game Testing v1.0.1（CT-GaMe）を翻訳し、そのサマリーをまとめました。また、シラバスに書いてあることや書いていないこと、得られた学びについてもまとめました。この記事によって ISTQB® や JSTQB に興味を持ってもらえる方が増えると嬉しいです。
それでは、良いクリスマスを！

# 出典

- [ISTQB® Certified Tester Game Testing v1.0.1（CT-GaMe）](https://www.istqb.org/certifications/game-testing)