イベント・セミナー
【CEDEC2024レポート】生成AIを活用したゲーム開発効率化
2021年12月16日、第6回目となるAIQVE ONE主催の品質管理をテーマにしたセミナー、QA Tech Nightを開催いたしました。この記事では、株式会社ボルテージの髙橋貞治氏による講演『ボル恋を支えるQAとテスト自動化への挑戦』の第二部『テスト自動化への挑戦』の内容をお届けいたします。
前回の内容についてはこちらの記事をご覧ください。
ボル恋を支えるQAとテスト自動化への挑戦【前編】『ボルテージのQAの取り組み』
先ほどのコンテンツ紹介でもありました通り、弊社では以前、ストーリーを通読するなど、ある程度定型的なコンテンツが多かったので、4~5年前から、なんとかして自動化したいということは常々思っておりました。
よくAppiumやSeleniumなどを使い実験的に作ってみて、PCからスマホを操作して通読のテストをするというような、キャプチャを撮ってしっかり通読できているかをあとで確認するということもしていました。
また、自動化をうたっている他社さんのツールの調査等も結構していました。
2017年に、さきほどの、ストーリー再生し自動キャプチャするものが仮運用までいったことがあります。UWSCと、SPSという技術を使ったのですが、工数削減が見込めそうな段階までは進捗していたというところです。
ただ、組織変更など弊社の戦略的なところもあり、本運用まではいくことができず、体制上エンジニアが不在になってしまったこともあり、頓挫となってしまいました。
数年経ちまして、CEDEC2019で、AIQVE ONEさん(旧monoAI technology)との出会いがあり、2つの自動化テストツールを知り、そこで長年のテスト自動化への火が再点灯しました。そのときもテストは相変わらず手動でしていたので、効率化したいというのがありました。また、AIや自動化が盛り上がってきていたので、エンジニアにとってもモチベーションや興味付けとなり、テストだけではなく他の分野でも自動化を行う契機にもなるため、QAグループメンバーだけでなくエンジニアも参画してやってみようという方向性を決めました。そこで2020年、2つのツールを実験的に進めることを決定しました。
2020年1月、某ロボットテストツールを試験導入しました。物理的なガシガシ動くロボットで、物理的なタッチパネルの接触によるテストです。スマホをセットして、タッチパネルをロボットのアームでぽんぽん押してくという、単純と言えば単純なのですが、簡単なスクリプト作成によって、動作検証も実際のアプリで成功しました。『100シーンの恋』というコンテンツでは、ストーリー通読がメインだったので、仮導入まで進むと、ある程度本導入まで進められつつあるという状況でした。
ただ、それだけですとなかなかリクープしない、コストに見合わないというところがありましたので、使いどころを拡大したいということで、夜間に使おうと思ってやってみたのですが、実行してみて翌朝来てみたら動いていないのです。電気が消えていたので光度が足らず、画像認識できないのかなと思い、いろいろライトを導入したりしてみたのですが、なかなかうまくいかない。電気のつけっぱなしも逆にコストに見合わないという面もありましたので、導入は泣く泣く見送りということになりました。
ロボットがガシガシ動いているというのはインパクトがあって、社内的にもいろいろな人が見に来るのは本当に楽しかったです。
その後、いろいろモリカトロンさんと一緒にやっていくというところになります。CEDEC2019でお話しされていました自動化についてですね。
導入判断の前に試作していただきまして、動きの検証もできたので、導入を決めました。テスト自動化によりテスターの人数をさらに削減したいという狙いもあったので、物理的にテスター人数を削減する計画も、当時のテストリーダーの方にご提案頂きまして、それなら通常テストも含めてテスト体制をまるごとAIQVE ONEさんにお願いしようということで、スクリプト開発、テスト実行を依頼させていただきました。
AIQVE ONEの桑野さんの言葉だったと思いますが、「テストを効率化、品質保証をしっかりしていくことが第一でテスト自動化はその手段の1つに過ぎない」という言葉にすごく惹かれました。
開始から安定化までの時系列になります。
安定化と呼んでいますのは、テスト自動化スクリプトにて本番運用でほぼミスもなくしっかりテストが導入できているという状況を指しています。
2020年の5月に着任いただきまして、開発開始しました。当初は半年ぐらいで、本番導入してテスト人数も削減できるのではないかという予定を立てていたのですが、やはり試行錯誤しました。なかなかうまくいかず、結果、2020年12月に開発完了し、本番導入していこうというところで、1月からいけるのではないかというところだったのですが、ここもやはり本番導入しても安定しませんでした。これにはいろいろな原因があり、それについてはこのあと説明しますが、調整して半年でようやく安定化し、今ではほぼ100%というかたちでテストに活躍しているという状況になっています。
どこにどういうテストをしているのかという共有です。
さきほど、基本的にはオフサイトテストにてアプリ上でいろいろなパラメータをセットできるというお話をしましたが、こちらはテストアプリにデバッグツールで必要パラメータを自動化スクリプト上でセットする、というところで、そこも含めて自動化スクリプトで設定しています。
こちらはイベントストーリーの通読テストになります。トップページからユーザーがたどる遷移をたどり、ストーリーを通読していくというところで、キャラもしっかり選択できるかという確認もしていきます。
アバター型コンテンツにはストーリー通読後で、途中でクリアすべきミッションというのが発生するのですが、そこでミッションクリアできる状況になっているパラメータをセットし、クリアできる状況であればクリアしていくというところも自動化で行っています。
ガチャのテストです。ガチャはイベントごとにガチャのセットというのが毎回配信されますので、新規で追加したガチャをコンプするまでしっかり実行する、というところです。
ガチャにも、10回まわす、チケットでまわす、1回まわすなどいろいろな種類がありますので、そこも網羅的にテストしていきます。
セットアイテムの購入です。
アイテムも同じくイベントで、アイテムセットが出てきたり、日時限定のお得なアイテムなども出たりするので、動作的な購入確認はもちろん、購入制限があればしっかり効いているか、また、開始日時とエンド日時、終了日時の境界値のテスト等もテスト自動化で全部行っています。
ハント・合戦とありますが、こちらはミニイベントで、お殿様にいろいろなアイテムを献上していき、献上し終わると特典が取得できるというものになります。そのあたりもアイテムの献上数などを全部セットしまして、特典を受け取って、その効果がしっかり出てくるところまですべて行っています。
フィーバーですね。ソーシャルゲームでは、時間限定でお得になるフィーバーに近いものがよくあると思いますが、ここも開始前・開始後、終了後の境界値、そしてフィーバーもしっかり成果を確認するというところも自動化しております。
ログインボーナスですね。これもスマホゲームでよくあると思います。ログボ開始や終了時の境界値テストや全日分アクセスは、もし手動でやるとなると全部先ほどのデバッグの機能で、1日1日、日時を変えてやっていかなければならないところを、全部自動的にやってくれるので、ログボを全部達成して成果取得の確認まで進めているところです。
いろいろ出てきましたが、境界値のテストももちろんですが、全網羅的なテストというところではとても効果があると思います。アクション中心のアプリなどでもログボやアイテムの購入、ガチャなど、網羅的なテストはいろいろあると思います。
そういうもののUIテストはとても効果があると感じております。
具体的な実績と効果になります。現状、導入タイトルとしては、アバター型コンテンツが5タイトル入っております。作成スクリプト数については約20本入っています。1タイトル4本くらいというところで、4つの種類のテストを使っていることになります。
削減効果ですが、月のテスト工数の約20%が自動化で実行できています。5分の1は自動化できているというのは結構大きいと思っています。弊社の中でも、パーセンテージで表すことはなかなかなかったので、20%は結構大きいなと改めて思いました。
テスト自動化の成功率ですが、95%になります。ただテスト自動化スクリプト自体の成功率はほぼ100%です。ゲーム側の状況で素材がないとか、開発のスケジュール的な問題で、スケジュールを予約してテスト中止になったケースも含めているので、それを抜いたら100%成功できているという実績になっております。
追加の効果に関しては、テスト自動化ならではというところで、昼休みや就業後の時間、テスターが不在の状況でも動作させることができています。実際に、就業後にストーリー通読のテストをまわして帰って翌朝見てみるとか、昼休みに実行してあとで確認していくということができています。
また、テスト自動化のログが証憑として残せるのも大きな効果だと思っています。弊社の手動テストでは、テストの実行証憑としてスクリーンショットは撮っていません。随時スクリーンショットが撮れれば、テスト見逃しやミスがどうしても起きたときに、本当に確認しているのかという原因追求もできると思うのですが、現実的にはできていません。AIQVE ONEさんのものに関しては、自動化スクリプトは全部、スクリーンショットを撮ってくれていますので、スクリーンショットを活用して解決を図ることが可能になりました。開発へのバグ報告の際にも利用できると思っています。
もう1つ、これは当たり前と言えば当たり前ですが、ヒューマンエラーによるテスト失敗が本当になくなったということです。定常的なテストでも、手動で行った場合は、データや素材は異なり、テストをする人も違うので、バク見逃しは現状起きています。ただテスト自動化では、その点全く心配ないので、テストの最初のパラメータ設定さえ間違えなければ、テスト実行結果については信頼できます。もちろんキャプチャも全部撮っているので、あとで確認できるという意味では、証憑もしっかりしているというのはとても安心できています。
ある程度実績は出せたのですが、安定化するまでは1年くらい時間がかかりました。こちらはどちらかというと開発する方ではなかったので、本導入していくためにどういう課題があったのかというところをお話しさせていただきます。
まず、最初のころは、端末によって動作しなかったり、途中でスクリプト停止してしまったりすることがあり、そのあたりが不安定でした。当初は複数端末を使って、開発完了したものから仮導入していくとき、開発者の方はOKでも、こちらのテスターの方ではエラーが起きるということが頻繁に発生していました。原因としては、当たり前ではありますが、端末によって座標・解像度が異なるため、画像認識中心に動いているテストでは、端末によって動作失敗するケースが多かったということになります。
基本的にアバター型コンテンツでは、大イベント・ミニイベント・ストーリー通読というように、ある程度型は同じものになります。そこで開発スケジュールを組むときに、同じストーリー通読だったらまとめて一緒に開発し、そこからタイトルによる差異を埋めたり、画像を差し替えたりと効率的に進めようとしていました。普通に考えたら、その方がよいと思います。ただ、些細な違いはやはりあったため、ここは仮導入で結構躓きました。
これは、先ほどのコンテンツ差異に近いのですが、また別の角度で、今度は同じコンテンツで同じ内容のテスト、たとえばイベントのテストをしようとしてもうまくいかなかったことがあります。バリエーションが存在していたため、その仕様を網羅できてなかったことが原因です。たとえばストーリーを読んでも、ハッピーエンド・ノーマルエンドのようなエンド分岐がある時と無い時の2パターン存在するとか、そういう細かな違いが調整に時間がかかったというところでした。
そこへの課題の解決についてお話しさせていただきます。自動化を導入する際のポイントにも近いところにもなるかと思います。
端末により動作の不安定があるというところに関しては、ある程度、全ての端末に対応させるのは諦める判断をしました。スマホには様々な仕様があるので、安定動作する端末をしっかり確認し、その端末を4~5台用意していただき、テストを実施するという方法に変更をしております。端末によって落ちる、落ちないみたいなことは勿論ありますが、手動でのテストでも、多端末でやっていくテストはあまりやっておらず、基本的に動作のテストや機能のテストになるので、そこは問題なしと判断しております。
開発を効率よく進めるために、ある程度まとめてテストをしていこうというお話をしましたが、そこに関しても、テスト自動化ですと細かいプログラムで制御していくため、全仕様網羅がやはり必要だということで、一括開発は一旦諦めました。
そこでスケジュール調整をしまして、実際はこれほどきっぱり分かれていないのですが、たとえば「魔界」というコンテンツが本導入にいったら、並行して、ある程度開発が終わったら次のミラプリを開発していきましょう、というように、1つずつ着実開発・検証を進めていくという流れに変えております。
この課題に関しては、全ての細かい仕様を定義するのは難しいというところで、弊社ではまとまっている資料もなかなかないという状況でしたので、テストを重ねることで、失敗して調整してテスト成功という流れを地道に繰り返しました。ここが先ほどの時系列のスケジュールでお話ししたところで、2021年1月に本導入したものの、調整に時間がかかったポイントですね。ここに関しては、もし他のところでも入れていこうとなったときに、仕様の網羅が事前に可能であれば、調整時間がぐっと短くなるのかなと感じております。
実際的な課題解決とは別に、テスト自動化の工夫点についてお話しさせていただきます。
当時はある程度お任せしていた部分もありましたので、動かないというところに関しては、動くようになるまでは見守るといいますか、離れて見ていたところがありましたが、定例で課題会を開き、細かい課題を見える化して進捗を確認して解決していったことが一番大きな要素だったのかなと思っています。弊社原因の問題もたくさんあると思いますので、お願いする方もただ待っているだけではなく、お互いに歩み寄って、細かい課題の本質をしっかり解決していくのが大事だと感じています。
課題会では、今ある課題を落とし込み、その解決目標を決め、お互いに進捗を確認していきました。AIQVE ONEの仲さんも大変迅速に動いていただけたので、この課題会で結構解決したのではないかと思います。課題を実際に落として潰していくと安定化にも近づいているという実感がお互いにあったので、本導入を成功にもっていく上では重要なポイントだったと思っています。
フロー的なところで、本導入に入ってから、それをどう使っていくかについての現状の工夫点です。大事なことは、自動化スクリプトに頼り切らないということです。イベントなどの内容などは常に動いており、全く同じではないということがあります。常に変化があるという前提で、テスト自動化を利用することが大切だと思っています。
本導入開始時期は、先ほど伸びなかったという1つの原因でもあったのですが、自動化テストに失敗したから、じゃあ手動でやろうという流れでなかなか成果が伸びませんでした。そこで、失敗した場合、テスターさんでまず判断してもらうフローに変えました。今回の本導入で大きな成果を出せることができたのは、テスターさんの迅速な対応が大きいと思います。それまではテスターさんがテストし、失敗したら自動化のスクリプト開発者さんに戻して調整してもらって、そこから戻ってくることしかできないと思っていたのですが、こういう方法はどうかと提案させていただいたところ、テスターさんの方で結構調整できるということがわかりました。画像の座標を少し変えるということなどに関してはできるということがわかったので、テスターさんの判断で、調整できる場合はしてもらい、だめなら手動でやってもらうということになりました。結果、ほとんどが調整可能でしたので、大きく成果が伸びた一因かなと思っております。
2点目として、テスト自動化のスクリプトを実行して、失敗しても気づかないケースが発生しました。テスターさんも並行して手動でテストしているので、気づかずにテスト予定時間を過ぎてしまうという問題が最初はよく起きていました。無限ループにはまり、動作が途中で止まるけど気づかないということです。
無限ループに関しては、一定時間でアラート通知を仕込んでもらい、定期的に手動でテストをしながら、実行画面を確認するというフローを明示的に入れたことで、うまくいくようになっています。
テスト自動化を導入する上で、気を付けるべきポイントになります。
アイテムの全取得やガチャコンプなど、スマホゲームでも繰り返し動作が必要なものはとても相性が良いと思います。
アプリ上でテストが完結する仕組みがあると、やはり効率的に自動化スクリプトが実行可能になります。
また、自動化テストを組み込んだ運用フローをしっかり定めて、失敗したらどうするか、エラー検知どうするかというところを考えられると良いと思っています。
またここは、昔に戻ったらこれをやるかなというところになりますが、仕様の全網羅、全網羅まではできないまでも、ある程度ドキュメントに落とすなど、開発をお願いする前に、お願いする側が仕様をしっかり確認してから提供することができると、導入までの期間が短縮されると思います。このせいで時間がかかったかなと思っています。
あとは自動化テストを実施する端末を決める、絞ることです。AIQVE ONEさんがパワーアップしたらできるかもしれませんが、おそらく全網羅は厳しいと思います。テスト自動化は、もっとAIが導入されたりフレキシブルになったらいけるかもしれないですね。
そして、開発との連携強化です。UXや画像が変更されるというのをいかに察知するかが大切だと思っています。
コンテンツ開発担当者に啓蒙するしかないのですが、「こういうテストを行っているので、UXが変わるときはテストの前に連絡ください」ということを伝えるようにしています。実際にQAのメンバーがPRの動画を作ったり、弊社の全社会でも「テスト自動化はこういう風にやっています」と1年半くらい言ったりしていましたので、こういう啓蒙が大事だと思っております。
最後に、テスト自動化導入への弊社の課題や展望についてです。
QAグループの全体工数のテスト自動化の範囲はもっと広げていきたいと思っています。また、もう少し定型的な箇所以外もできるようになったり、開発→検証→導入までのサイクルを短くできたらと思っています。
そして、画像認証の精度UP、文字認識などもできるようになるといいなと思っています。ストーリー型コンテンツ、スマホゲームはいろいろな文字があるので、文字認識ができるとありがたいです。
同じく、UX変更によりテスト不可になることを解決したいと思っています。
社内でも、今後、テスト自動化については模索していきたいと思っています。
もちろんAIQVE ONEさんがパワーアップしたものを出していただけたら、それを使っていきたいと思っていますので、今後ともよろしくお願いいたします。
以上となります。ご清聴ありがとうございました。
株式会社ボルテージ様ホームページ
https://www.voltage.co.jp/
※この後行われた、株式会社ボルテージの高橋様、AIQVE ONE株式会社の仲、桑野によるパネルディスカッションの模様は、後日アップいたします。
イベント・セミナー
【CEDEC2024レポート】生成AIを活用したゲーム開発効率化
イベント・セミナー
【東京ゲームショウ2024】今年はスマートフォンゲームコーナーにも初出展
イベント・セミナー
【GTMF2024レポート】開発者も知っておくべきモバイルゲームアプリのセキュリティ
イベント・セミナー
【CEDEC2023講演】「品質管理に、革命を。」の本当のところ。これから興るゲームQAの破壊的技術。汎用エージェントの取り組み
テスト自動化
2023年8月に開催されたCEDECにおけるAI・自動化関連の講演まとめ
イベント・セミナー
【ログミーTech掲載】パネルディスカッション「QA自動化とAI活用~未来のテストを考えてみる~」
イベント・セミナー
【QA Tech Nightレポート】これからのゲームQA人材の育成~パネルディスカッション~【後編】
イベント・セミナー
【QA Tech Nightレポート】これからのゲームQA人材の育成~パネルディスカッション~【前編】
イベント・セミナー
【ログミーTech掲載】 「AIのアートはほんものか? 〜AIと品質保証と作業効率化の超未来〜」(モリカトロン株式会社 森川氏)
テスト自動化
【テスト自動化ツール】Airtestとは?概要と主な特徴、使い方をわかりやすく解説
テスト自動化
【テスト自動化ツール】mablとは?概要や特徴、使い方を分かりやすく解説
イベント・セミナー
【QA Tech Nightレポート】ゲーム開発・テスト・運用へのAI・ボットの活用 ~マイクロソフトのゲーム開発スタジオの事例~