昨今ではソフトウェアテストの現場で「テスト自動化」に注目が集まっており、ゲームテストにおいても例外ではありません。一方で、テスト自動化に試みたものの、思うような成果をあげられず失敗する例も多いのが現実です。この記事ではテスト自動化とは何かといった基本から、ゲームテストに導入する際のポイント・注意点・方法を導入事例とあわせて解説いたします。

テスト自動化とは

テスト自動化とはこれまで手動で行っていたテストに関する作業を、専用ツールやスクリプトを使い自動化することです。一口にソフトウェアやゲームのテストと言っても、テストケース※を作成・実行する工程や、レポートを作成する工程などがあります。その中でもテスト自動化が最もよく導入されるのは、作成されたテストケースを実行(テスト実行)する工程です。


テストを実行する具体的な手順や、テストで利用するデータ、条件、期待される結果などをまとめたもの

テスト自動化の8原則

テスト自動化を推進するにあたっては、あらかじめ把握しておくべき注意点が少なくありません。テスト自動化研究会が作成した「テスト自動化の8原則」には、全てのソフトウェアテスト・ゲームテストに共通する、テスト自動化を推進する上での注意点がまとめられています。

以下、実際にどのような内容がまとめられているか、1つずつみていきましょう。

・1. 手動テストはなくならない

ユーザビリティを検証するテストなど、テスト自動化が不向きなテストも存在します。テストを自動化するのに必要な工数と比べ、テスト自動化を行っても採算がとれないケースも少なくないです。こういった理由から、手動テストがなくなることはありません。

・2. 手動でおこなって効果のないテストを自動化しても無駄である

設計や実装が十分でなく、手動でテストを実行する場合でも十分な成果をあげられないケースがあります。そういったケースでは、自動化しても成果を出すことはできません。

・3.自動テストは書いたことしかテストしない

人が手動でテストを行う際は、テストケースに書かれていない不具合などに気づくこともあります。しかしテスト自動化では、あらかじめスクリプトにまとめられた内容以外は検証できません。

・4.テスト自動化の効用はコスト削減だけではない

テスト自動化のメリットはコストを削減できる点だけではありません。たとえばシーンによっては、バグ修正にかかるコストや日数を低減できるなどのメリットもあります。

・5.自動テストシステムの開発は継続的におこなうものである

テスト自動化を実現するためのシステム(スクリプト/ツール)は、開発して終わりではありません。開発にかかるコストより、運用・メンテナンスするコストの方が大きいです。

・6.自動化検討はプロジェクト初期から

開発済みの ソフトウェアやゲームに対して、テスト自動化を導入するのは簡単ではありません。テスト自動化を行うときは、プロジェクト初期から検討を進めた方が実現しやすくなります。

・7.自動テストで新種のバグが見つかることは稀である

テスト自動化が行われるのは、すでに手動でのテストが何度か繰り返された箇所であることが多いです。そのため自動テストで新しいバグが発見される可能性は低くなります。

・8.テスト結果分析という新たなタスクが生まれる

自動テストでバグが発見された場合、なぜその結果になったのか手動で確認しなくてはなりません。自動テストで見つかるバグが多くなるほど、結果的に人の負担も大きくなります。

参照元:テスト自動化の8原則(テスト自動化研究会)

テスト自動化のメリット

テストを自動化することによってテスターの工数を大幅に軽減し、コストの削減につなげられます。特に同じ作業を繰り返し行うテストではテスト自動化の効果も大きくなり、より多くのコストを削減可能です。その他、テスト自動化によりヒューマンエラーを排除できるなどテストの品質を向上できる点もメリットと言えます。

テスト自動化のデメリット

テスト自動化で使うツールやスクリプトは、開発後の保守運用が求められます。たとえばソフトウェア・ゲームのアップデートが行われた場合、ツール・スクリプトも修正が必要です。その分、管理者の負担が増える点は注意しなくてはなりません。

スクリプト・ツールの開発や保守運用にコストが多くかかる割に、あまりコストを削減できないというケースも考えられます。テスト自動化を行う際は、どれくらいコストの削減が見込めるか慎重に見積もることが必要です。

ゲームテストの自動化とは

ゲームテストにおけるテスト自動化の考え方や進め方は、その他のソフトウェアテストと基本的には変わりません。ただし以下にあげる点については、ゲームテスト独自の特徴と言えます。

●インタラクティブ性の強い部分(インゲーム※部分)は、テスト自動化に向いていません。一方、インタラクティブ性の弱い部分(アウトゲーム部分)は、プレイ内容がある程度決まっているためテスト自動化に向いています。

