最終更新日: 2024年3月4日

超少子高齢化社会が進み、ゲーム業界においても人材不足が深刻となっている中、ゲームテストの効率化・生産性向上を実現できる自動テストが注目されています。昨今では、自動テストを一歩進めるAI活用への期待も高まっている状況です。

この記事では、そもそもAIとは何かを振り返ったうえで、ゲームテストにおけるAI活用の現状やAIを活用したテストツールをご紹介します。

そもそも、AI (人工知能)とは?


そもそもAIの定義について、従来からあるコンピュータと比較しながら振り返ってみましょう。

まずコンピュータは、与えられた指示に従い情報の処理や記録、計算を行う電子デバイスです。コンピュータはプログラムによって制御され、事前に定義された手順に従い様々なタスクを実行します。コンピュータの主な役割はデータの処理・計算・記憶・出力です。

一方、AIとは、人間の知性あるいは知見による活動を人工的に再現するためのコンピュータプログラムやシステムを指します。AIの目的はデータの学習・認識や、言語処理・問題解決といった知的な活動を「人間のように」実行することです。

AIはコンピュータ上で動作し、「言語や画像を認識する」「絵を描く」「問題を解決する」といった、人間が行う多様な知的活動を再現します。機械学習や自然言語処理などの技術を用いて経験・学習を積み重ね、様々なタスクへ柔軟に適応します。

つまり、コンピュータが決められた手順に基づいて計算やデータ処理をおこなうのに対し、AIは人間のように学習し、自ら解決の糸口を見出します。また、AIはコンピュータ上で再現されるものであるのに対し、コンピュータ自体はAIの活動に必要な基盤となるプラットフォームです。

AIにはどのような作業ができるか

ゲームテストにおいてAIがどのように活用されているかを解説する前に、まずはAIにどのような作業が実行可能かをみていきましょう。

AIは以下4つのタイプに分類されます。

【機能別の分類】
識別系AI(見る力):画像認識AI・音声認識AI・動画認識AIなど
予測系AI(予測する力):需要予測AI・異常検出AIなど
会話系AI(話す力):チャットAI・翻訳AIなど
実行系AI(実行する力):自動運転・ドローンAIなど

さらにこの4つは、それぞれ以下2種類に分けられます。

【代行/拡張】
人間代行型:人間ができることを、人間に代わってAIがおこなうタイプ
人間拡張型:人間ができないことをAIがおこなうタイプ

これらを組み合わせて、AIの活用例は以下のようにまとめられます。

識別系AI予測系AI会話系AI実行系AI
人間代行型大量の情報を自動で識別

【例】
24h体制でNG画像やワードを検閲/ SNSの文章からネガポジ分類 / 類似画像判断

大量のログから異常値を検出

【例】
異常値検知 /操作ログから不正検知

24時間体制で対話コミュニケーションを実施

【例】
チャットボット/AI音声

人間がおこなう業務全般の代行

【例】
ゲームキャラクターの自動操作 / 自動運転/工場作業の代行/データ入力の代行

人間拡張型人間では見分けられない事象の発見

【例】
医療画像の診断/動画からの情報自動抽出

ビッグデータを使った高精度な分析

【例】
顧客行動予測/需要予測

多言語・機械語での対話

【例】
多言語コミュニケーション/機械同士の対話

自立型機器の作動制御

【例】
ドローンAI制御/自立型機械制御

自動テストとAIテストの違い

自動テストとは、自動テスト実行を指すことが多く、それは、テスターの代わりに自動でテストを実行する手法です。一般的には事前に作成されたテストスクリプトやツールを使用して、自動的にソフトウェアの挙動を確認したり、予期せぬ変更から生じるバグを検出したりします。

主にソフトウェア開発の現場で自動テストは活用され、ユニットテスト、結合テスト、システムテスト、回帰テストなどで自動テストの手法を用います。自動テスト用のツールやフレームワークとしては、Selenium・JUnit・pytestなどがよく用いられます。

また、AIテストは、AIの技術を活用してテスト設計・実行・結果分析の一部または全部を行う手法を指します。一般的な自動テストとの大きな違いは、人が介在しない部分がテスト実行・結果分析だけでなく、テスト設計にまで及ぶ点です。AIテストでは機械学習や自然言語処理などの技術により、テスト設計や複雑なテスト実行、結果分析が可能になります。

AIテストの適用範囲は、ソフトウェアテストだけではなく、機械学習モデルのテストやセキュリティテスト、非機能要件の評価なども含まれ、その適用領域は広範囲に及びます。

AIテストの手法

AIテストの手法には、どのような種類があるでしょうか。ここではよく知られる手法をいくつかピックアップしてご紹介します。

機械学習を活用したAIテストの手法

