デバッグの求人募集をよく見かけるものの、具体的にどんな仕事なのか分からない方も多いのではないでしょうか。この記事ではデバッグとはどんなものか、よく混同されるテストとの違いを含めて分かりやすく解説します。

デバッグとテストの違いは?

まず、本来の言葉の意味の違いから解説します。

デバッグとは本来、「バグを検出→解析→修正」といった一連の行動のことを指します。デバッグを担当するのはプログラマーや専門のデバッガーです。

次にテストとは、不具合(バグ)から発生する故障を発見することを指します。ここで言う故障とは、「システムに要求された機能を実行できないこと」という意味合いです。テストはデバッグと異なり、バグの修正は含まれません。テストを計画し、実行するのは、一般的に専門のテストマネージャーやテスターです。

両者の違いを表にまとめてみると、以下のようになります。

 デバッグテスト
仕様通りに動作するかの確認×
不具合(バグ)の検出
原因の特定×
不具合(バグ)の修正×
不具合(バグ)修正後のチェック
実行者プログラマー
デバッカー
テスター

ゲーム業界における「デバッグ」と「テスト」

しかしゲーム業界に限っては、開発中のゲームを「テスト」することを「デバッグ」と呼ぶ慣習があります。つまり、ゲーム業界におけるデバッグでは、バグの修正は含まれません。バグを修正するのは、あくまで開発者です。IT業界などが、これらの言葉を使うときとその意味が異なっていますので、注意してください。

ただし、ゲーム業界におけるデバッグ(ゲームデバッグ)と、テスト(ソフトウェアテスト)には、作業内容や目的の違いがあります。古くから行われてきたのはデバッグのほうですが、最近ではソフトウェアテストの手法を取り入れる会社も多くなっています。では、ゲーム業界におけるデバッグとテストの違いをご説明します。

作業内容の違い

まずゲーム業界におけるデバッグとは、ゲームに長けた担当者がプレイヤーの視点に立って実際にプレイし、その中でゲームを評価したりバグを発見したりする一連の行為を指します。ゲームの評価とは具体的にいうと、そのゲームが面白いか否か、操作方法や仕様が分かりやすいか否か、プレイヤーが迷うことはないかといった判断をすることです。

一方でゲーム業界におけるテストでは、まずはそれぞれの機能に対して、どういう観点でテストをするのか、どういう条件・パターンでテストをするのか、という設計をし、テスト項目を作成します。そして、その項目を実行し、結果をまとめるまでがテストです。

デバッグは、デバッグをする人のスキルや経験にゆだねられるところがあり、属人的・場当たり的であるのに対し、テストは非属人的、論理的であるという特徴があります。

ただし、実際にプレイヤーの視点に立つことで見えてくることもあるため、デバッグにはテストにはないメリットもあります。

ゴール(目的)の違い

ゲーム業界におけるデバッグ・テストは、いずれもバグを発見するという共通の目的があるものの、そのゴール(目的)にも大きな違いがあります。

まずデバッグの目的は、できるだけ多くのバグを発見することです。プレイヤーが実際にゲームを進めていくのと同じ経路のなかで、バグなくプレイできるようになることを目指します。ただし、品質や、全てのバグを発見する保証はできません。

対してテストの目的は、大きく4つあります。

1:バグを見つけること

2:テスト対象(ゲームやシステム)の品質状態を確認すること

3:テストから得られた様々な情報を収集・集計・分析をして、顧客に提供すること

4:バグの作りこみを防ぐこと(生み出さないようにすること)

このように、単にバグを発見するにとどまらず、様々な目的を持って行われます。

ゲーム業界でのテストでは、テストの結果が正しく出るところまでを保証します。逆に言えば、テスト項目として挙がっていない内容については保証に含みません。

デバッグとテストの違いをゲームで解説

ゲーム業界におけるデバッグとテストの違いを、RPG系のゲームを例にとって考えてみましょう。

このときデバッグとはプレイヤーと同様に1からストーリーをすすめ、操作の分かりやすさや面白さを評価しながら、バグをできるだけ多く検出していく作業をさします。デバッグでは「ここを重点的に確認してほしい」といった指示を上長から受ける可能性はあるものの、基本的には主体的に作業をすすめることが必要です。

プレイヤー視点で作業を実施するデバッグにおいて、担当者は全てのバグを検出することまでは求められません。「どれだけバグを検出できるか」「ゲーム開発に役立つ評価をどのくらいできるか」は、担当者個々の能力に左右されます。

一方テストではプレイヤー視点でストーリーを進めるのではなく、確認すべきシーンごとに作業を実施します。たとえば「設計した通りダンジョンを進めるか」「敵と戦えるか」などを、あらかじめ策定したテスト項目に従って確認してくわけです。デバッグのように主体的に作業をすすめるというより、忠実かつ正確にテスト項目を実行することが求められます。

テストを実行する担当者は、ゲームが面白いか等を評価するデバッグ担当者のように主観は求められません。その反面、科学者のように客観的に作業を進めていく必要があります。

まとめ

本来「デバッグ」とは、バグの原因を解析し修正する行為を指します。たいして「テスト」とはプログラムのバグによって生じた故障を発見することです。

ゲーム業界においては、開発中のゲームをテストすることをデバッグと呼ぶ慣習があるので注意しましょう。代わりにゲーム業界におけるデバッグで行うのは、故障の発見までであり、バグの修正までは含まれません。バグの修正は、ゲームの開発者が行います。また、ゲーム業界におけるデバッグは、デバッグをする人のスキルや経験にゆだねられるところがあり、属人的・場当たり的な側面があります。

対してゲーム業界における「テスト」とは、あらかじめ策定したテスト項目に従い、開発中のゲームが仕様通りに動作するかチェックしていく作業を指します。テストした範囲においてバグを検出し、品質を保証することが、テストの目的です。

monoAI technologyではデバッグとテストの違いを明確にした上で、それぞれの手法の良い部分をとりいれて、テストを実行しております。