最終更新日: 2022年2月22日

テスト自動化導入 実績と効果

具体的な実績と効果になります。現状、導入タイトルとしては、アバター型コンテンツが5タイトル入っております。作成スクリプト数については約20本入っています。1タイトル4本くらいというところで、4つの種類のテストを使っていることになります。

削減効果ですが、月のテスト工数の約20%が自動化で実行できています。5分の1は自動化できているというのは結構大きいと思っています。弊社の中でも、パーセンテージで表すことはなかなかなかったので、20%は結構大きいなと改めて思いました。

テスト自動化の成功率ですが、95%になります。ただテスト自動化スクリプト自体の成功率はほぼ100%です。ゲーム側の状況で素材がないとか、開発のスケジュール的な問題で、スケジュールを予約してテスト中止になったケースも含めているので、それを抜いたら100%成功できているという実績になっております。

追加の効果に関しては、テスト自動化ならではというところで、昼休みや就業後の時間、テスターが不在の状況でも動作させることができています。実際に、就業後にストーリー通読のテストをまわして帰って翌朝見てみるとか、昼休みに実行してあとで確認していくということができています。

また、テスト自動化のログが証憑として残せるのも大きな効果だと思っています。弊社の手動テストでは、テストの実行証憑としてスクリーンショットは撮っていません。随時スクリーンショットが撮れれば、テスト見逃しやミスがどうしても起きたときに、本当に確認しているのかという原因追求もできると思うのですが、現実的にはできていません。AIQVE ONEさんのものに関しては、自動化スクリプトは全部、スクリーンショットを撮ってくれていますので、スクリーンショットを活用して解決を図ることが可能になりました。開発へのバグ報告の際にも利用できると思っています。

もう1つ、これは当たり前と言えば当たり前ですが、ヒューマンエラーによるテスト失敗が本当になくなったということです。定常的なテストでも、手動で行った場合は、データや素材は異なり、テストをする人も違うので、バク見逃しは現状起きています。ただテスト自動化では、その点全く心配ないので、テストの最初のパラメータ設定さえ間違えなければ、テスト実行結果については信頼できます。もちろんキャプチャも全部撮っているので、あとで確認できるという意味では、証憑もしっかりしているというのはとても安心できています。

テスト自動化導入途中での課題

ある程度実績は出せたのですが、安定化するまでは1年くらい時間がかかりました。こちらはどちらかというと開発する方ではなかったので、本導入していくためにどういう課題があったのかというところをお話しさせていただきます。

端末によっては動作が不安定

まず、最初のころは、端末によって動作しなかったり、途中でスクリプト停止してしまったりすることがあり、そのあたりが不安定でした。当初は複数端末を使って、開発完了したものから仮導入していくとき、開発者の方はOKでも、こちらのテスターの方ではエラーが起きるということが頻繁に発生していました。原因としては、当たり前ではありますが、端末によって座標・解像度が異なるため、画像認識中心に動いているテストでは、端末によって動作失敗するケースが多かったということになります。

タイトルごとの仕様による動作不良

基本的にアバター型コンテンツでは、大イベント・ミニイベント・ストーリー通読というように、ある程度型は同じものになります。そこで開発スケジュールを組むときに、同じストーリー通読だったらまとめて一緒に開発し、そこからタイトルによる差異を埋めたり、画像を差し替えたりと効率的に進めようとしていました。普通に考えたら、その方がよいと思います。ただ、些細な違いはやはりあったため、ここは仮導入で結構躓きました。

同じテスト仕様でも特定パターンで動作しない

これは、先ほどのコンテンツ差異に近いのですが、また別の角度で、今度は同じコンテンツで同じ内容のテスト、たとえばイベントのテストをしようとしてもうまくいかなかったことがあります。バリエーションが存在していたため、その仕様を網羅できてなかったことが原因です。たとえばストーリーを読んでも、ハッピーエンド・ノーマルエンドのようなエンド分岐がある時と無い時の2パターン存在するとか、そういう細かな違いが調整に時間がかかったというところでした。

自動化導入 課題解決

そこへの課題の解決についてお話しさせていただきます。自動化を導入する際のポイントにも近いところにもなるかと思います。

課題① 端末によっては動作が不安定

端末により動作の不安定があるというところに関しては、ある程度、全ての端末に対応させるのは諦める判断をしました。スマホには様々な仕様があるので、安定動作する端末をしっかり確認し、その端末を4~5台用意していただき、テストを実施するという方法に変更をしております。端末によって落ちる、落ちないみたいなことは勿論ありますが、手動でのテストでも、多端末でやっていくテストはあまりやっておらず、基本的に動作のテストや機能のテストになるので、そこは問題なしと判断しております。

課題②タイトルごとの仕様による動作不良

開発を効率よく進めるために、ある程度まとめてテストをしていこうというお話をしましたが、そこに関しても、テスト自動化ですと細かいプログラムで制御していくため、全仕様網羅がやはり必要だということで、一括開発は一旦諦めました。

©Voltage Inc. All Rights Reserved

そこでスケジュール調整をしまして、実際はこれほどきっぱり分かれていないのですが、たとえば「魔界」というコンテンツが本導入にいったら、並行して、ある程度開発が終わったら次のミラプリを開発していきましょう、というように、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株式会社の仲、桑野によるパネルディスカッションの模様は、後日アップいたします。

1 2 3