機械学習とは、コンピュータが経験から学習し、データに基づいて自動的に改善する能力を持つ技術です。機械学習モデルは大量のデータを分析し、そのデータ内のパターンや規則性を見つけ出し、新しいデータに対して予測や決定を行うことができます。この手法を応用すると、たとえば以下のことが実現できます。

・テスト対象のソフトウェアが変更された場合にテストケースを自動生成したり、修正したりする
・テスト対象となるソフトウェアのリスクを分析し、テストケースの優先度やカバレッジを提案する
・テスト対象のソフトウェア品質やパフォーマンスを予測し、テスト結果を可視化する

ちなみに機械学習は、以下の3つに分けられます。
・教師あり学習(ラベル付けされたデータを使用し、特定の出力を予測)
・教師なし学習(ラベルのないデータを使用し、データ内のパターンや構造を見つけ出す)
・強化学習(環境との相互作用を通じて、特定の目標を達成するための最適な行動を学習する)

このうち、教師あり学習モデルを利用し、コードレビューの自動化を実現する試みのひとつが、AWSのサービス「Amazon CodeGuru」です。本サービスではAmazon社内のプロジェクトやGitHub上のコードレビューに基づく機械学習(教師あり学習モデル)を利用して対象のソースコードを解析し、問題や、パフォーマンス低下の原因となりそうな部分を見つけ出します。

自然言語処理を活用したAIテストの手法

ChatGPTなどでお馴染みの自然言語処理(Natural Language Processing、NLP)は、コンピュータがテキストや音声データを読み、理解し、それに基づいて適切な反応を生成する能力を持つ技術です。自然言語処理は、言語の構造、意味、文脈を分析し、人間とコンピュータ間のより自然で効果的なコミュニケーションの実現を目指しています。
ソフトウェアテストやゲームテストにおいては、テストケースや仕様書、要件を理解・処理するために使われます。本機能によって、人間の言葉で書かれたテストシナリオを自動テスト用のスクリプトに変換することも実現しています。

ニューラルファジングを活用したAIテストの手法

ファジングとは、ソフトウェアに対し予測不可能な入力データ(fuzz)を与え、不具合の発生を確認する手法です。ニューラルファジングでは、機械学習やディープニューラルネットワークを利用し、ファジング技術を強化しています。

ゲームテストにおけるAIの活用状況は、まだ限定的

結論から言うと、現時点で、AIのゲームテストへの活用はまだ限られています。ゲームテストを含むソフトウェアテスト全体の視点で見ても、AIが活用されている範囲はテストの要求分析や詳細設計などの一部にとどまっています。ソフトウェアテスト全体として、広くAIが活用されているといった状況ではありません。

ゲームテストにおいては、ソフトウェアテストと比べてもAIの活用はさらに限定的な状況です。ゲームテストには非常に多くのテストタイプが存在しますが、その中でAIが活用されている例は一部に過ぎません。さらにその精度に関しても、実際の使用に耐え得るレベルに達していないケースが多いのです。

いずれにしろ、ゲームテストにAIを活用しようとする動きが広がりつつあることも事実です。ゲームテストにおけるAIの活用は発展途上といえるでしょう。

ゲームテストにおけるAI活用の現状については、以下の記事で具体的な活用例も含めて詳しくご紹介しています。

【QA Tech Nightレポート】”ゲームをAIでテスト”のホントのところ。 ~ゲーム開発を強力にサポートする自動プレイテストAI 『Playable!』の野望~

AIを活用したテストツールの例

ゲームテストにおいてAIを活用したテストツールもいくつか登場しています。以下、実際にどのようなツールがあるか見ていきましょう。

Playable!

Playable!は、独自開発のゲームI/Oライブラリにより、ゲームQAに必要となる複数のテスト実行を完全自動化する統合ソリューションです。

Playable!には複数のソリューションが含まれており、ゲームテストにおける様々なシーンで利用が可能です。そのなかでも、AIを活用したソリューションとして以下があげられます。

【プレイスルー】
最小限のイベントでゲームをクリアするお手本を作成し、そのお手本通りにAIがエンディングまでプレイします。スタートからエンディングまで問題なくクリアできるかを、継続的かつ省リソースで検証可能です。

【汎用エージェント】
自然言語処理によってビヘイビアツリーを動的に生成することで、自然言語で指示したさまざまなタスクをこなすソリューションです。

Playable!公式サイト

Oreo

Oreoは、ゲームやアプリにまつわるX(旧Twitter)などのSNS投稿を24時間自動で収集、監視できるSaaS型のサービスです。手動でユーザーの意見や不具合の投稿を探す工数を大幅に削減し、手作業よりも高精度でデータを収集することができます。あらかじめサービスやアプリの画像をAIに学習させることで、キーワードだけではなく、画像の関連度でも投稿の絞り込みが可能です。ネガティブ・ポジティブな投稿を自動でカテゴライズする機能、各種チャットツールと連携したアラート機能などがあります。

