2021年1月28日、第2回目となるmonoAI tecnology〈現:AIQVE ONE)主催のオンラインセミナー、QA Tech Nightを開催いたしました。この記事では、その中で行われた、アカツキ福岡の山﨑さん、当社の花房、桑野の3名によるパネルディスカッションの内容をお届けいたします。

内外から見たゲームテスト

桑野:
今日のテーマ、『ゲーム業界におけるソフトウェアテストの理論の浸透と自動化』について、実際のところどうなのかという話ができればと思っています。

今回、花房さんは、外のアウトソースベンダーという視点で語っていただきました。

アカツキ福岡の山﨑さんにはパブリッシャーさんの品質管理の中の人として語っていただきましたが、割と認識が共通していたというのが私の感想です。

最後の最後に人を集めて『バン』とやるというだけでなくて、上流・初期のころからテストのことを考えて準備していくべきですよね、というところが共通認識としてあって、自動化に関しても全自動で全てやるのではなくて場所を決めてとか効果的なものを選んで実施するとか、そもそも全体のテスト理論や計画がある中でそこがでてくるのかと思ったのですが、
花房さんは今の山﨑さんの話を聞いてどんな感想を持ちましたか?

花房:
ゲーム会社の内部のテストに関わる人として同じような考えとか認識を持っているということがわかったので、そこは率直に嬉しいなと思いました。

私がゲームのテストに関わったのはだいぶ前で、コンシューマーゲームが全盛という頃だったので、200人、300人使うというのが当たり前で、言葉が悪いですけれど何も考えずにやっていたような時代ですので、そこからかなり時代が変わってきたのかなと捉えています。

桑野:
ありがとうございます。山﨑さんは外から見た話を聞いてどう思いましたか?

山﨑さん:
そうですね、今回花房さんと資料を共有しながら話したわけではないのですが、かなり近しいところをお話されているな、というのを純粋に思いました。

それで、結構いいなと思ったのが『テストは誰でもできるものではない』というお言葉で、やはりまだゲーム業界だと『誰でもできるのではないか』と考えられているところがあると思っていて、その分、スケジュール的に圧迫されていても無理だと言えない状態がチームの中で出来ていたりすることもあって、そういうのをなくしていきたいと思っていますね。

自動化やソフトウェア理論の浸透について

桑野:
ありがとうございます。外から見て似ているなというのはあるんですけれど、やはり自動化とかソフトウェア理論が浸透してきた背景として、もともとコンソールのゲーム領域ではない方-ウェブ系・スマホから入ってきた方のテストに関する考え方の中には、それが割とあったのかなと感じています。

でもコンソールの方がさらにテスト費用などは莫大なのかなと思うのですが、どういう風にそっち側にシフトしていけるのか、というのが、実際に自動化に取り組んでいる中でだいぶ先になるのではないかという認識なのですがいかがですか?

山﨑さん:
そうですね、コンソールもののゲームでは、シリーズもの、たとえば「龍が如く」は、同じチームで技術が積み重なって、そこでCEDEC2020で紹介されたような大規模な自動化のシステムができているのかな、と思うんですけれど、まだまだモバイルのアプリケーション、ソーシャルアプリケーションの領域だと、同じチームで続けていくわけではないですし、中の人もローテーションしたりとかで、なかなか技術が積み上がらなくて、その中で、テストの自動化みたいなところもまだまだ遠いなと思っているのが正直なところですね。

それに、自動化はチーム内でも緊急性は高くなく、やはりユーザに提供する機能を作っていくのがゲーム開発、ソーシャルゲーム開発の使命だなと思っているので、そこに一番の工数を割いていて、なかなか自動化に取り組めないというのが現状ですね。

桑野:
ありがとうございます。花房さんはどう感じていますか?これから取り組んでいくことになるかと思うんですけれど。

花房:
そうですね、やっていくところではあるのですが、ゲームという特性を考えるとどちらかというとクリエイティブな部分で、面白さの追求に比重がかかってしまうのかなと思うんですよね。ただ、ベースとなる品質をないがしろにするのはよくないと思っていて、何か変更を入れた影響で既存の部分に問題が出てくるというのもよくある話で、まずここをなるべく労力をかけずにしっかり確認をしておくというところも重要で、そうなるとやはり自動化というアプローチも重要になってくるのかなと思っています。