●ゲームテストにおいて、ユーザーと同じ環境で自動化をする場合は、構造解析ができないことから、一部の例外を除いて画像認識ベースで行われます。


たとえばアクションゲームでは、実際に敵と戦うなどゲームのなかでもアクションを行う部分が「インゲーム」になります。一方でアクションゲームにおいて「アウトゲーム」とは、装備を整えるなど敵と戦う準備にあたる部分のことです。

ゲームテスト自動化の導入事例

ここで、累計ダウンロード数7千万を超える大人気ゲーム「ボル恋」に、テスト自動化を導入した株式会社ボルテージの事例を紹介します。株式会社ボルテージ では自社開発のゲームにおいて、ストーリー通読やガチャのテスト部分へテスト自動化を導入しました。

テスト自動化の結果が安定するまで約1年かかったものの、現在では月のテスト工数における約20%を自動化できている状況です。

またテスト自動化のログを証憑として残せるようになったことも、テスト自動化の大きな成果です。同社が同じテストを手動で行っていた際は、テストの実行証憑としてスクリーンショットなどを取得していませんでした。現在ではテストの証憑が残っていることから、万が一あとで問題が発生した場合にも、原因の調査に活用できます。

さらにテスト自動化によって、テストの信頼性が向上した点も大きな成果です。定常的なテストでもテスト実行者やテスト用の素材が変わることから、手動ではヒューマンエラーによるバグの見逃しが発生していました。しかしテスト自動化ならその心配がなく、テストの実行結果を信頼できるわけです。

【関連記事】
【QA Tech Nightレポート】ボル恋を支えるQAとテスト自動化への挑戦【前編】
【QA Tech Nightレポート】ボル恋を支えるQAとテスト自動化への挑戦【後編】

ゲームテストにて自動化を導入する際の注意点

ゲームテストにおける自動化を成功させるためには、ポイントをおさえて導入をすすめることが必要です。この項では、どんな点に注意するべきか主なポイントを紹介します。

自動化自体を目的にしない

テスト自動化の目的は、あくまで工数・コストの削減やテスト品質の向上などにあります。「テストケースの自動化率を●%にする」など自動化自体を目的にしてしまうと、失敗する可能性が高くなるので注意して下さい。テスト自動化を推進する際は、テスト自動化を1つの手段としてどのような目標を達成したいか明確にする必要があります。

メンテナンスコストを考慮する

テスト自動化に成功したとしても、ツールで実行可能なテストにかかるコストがなくなるわけではありません。ツールの保守運用をはじめとして、テスト自動化を継続するための作業コストが発生します。このコストを考慮しないと、正しくコスト削減の成果を計算できないので注意しましょう。

進捗状況をモニタリングする

テスト自動化を導入した場合は、1日あたりのテスト消化数やテスト工数をモニタリングし、成果を確認することが必要です。自動化することでどのくらい工数を削減できたか、ミスはどのくらい減ったかを確認し、問題を発見した場合は改善を試みます。これによって、テスト自動化によるコスト削減などの成果を維持・向上できるのです。

ゲームテスト自動化の導入方法

ゲームテストの自動化をすすめる場合、以下の流れで対応をすすめます。

1.目的の明確化

まずはゲームテストを自動化する目的・目標を明確化します。

2.テストケースの作成

施策に応じテストの設計を行い、その設計をもとにテストケースを作成します。

3.仕分け

作成したテストケースのなかから、自動化できるもの、手動で行うべきものを仕分けします。(自動化によってコスト削減などの成果が見込めるテストケースを、テスト自動化の対象とします。)

4.スクリプト作成

テスト自動化を実現するためのスクリプトを作成し、動作対象の端末で検証します。

尚、自動化は、やってみないとできるかどうかわからないという側面もあるので、AIQVE ONEでは、お客様のリスクを最小限に抑えるために、最初から自動化を提案することはあまり行っておりません。まずは手動で行い、その中から自動化できそうなところを試しに動かしてみて、いけそうだったら自動化の提案をするというやり方をしています。お客様には最小限の費用でうまくいけば自動化がついてくるという方法をとっています。

まとめ

テスト自動化とは専用ツールやスクリプトを使い、テストに関わる作業を自動化することです。ゲームテストにおいても、ソフトウェアテストと同様にテスト自動化が注目されています。

テスト自動化によって、コストの削減やテスト品質の向上を実現可能です。しかしテスト自動化が適さないテストの種類もあり、必ずしも想定した成果が出せるとは限りません。ゲームテストにおいてテスト自動化を推進する際は、自動化にかかるコストも考慮して、テスト自動化を進めるべきか検討する必要があります。