はじめに
本記事はQualiArts Advent Calendar 2023 19日目の記事になります。
QualiArtsでUnityエンジニアをしている たなひろ と申します。
最近はAnjinを使ってアウトゲームのテストの自動化に取り組んでいます。
本記事ではAnjinの自動化テストについての活用事例について紹介します。
AnjinとAirtestの使い分けについて
AnjinとはDeNA提供のMITライセンスで公開されている、テストを自動化するためのツールになります。
こちらにAnjinについての記事がありますので詳しく知りたい場合はこちらを読んでいただくと良いと思います。
弊社ではAirtestという別のフレームワークを利用して自動テストを行なっていますが、Airtestは実機の機種ごとで差異が出るようなテストについて実行しており、Anjinの方はデータのチェックなど、端末に依存しないデータのテストについて使用しています。
こちらはまだAnjinが提供される前にAirtestを利用したチュートリアルの記事になります。
Anjinでのテスト活用事例
アウトゲームでのテスト活用事例
弊社が運用を行うモバイルゲームであるIDOLY PRIDE(以下アイプラ)を例にあげますが、タイトル、キャラクターの育成、編成、ガチャなどのメインのゲームの部分以外をアウトゲームと呼んでいます。(下記がアイプラでのアウトゲーム部分の参考画像になります)
キャラクターの育成ができるか、編成のおまかせ機能などが正常かなど、このあたりの要素についてきちんと実行できているかを毎朝テストし、不具合があった場合には報告するようにしています。
新規機能などの開発で画面のUIの要素変更などが起こると、不具合やエラーが起きていることがあり、早めの報告が役に立ちます。
アドベンチャーパート全テスト
アイプラでは、このようなキャラクターとの会話シーン(アドベンチャーパート)があります。
このようなアドベンチャーパートにおいてAnjiの自動テストを活用しています。
メインのストーリーや各キャラクターのストーリーなどが大量にあるわけですが、人の手で確認を行うのは大変です。
まずは、メインの会話用スクリプトの存在確認のチェックや、会話シーンの最後まで到達できるかなどのチェックをしています。
また会話に使用される素材データ(音声、画像、モデルデータ、モーションデータetc)も、会話用スクリプトと紐づいて大量に存在するため、それぞれについてきちんと読み込めて実行できているか、という確認もしています。
音声データなど、データが揃っていない段階でも最後まで実行できるような状態になっているため、データエラーについて取りまとめて報告することは大変役に立っています。
またこちらはテストに時間がかかるため毎週末に実行しています。
自動テストによって、手動テストを行うよりもかなり作業量を減らすことができています。
実際の仕組み
上記の毎朝および毎週のテストはJenkinsによって定期実行されており、Unityを呼び出し、結果をSlackに送信するようになっています。
送信先として設定されたチャンネルで失敗したテストのみエラーログを確認し、それでも原因が把握できなかった時は、手元のUnityでAnjinのテストを実行し、エラーを特定して報告するようにしています。
まとめ
今回はAnjinを使用しての自動テストについての活用事例を書いてみました。
今後もAnjinでのテスト項目を増やし省力化に貢献したいと思います。