人がやるべきところ―面白さとか感性的なところですね、なるべくそういうところにシフトしていくというのが理想なのかなと考えてはいます。

桑野:
ありがとうございます。monoAI technology(現:AIQVE ONE)としてもそういう課題は設立当時から考えていまして、テストする項目はどんどん増えていく、テクノロジーは進化して、ゲームとしてできることも増えていくので、テストしなくてはいけないことも増えていくとどうしても人手もかかってしまいますよね。
開発の費用も大きくなっていますし、テストの費用もそれに比例して大きくなっていくと。

ただ、人としてみた場合に少子化でテスターさんを集めるのも大変な状況になっていますし、あと4〜5年したら誰がテストをやるのか、ということになりかねないと。

人件費も高騰してくると、開発費用よりテスト費用の方が大きくなるのではないかと。損益分岐点の逆転現象が起きたらまずいよね、ということで、少しでも効率化して品質を上げていく、理論を用いてでも品質を上げていくというのを誰かがやらなければいけないという思いがあって、今、我々が取り組んでいるというのがあります。

自分たちが営業したいということでなく、これが広まっていくと皆の役に立つというのが、私の想いとしてありますね。

実は私はこの会社に入る前から自動化に取り組んでいて、いろんな仲間集めてコッソリ作ったりしていたのですが、こういう話がこうやってできるまでに進んで良かったなというのは感想として持っています。

ゲームテストの自動化の現状

桑野:
ただ、実際に自動化に取り組んでいくと壁にぶち当たりますよね。スクリプトをメンテナンスする人がいなくて止まるとか、そもそもやれと言われても『できませんでした』というのがあると思うんですが、山﨑さんのほうでも実際に実用化されているとは思うんですが、そこに至るまでに困難とか、やっぱりできなかったりとか失敗例とかあると思うんですが、その辺はいかがですか?

山﨑さん:
そうですね、前提としてまだ100%テストの自動化を稼働できていないのが現状です。

今取り組んでいるのが、新規の開発プロジェクトの自動化というよりは、リリースされて何年も運用されているプロダクトに対しての自動化で、自動化をするようなゲームシステムとしては作られていない中、それでも自動化しないといけないという現状―たとえば自動化しないとこれ以上不具合を止めることができないなど、いろいろな理由があるのですが、そういう中で取り組んでいて、やはり思うことは、ゲームの面白さの一つであるランダム性が難易度を上げている要因である、ということです。
ランダム要素ってゲームにとっては重要なのですが、テストの自動化にとっては天敵だなと思っています。

たとえばランダム性を排除するために、乱数シードを固定するんですけれど、今取り組んでいるプロダクトでは、1つのランダム関数がいろいろなところで使われているため、乱数が管理できていない状態になっています。ゲーム内には重要な乱数と重要ではない乱数が存在すると思っていますが、その切り分けがプログラム内でできていないと重要な乱数シードが様々な箇所で進んでしまいます。特に、呼ばれたり呼ばれなかったりというようなところで重要なランダム関数が使われていると、シードを固定しても不規則にズレたりとかして、テストで同じ結果が出ない場合があり、苦戦していますね。

桑野:
これから、『実際に効率化されました』というにはもう少し時間がかかったりとか、案件によっても差がありますし、まだ取り組んでいるところというところでしょうか。

うちは外から受ける側なので、自動化をいきなり提案するというのは難しいんですけれど、運用案件とかで、同じことを繰り返して人力をかけてやる部分を、少しでも自動化を組み込んで少しずつ効果が出ているのですが、花房さん、そのあたりで話せることはありますか?無茶ぶりかもしれませんが(笑)

花房:
そうですね、自動化は、単体テストや結合テストの段階から取り入れるのが効果が高いのかなと思うのですが、弊社の場合は、外からのアプローチというところで、ソースコードもいじらず、どう自動化しようかというところでやってはいるんですけれど、まだやれることに制限がいろいろある感じですね。
実際ゲームでいうと、インゲームは自動化のハードルが高いと感じていて、アウトゲームと呼ばれる部分が多くなっていたりしますね、技術的な研究はしていて、若干無理矢理ですが、音ゲーのインゲームのところを、外部からのアプローチで自動化できるようになっているとか、少しずつ技術的な進歩はみられているというところですね。

桑野:
音ゲーのめちゃくちゃ難しいマスターのやつを常に100%でコンプリートさせるというのを、人力で職人さんいなくてもできたらいいですね。ありがとうございます。

