DEBUG ROOM
最初に
ゲームQA
グラフィック
サウンド
テキスト
フィールド
ネガティブテスト
チェックリスト
バグレポート
モニタリング
失敗の兆候
LINK
TOPへ戻る
ネガティブテスト
🧩 異常値入力
「禁止/想定外の文字列」を入力したときの挙動
禁止ワード
禁止ワードを入力する
┗ 誹謗・中傷
┗ 猥褻表現
┗ 電話番号・住所などの個人情報
⇒ 不適切な言葉がゲーム内に表示される
セキュリティリスク
SQL文やスクリプトを入力する
┗ select * from users;
┗ <script>alert('xss')</script>
⇒ データベースや画面への攻撃が成功し、ユーザーデータ漏洩や破壊が発生する
文字数制限
文字数制限を超えて入力する
┗ 長文コピー&ペースト
┗ 改行を大量挿入
⇒ 表示枠から文字があふれてUIが崩れる
⇒ 入力処理が重くなりフリーズする
⇒ サーバー保存時にエラーが発生する
絵文字や特殊文字
絵文字や特殊文字を入力する
┗ 🍎😊💲🌊 など未対応フォント文字
⇒ フォント未対応で文字化けが発生する
⇒ サーバー側で処理エラーが発生する
空欄(null)送信
空欄(null)を送信する
┗ 名前欄を空にする
┗ 必須項目をスペースや改行だけで入力
⇒ 必須項目が空欄のまま登録される
不正フォーマット
不正フォーマットの値を入力する
┗ Mail:aaa@@bbb.com
┗ 電話番号:abc-1234-5678
⇒ 入力値変換時に例外が発生し、処理が失敗する
重複登録
ユニーク制約がかかる入力フォームで重複情報を登録
┗ 既存ユーザーと同じ名前を入力する
⇒ 重複登録できてしまい、データの整合性エラーが発生する
🧩 数値の異常/上限・下限処理
数値処理の限界や想定外の桁数を試す
桁数のオーバーフロー
桁数が表示や処理の限界を超えるまで増やす
┗ 経験値を過剰に増やす
┗ 所持金を過剰に増やす
⇒ 表示スペースから数値がはみ出す
⇒ 計算処理がオーバーフローして異常値になる
カウンターストップ(上限)
上限を超えて更に数値を加算する
┗ 最大値から更に通貨や経験値を獲得する
┗ バフやアイテムを組み合わせてステータス上限を突破する
┗ 最大所持数以上にアイテムを購入する
⇒ 数値や所持数が不正な状態になる
⇒ 表示や演算でエラーが発生する
カウンターストップ(下限)
下限を超えて更に数値を減算する
┗ 所持金不足の状態で購入処理を行う
┗ デバフやアイテムを組み合わせてステータス下限を突破する
⇒ 負の値や不正な数値状態になる
⇒ 計算処理や進行条件が崩れる
時間制限
時間制限の上下限を超える
┗ 残り時間を負数にする
┗ 残り時間を延長し続ける
⇒ イベントが進まなくなる
⇒ 残り時間が実質無限になる
数値の切り捨て
計算上の数値(小数点以下)の切り捨てを発生させる
┗ 経験値計算で端数を切り捨て
┗ ダメージ計算で端数を切り捨て
⇒ 合計値が合わなくなる
⇒ 最小でも「1」になるはずが切り捨てられて「0」になる
🧩 処理を重ねる
複数の処理を同時または連続で実行したときの挙動
ボタン連打
購入や決定ボタンを連打する
⇒ 処理が二重実行される
⇒ アイテムの多重取得
⇒ 重複支払いが発生
ずらし押し
複数のボタンを少しずらして選択する
┗ YES/NOボタンを素早く続けて押す
┗ 複数の選択ボタンを素早く続けて押す
⇒ 複数の処理が同時に実行される
⇒ 矛盾した動作が同時に実行される
イベント重複開始
下記イベント開始条件を複数同時に満たす
┗ 爆風が当たると開始
┗ 遠距離攻撃が当たると開始
┗ 定刻になると開始
⇒ 複数イベントが同時に開始して演出や進行が破綻する
イベントシーン中に戦闘不能
イベントシーン中に戦闘不能になる
⇒ 戦闘不能のままイベントが進行する
⇒ ゲームオーバー演出とイベント演出が干渉する
戦闘不能状態でイベント開始
下記と同時にイベント開始エリアに入る
┗ 状態異常ダメージで戦闘不能
┗ 攻撃で吹き飛ばされながら戦闘不能
┗ 高所からの落下ダメージで戦闘不能
⇒ 戦闘不能のままイベントが開始される
条件達成直後に戦闘不能
条件達成直後に戦闘不能になる
┗ ステージのゴール直後に奈落に落ちる
┗ ミッション達成直後に戦闘不能
⇒ 条件を達成しているのに報酬がもらえない(再度挑戦も不可)
条件達成直後に画面切り替え
クリア条件達成直後に画面を切り替える
┗ クリア直後に別のステージにジャンプ
┗ クリア直後に隣のエリアに移動
⇒ 条件を達成しているのに報酬がもらえない(再度挑戦も不可)
戦闘不能後の想定外回復
戦闘不能後にHPを回復する
┗ 仲間のフォローでHP回復
┗ アイテムを使ってHP回復
┗ 戦闘不能後のレベルアップで自動回復
⇒ HPが回復して復活しているのにゲームオーバー演出が進む
🧩 矛盾を突く
矛盾する状態を意図的に作る
矛盾
相反するものを同時に成立させる
┗ 命中率100%と回避率100%の組み合わせ
⇒ 命中率100%の攻撃が相手に当たらない
⇒ 回避率100%の相手に攻撃が当たる
条件無視
小人限定エリアで通常サイズになる
┗ 小人で入ってから通常サイズに戻す
┗ 戦闘不能からの復活で小人状態解除
┗ セーブ&ロードで小人状態解除
⇒ 小人限定という前提条件が崩れてしまう
無敵状態なのに戦闘不能
無敵状態でダメージを受けて戦闘不能になる
┗ 毒などの状態異常を受ける
┗ 落下や地形ダメージを受ける
⇒ 無敵の効果が無視されて戦闘不能になる
安全地帯で戦闘不能
安全地帯でダメージを受けて戦闘不能になる
┗ 毒や自爆アイテムでダメージ
┗ 遠距離攻撃が安全地帯に届いてダメージ
┗ オブジェクトに挟まれてダメージ
⇒ 非戦闘エリアで戦闘不能になる
⇒ ボーナスステージで戦闘不能になる
捨てられないアイテムを消失
捨てられないアイテムを消失させる
┗ 店で売却
┗ ゴミ箱に入れて削除
┗ NPCや他メンバーに譲渡
┗ 離脱メンバーに持たせて消失
┗ 合成素材に使用
┗ 戦闘不能やデスペナルティで落とす
⇒ クリアに必須のアイテムを失い、進行不能になる
排他的な状態の共存
排他的な状態を同時に適用する
┗ 浮遊中に落下ダメージを受ける
┗ 毒の継続ダメージとHP継続回復が同時に発動
⇒ 効果が競合して挙動が不自然になる
ストーリー矛盾
イベントの順序を入れ替えてストーリーの整合性が取れなくなる
┗ 死亡済キャラが別のイベントに登場する
┗ 未発生イベントのセリフを先に話す
⇒ イベント順序や物語の一貫性が失われる
🧩 異常な操作
通常の設計で想定していない行動をする
何もない場所をタッチ
何もない場所をタッチ/スワイプする
⇒ 存在しないはずのオブジェクトが反応する
⇒ UIやシーン遷移が誤作動する
対象不在でスキル/アイテム使用
対象不在でスキル/アイテムを使用する
┗ 対象がいない状態で回復魔法を使用
┗ 敵がいない状態で攻撃スキルを発動
⇒ 対象不在なのに使用できてしまう
⇒ エフェクトや演出が不自然になる
用途に合わないアイテム使用
用途に合わないタイミングで重要アイテムを使用する
┗ イベント進行に関係ない場面でシナリオ必須アイテムを使用
⇒ 重要アイテムが消失する
⇒ イベントが不自然に進行する
利敵行為
利敵行為を行う
┗ 回復アイテムで敵を回復する
┗ 味方を攻撃する
⇒ 挙動やバランスが不自然になる
⇒ 戦闘の進行が想定外になる
オブジェクトを積む
オブジェクトを積み重ねる
┗ キャラクターの上に別キャラを乗せる
┗ 車などの移動オブジェクト上に別オブジェクトを乗せる
⇒ 落下モーションの繰り返し(挙動異常)
⇒ 本来到達できない位置に侵入できる
特殊な体勢で戦闘不能
特殊な体勢で戦闘不能になる
┗ ハシゴを登っている最中に戦闘不能
┗ 乗り物に乗った状態で戦闘不能
⇒ 空中で倒れる演出が発生し、表示や判定が不自然になる
必須アイテムの不所持
進行に必須のアイテムを所持していない状態でイベントを進める
┗ 斧を倉庫に預けた状態で、イベントの強制移動により「斧がないと進行できないエリア」へ移動する
⇒ 必須アイテムがないため進行不可になる
座標異常
キャラの座標を異常な位置に移動させる
┗ ジャンプやノックバックで画面外にキャラが飛び出す
┗ 敵を画面外に押し出す
⇒ 元の位置に戻れなくなる
⇒ 画面外にいる敵を倒せないためクリアができなくなる
時間演出と進行の同期ズレ
特殊な演出の時間軸と、ゲーム全体の進行速度が噛み合わない状態を作る
┗ スロー状態でイベント開始
┗ 加速状態でイベント開始
⇒ イベント中に自分だけがスローで動く
⇒ イベント中に自分だけが加速状態で動く
🧩 特殊な状態のセーブ/ロード
セーブ/ロード時の状態の保持とその影響
バフ状態保存
バフ状態でセーブする
┗ 攻撃力アップ中
┗ 無敵状態中
⇒ 再開後も効果が継続してしまう
⇒ 逆に効果が即解除される
デバフ状態保存
デバフ状態でセーブする
┗ 毒
┗ 鈍足
⇒ 再開後も効果が継続してしまう
⇒ 逆に効果が即解除される
状態変化保存
特殊状態でセーブする
┗ 小人化状態
┗ 動物化状態
⇒ 再開後に見た目は戻っているが当たり判定だけ変身状態のままになる
乗り物に乗った状態で保存
乗り物に乗った状態でセーブする
┗ 車
┗ 動物
⇒ 再開後に乗り物の中で立った状態になる
⇒ 再開後に乗り物がなくなる
イベント中保存
イベント再生中にセーブする
⇒ 再開後に演出が二重再生される
⇒ 演出が再生されずにフラグだけ進行する
処理中保存
動作や演出の途中でセーブする
┗ ジャンプアクション中
┗ スキル演出中
┗ 戦闘不能演出中
⇒ 再開時にキャラクター位置がずれる
⇒ 操作不能になる
ステージの途中保存
ステージやフェーズ途中でセーブする
┗ ボス戦中
┗ ボーナスステージ中
⇒ 再開後に敵AIが動かない
⇒ 演出が止まったままになる
通信不安定時のセーブ
通信不安定時にセーブする
⇒ フラグやデータが不完全なまま保存され、再開後に整合性が崩れる
🧩 通信切断を利用した不正・異常
同期処理での切断や遅延を意図的に発生させる
読み込み中に通信切断
読み込み中に通信切断する
┗ ステージロード中にネットワーク切断
⇒ 再接続できなくなる
⇒ データ破損が発生する
購入直後に切断
購入直後に通信切断する
┗ アイテム購入確定直後に切断
┗ ガチャ実行直後に切断
⇒ 通貨が減らずにアイテムだけ取得できる
⇒ データの整合性が崩れる
同期処理の直前/直後に切断
同期処理の直前/直後に切断する
┗ アイテム取得直後に切断
┗ クエスト完了直後に切断
⇒ アイテムや報酬だけ反映され、消費や条件更新がされない
⇒ データが巻き戻る
負け確定の瞬間に切断
負けが確定した瞬間に通信切断する
┗ マルチ対戦で敗北演出が出るタイミングで切断
⇒ 勝率やレートが下がるのを回避できる
⇒ 対戦記録が正しく保存されない
マッチング確定後に切断する
マッチング確定後に切断する
┗ 対戦相手やレイドメンバーが確定した直後に切断
⇒ マッチング相手も巻き込んでチームが解散する
⇒ マッチング制限回数の残数が減らない
通信遅延ツール
通信遅延ツールや環境を利用する
┗ ネットワークエミュレータで意図的に遅延やパケットロスを発生させる
⇒ 一部の同期処理だけ行われて結果の不整合が生じる
⇒ 同期ズレを利用した不正(位置ワープ、攻撃無効化など)が可能になる
🧩 システム時刻の操作
デバイスの時間を操作して内部処理に干渉する
開始条件の前倒し
デバイスの時間を進める
┗ 開始前イベントをプレイ可能にする
┗ 1日1回のログイン報酬を複数回取得する
⇒ 待ち時間や日時制限を回避し、進行バランスが崩れる
⇒ 課金や時間制の設計意図が失われる
終了条件の即時化
デバイスの時間を進める
┗ スキルのクールタイムを即解除する
┗ 建築や製造にかかる時間を即時完了する
┗ 待機時間のある動画広告を連続視聴する
┗ 行動ポイントの時間回復を一気に進める
⇒ 制限付きアクションを連続実行できる
⇒ ゲーム進行やゲームバランスが崩れる
時間の巻き戻し
デバイスの時間を戻す
┗ バフの効果時間を延長する
┗ 期限付きアイテムの寿命を延ばす
┗ 日替わり課金アイテムを何度も購入する
⇒ 本来の期限や制限が無意味になる
⇒ アイテムや効果を無制限に利用できる
タイムゾーン変更
タイムゾーン変更による制限回避
┗ 日付リセットや更新判定をずらす
┗ 日替わりコンテンツを複数回取得する
⇒ デイリー制限や時間依存イベントが意図せず複数回実行可能になる