Oreo公式サイト

Stena Game

Stena Gameは、世界最先端の異常検知AI技術を活用してユーザーの行動ログを様々な観点から解析し、チートやBotなどの不正ユーザーを網羅的に検知するサービスです。自社タイトルに特化したAIモデルの構築を通じて、見つけたい不正行為を確実に検知します。毎日の自動監視と解析により、膨大なログデータの中から不正行為を見つけ出し、Web UIを通じて詳細な情報を把握できます。また、既存のシステム構成を変更することなく導入が可能で、多くの監視コストを削減しつつ自動化を実現します。

Stena Game公式サイト

Applitools

Applitoolsは、ビジュアルテストに特化した次世代のテスト自動化プラットフォームです。ビジュアルテストを活用することで、コードレスで自動テストを作成することができます。また人間の目と脳を再現するVisual AIによって、大規模なUIテストを自動化することも可能です。たとえば、Visual AIによりリリースごとにバグや欠陥を自動的に発見することで、アプリのリリースにかかる時間を大幅に短縮できます。

Applitools公式サイト

Test.ai

Test.aiはSelenium(Webアプリ用)と Appium(スマホアプリ用)の画面要素認識をAIで最適化することによって、E2Eテスト作成を支援するツールです。Test.aiの主な機能として以下2つがあげられます。

【Test.ai SDKを使った画面要素認識】
Test.ai SDKとは、Selenium によって画面要素認識を実行する際に使うライブラリです。Test.aiでは本ライブラリを使い、専用の管理画面上で要素認識の設定が可能です。本機能では独自開発の認識機能を用いることで、問題の多いXPathでなく画像の見た目による画面要素認識を実現しています。

【Test.ai Carbonを使ったテスト作成】
Test.ai Carbonとは、画像として認識されたテストの編集・実行をおこなうツールです。ローカルにてWebアプリとして動作し、専用の管理画面上で操作できます。本ツールを使うことによって、ノーコードでE2Eテストの構築が可能です。本ツールでは、人が操作して画面要素を選択することによって自動的に学習し要素の認識をおこないます。

Test.ai公式サイト

mabl

mablはSaaS型の高性能なクラウド型のソリューションです。mablを使うことにより、ローコードで比較的簡単に自動テストを作成できます。

mablでは、機能追加や改修にともなうUI変化をAIが自動で学習し、テストケースを自動修復することが可能です。またWeb画面のスクリーンショットを自動で取得し、画面崩れなどの差異を自動で検知する機能も搭載しています。

mabl公式サイト

MagicPod

MagicPodは、AIを使ったクラウド型のテスト自動化サービスです。Webアプリ・モバイルアプリ両方に対応しています。MagicPodではAIがアプリケーション画面から項目を自動的に検出します。ユーザーは、項目を選ぶだけで簡単にスクリプトの作成が可能です。またアプリケーションのUIが変更された際は、AIが自動でスクリプトを修正します。

MagicPod公式サイト

Autify

Autifyはノーコードかつ簡単な操作で自動テストを作成できる、クラウド型のプラットフォームです。Autifyでは充実のAI機能群により、テストケースのデザインからテストシナリオのメンテナンスまで高速に実行できます。Autifyにおいて、AIにより実現できる主な機能は以下の通りです。

【テスト対象の変更検知】
テスト対象のアプリケーションが変更された場合、AIがその内容を自動的に検知します。

【セルフヒーリング】
検知内容にもとづき、テストシナリオをどう変更すべきかAIが提案します。

【画像情報にもとづく要素認識】
従来のテスト自動化では難しかった、モバイルアプリケーション上での画像情報に基づくAI要素認識を実現します。これにより、モバイルアプリケーションでも、Webアプリケーション同様のテストを実行可能です。

【ビジュアルリグレッション】
テストを実行した際に、見た目の崩れがないかなどをAIが自動的に検知します。

【テストシナリオ作成支援】
AIがシナリオ作成を支援することで、自動テストを簡単に作成できるようになります。

【特殊なUIテスト】
従来の自動テストでは難しい場合があった、チェックボックスなどの特殊なUIテストをAIが支援します。

Autify公式サイト

まとめ

AIの活用によるゲームテストでは、テスト実行だけでなく、テストケース作成支援や自動修復などが可能となります。しかしながら、全てのゲームテストに対応するほど、AIの活用はまだ完全には進んでいません。また実用に耐えうる精度のツールも、十分に揃っているとは言えません。

AIを用いることで、人間が行っていたテスト作業をより正確かつ迅速に実行でき、加えてAIに作業を任せることによって、人件費も大幅に削減することが可能です。

さらに、AIは人間以上の精度で識別や分析を行うことができます。作業の種類によっては、人間より高品質な結果を得ることが可能です。ゲームテストにおけるAIの活用も、これらのAIの長所を活かすことが期待されています。