当たり前品質と魅力的品質

桑野:
今、質問があったんですけれど、品質がよい=面白いが直結しないじゃないですか、ゲームって。
バグがゼロでもつまらなかったらダメというのがあって、そういった場合、どこから力をいれるべきなんでしょうか?

先ほど、テストの場合は初期の頃からテストのこと考えてとか単体テストなどをやってという話がありましたが、面白さをどうやって追及するのかというのはいかがでしょうか。

アカツキさんの場合は、たとえばアルファの段階でユーザテストを入れたりとか、そういった取り組みもされているんですか?

山﨑さん:
そうですね、新規開発だとユーザ受け入れテストだとかユーザの声を直に聞いたりだとかはしていて、面白さってなんだろう、という追及はやってますね。

桑野:
それは、できてからの方が多いですかね。アルファとかモックの段階で一回触るとかはあるんですか?

山﨑さん:
そうですね、弊社は社内でゲームを作っている会社なので、ゲームに詳しい人がいたりとかフィードバックよくできたりする人たちがいるのでその人たちと触ったりとか、QA組織であると、ゲームがめちゃくちゃ好きなメンバーがたくさんいるので、そういう人たちに触ってもらったりとかして面白さを担保したりはしますけど、正直ここは本当に難しいですね。

桑野:
そうですね。そこでいくら評価を上げても出たら違うというのもありますしね。

山﨑さん:
はい、ただ面白さというのは魅力的品質だと思っているのですが、そこに注力するためには当たり前品質を一定の水準まで高めていかないと、面白いんだけど、めちゃくちゃ動作が遅いとか、画面の遷移1つとっても、ぬるぬる動かなかったりしてそこでストレスがたまると、せっかく面白くてもそれが半減したりとかはすごくあるので、品質を高めるためには当たり前品質をあげていくのが、初めのアプローチなんじゃないかなと思います。

桑野:
本当にそうだと思います。ユーザテストをやったときに、テストの前に落ちちゃって何にもできないということもあったんですよ。面白さ作る前にちゃんと作ろうよ、という逆の場合もあったので。
ただ、社内で分かる方がいらっしゃると初期の段階からユーザの意見を取れるというのはいいですよね。品質を高めつつ、面白さも追求しつつというのも。

弊社の方でも手前味噌ではあるんですが、FunQAというユーザテストのサービスがあって、企画書レベルからユーザの声を聞くとか、アルファまでできたから1回触ってもらおうとかできるサービスがあります。

ベータ超えてからユーザに『全然面白くないです』と言われても後戻りできないので、初期の頃からいろいろな人に触れてもらって改善していくというのは一番いいやり方なのかなと思っています。

ゲームテストの目指す方向、理想の未来とは

桑野:
時間も差し迫っているので最後になりますが、ゲームテストっていろいろな手法がありますよね。コンソールだとやっぱり人の手が必要ですし、とはいえスマートフォンになってからはソフトェア理論を用いた方が効果的というのもわかってきて、今後どういう風になると理想的なのかというのは花房さん何かありますか?

花房:
そうですね、理想でいうと、個人的に今の状況で嫌なのが、行き当たりばったりで物事が進んでいくことなので、前の段階からきちんと目的を考えてやるとか、そういったところが第一段階ですかね。

桑野:
確かに。基本といえば基本なんですが、なかなかできないというところですね。わかります。ありがとうございます。山﨑さんはいかがですか?

山﨑:
そうですね、理想は、先ほどもちらっと言ったのですが、魅力的品質をひたすら高めていくようなテストですね。弊社も自動化を推進している理由の1つに、ゲームの魅力的品質を高めたいからというのがあるんですが、当たり前品質の検証が多くなって、そこに時間をとられてゲームの本質を見失うということがよくあって、そこを自動化によって当たり前品質を担保する、ということがあります。できる限り自動化して、本当に人ができないといけない面白さのところに、フォーカスしたゲームテストができるといいなと思っていますね。

桑野:
ありがとうございます。あっという間に時間が過ぎてしまったんですが、まだ出ていない話もあるので、またこういう機会をやっていってですね、自動化やっている方だけで集まってざっくばらんに話す会とかも、今後やっていく予定ですので、是非みなさんにはまた聞いていただければと思います。

本日はありがとうございました。