##はじめに
スマートフォンのゲームアプリのソフトウェアテストで私たちが使っている自動化ツールの今とこれからと、今後導入したいツールについての話です。
##テスト自動化ツール「AutoTester」
テスト自動化のためにAutoTesterというツールを使っています。
ゲーム画面の一部をあらかじめキャプチャーしていた画像で目的のシーンで画像を照合してそこまで進んだと認識したり、アイコンと照合してタップすることでアプリを自動で操作し進めていくことができます。
あくまでもイメージの照合とタッチ操作だけでシナリオを作っていくだけですが、これだけでもかなりの範囲を自動で操作させていくことが可能です。
ただし細かなパラメータを見ながらシナリオを進めていくことが苦手です。
ゲーム画面に表れているテキストや数字は文字としてではなく画像としか認識できません。ですので今はゲームの状態により操作を変化させることは難しいのが現状です。
####これを解決させるため
画面上の文字をテキストとして認識させるためにOCRを利用します。
OCR(Optical character recognition)光学文字認識はテキストの画像を文字コードに変換する技術です。
元々OCRは白い紙に書かれた文字を読み取るところから生まれた技術です。
ゲーム画面のようにテキストエリアに背景が半透明に映っていたり、縁取りされた文字であったりすると文字として全く認識できない状態でした。
###この課題を解決するために
画像の2値化、背景除去、台形補正などの画像補正により読み取り精度を高めて誤認識をなくす技術によりゲーム画面でもOCRでテキストデータを取得することができ始めています。
ゲームアプリ内の情報をテキストとして扱うことにより出来ることが広がります。
例えばこんなことが出来るかもしれません。
- HPが少なくなれば休む
- お金があればガチャを引く
- 入手したアイテムの情報とリファレンスデータを突き合わせてチェックする
- バトル時のダメージ数を読み取って計算間違いがないかチェック
- アドベンチャーパートのテキスト画面を読み取って、校閲ツールを呼んでチェック
##これからのQAツール
今のゲームQAツールは正常系テストのリグレッションテストで使われることがほとんどですが、これからは自動でバグを検出できるツールが必要になってくると思います。
####画像解析によるバグ自動検出
カットシーンのチェックでは動画で撮ってそれを人力で注意深く確認していく作業が辛いところですが、動画のフレーム落ち、ノイズ、カクツキなどを自動で検出できるはずです。
キャラクター・エフェクト・ステータス表示などで優先順位の不正を自動的に検出したいところです。
####音声解析によるバグ自動検出
セリフのテキスト表示とナレーションの相違チェック。
####自然言語解析によるバグ自動検出
次のようなことを自動でテストできると大変助かります。
- キャラクター固有のセリフをAIで把握しておき、新しいセリフと齟齬がないか自動でチェック
- 例えば一人称の私とわたし、ボクとオレなどの間違いを検出
- 語尾などの口調もチェック
このようにこれからは自動でバグを検出できるツールがゲームQAに取り入れられていくものと思います。