本記事はゲームのソフトウェア品質向上アドベントカレンダーの2日目の記事として執筆しています。
##WEBゲームのテスト
私の会社ではWEBゲームをまだまだ絶賛提供中なため、そのテストの需要も存在します。
(ガチャ引いて、デッキを組んで、クエストを進んでボスを倒して…ガラケーでもできて…といったタイプのゲームです)
WEBゲームのテスト環境はPCのブラウザ&実機(スマホやガラケー)の組み合わせが主流で、テスターさんたちは日々ガチャを繰り返したり、イベントを何度もクリアしたりしながら挙動や仕様がおかしくないか検証して、ゲームの品質維持に努めてくれています。
PCのブラウザで繰り返しの検証を行っていると聞くと、導入したくなるのがブラウザ自動操作ツールのseleniumです。
ブラウザ自動操作でテストが行えれば、テスターさんの工数の大幅削減が期待できますが…。
本記事では、私の測定したWEBゲームへのselenium導入効果について記載していきたいと思います。
なお、実際のコードやら技術的な話は素晴らしい先行記事がたくさんあるので、そちらをご参照ください…
##結論
seleniumではWEBゲームのテスター工数は0にできません
##理由と検討内容
大きな理由としては、以下の二つが挙げられます。
- 実機の確認は無くせない
- WEBゲームの構造がselenium検証に適していない
まず第一に、環境差異を考えると実機の確認は削れません、という点が挙げられます。
例えば、ガラケーの低い解像度で画像が問題なく表示されるか…等の環境依存の問題は、実機でないと確認できません。
次に、そもそもWEBゲームがseleniumでのテストに適した作りをしていないといった点が挙がります。
seleniumにWEBブラウザの操作をしてもらうには、触ってほしいWEBページの要素の情報と、やってほしい操作をスクリプト化して教えてあげる必要があります。
この画像はGoogle検索画面のページ構成なのですが、例えば検索文字列を入れるフォームには、「q」という名前が割り振られています。
例えば、seleniumでここに文字を入れてほしい場合には、「qという名前の場所に○○という文字列を入れて」といった形でスクリプトを書いてあげます。
つまりやってほしい操作が複数ページにまたがり、バリエーションが豊富なほどスクリプトを作る手間が増えてしまうのですが…
WEBゲームでは同じ構造のページでも、中の要素の情報がバラバラだったり、イベントごとに全くページ構造が違ったものがリリースされてきたりするので、
スクリプトを作る工数>人力でテストを行う工数
となってしまう可能性すら出てきてしまいます…。
じゃあSeleniumで検証しやすいページ構造にしてもらえばいいのでは?と言う疑問も出ると思うのですが、
これから新しく作るゲームならばともかく、長年運用しているゲームの構造を変えるというのは、予期せぬ不具合につながる危険性を孕んでおり、一筋縄ではいきません…。
これらの理由から、seleniumでテスター工数は0にできないという結論に結びつきます。
そしてそもそも、seleniumは導入できるのか?という疑問も浮かび上がってきますね。
##WEBゲームのテストにseleniumは導入できないのか?
ここも結論から述べると、selenium導入余地がある部分は存在します。
例えば同じ施策内で何度も繰り返し同じ作業をする必要があるもの…
真っ先に思い浮かぶのはガチャですね。
##seleniumを使ったガチャの検証
ガチャについては、人力で検証するよりもseleniumで検証することがむしろ望ましいと思われます。
特にseleniumが優位性を発揮できるのは、以下の2点でしょう。
- 繰り返し処理が必要である
- 排出結果をテキスト化して機械的に処理できる
ガチャの検証では、ガチャ自体の正常動作の確認のほかに、排出内容の検証や、ガチャ実行時のおまけの検証が含まれます。
全ての排出対象アイテムが獲得できることを検証する必要がある場合や、おまけをもらうまでに膨大な回数のガチャを実行する必要がある場合、seleniumによる繰り返し処理が活きてきます。
また、排出内容の目視確認は見落としのリスクがありますが、テキストベースであればselenium自身の機能で情報を取得し、任意のプログラミング言語でテキストファイル化してあげれば、VBA等の後続処理でデータとして取り込み、機械的に処理することができます。
排出結果が画像ベースの場合は難易度は上がってしまいますが、pitaliumなどの画像解析ライブラリを用いることで対応が可能です。
このように、ガチャの検証においてはselenium導入の余地があると言えるでしょう。
##まとめと今後の課題
今回の検討結果としては、
- seleniumはWEBゲームのテスター工数を0にする魔法のツールではない
- ただしガチャなど強味がいかせる部分もある
ということがわかりました。
実際にガチャの自動実行ツールについては既に実装しており、ある程度の効果は見込めています。
今後の課題としては、さらなる導入余地の検討とともに、開発サイドとの連携を深めて、自動化しやすい構造を作り上げていくことだと思いました。
##参考資料
・沢山あるselenium系ツールを解説しているブログ
Selenium何とかっていうツールがやたら色々あるのはどういうわけなのか
・seleniumの使い方解説サイト
Seleniumの仕組み