ゲームデバッグ
LABメインページに戻る
QAテストを自動化するには
自動化の世界をのぞいてみましょう
自動化は、品質保証プロセスの円滑化や効率化につながるものではありますが、同時に高い技術力を要し、難解で心折れる作業でもあります。そこで今回は、自動化の取り組みの事前準備や実行に必要な事柄についてご紹介します。
さぁ、見ていきましょう。
まずは自動化しようとしているものの全体像を正確に把握することが重要です。ゲーム、エンジニアリング、扱っているソフトウェアについて深く理解している必要があります。そこから自動化できそうなモジュールや業務を特定します。
自動化のメリットが大きく、導入を検討する価値のある分野は、機能テスト、リグレッションテスト、テストプロセスなどです(弊社のブログ投稿で、どのような作業が自動化可能なのかをご確認ください)。
要件を整理したら、次はそれを満たす戦略システムを構築します。システム構築には、堅固かつ順応性のある自動化フレームワークが必要です。
自動化フレームワークとは簡単に言うと、テスターが記述したプレーン・ランゲージのテストケースを読み込み、プログラムコードを使ってテストシナリオにマッピングするものです。すると、プログラムコードがテストケースに記述されている内容に沿ってアクションを起こし、結果を出力します。
幅広い機能や設計に対応できるよう、できるだけ順応性が高く、組み替えやすいフレームワークを用いる必要があります。これにより、変更が発生するたびに、変更内容に沿って素早くテストを最適化することが可能となります。
自動化する分野とフレームワークについてのアイデアがまとまったら、次は作業に用いるツールについて目を向ける番です。使用するフレームワークに対しても、構築する独自の自動化スクリプトに対しても、プラットフォームや自動化のタイプに応じて異なるツールが必要となります。自動化ツールの例をいくつか挙げてみます。
ツールを選んだら、いよいよ自動化スクリプトを作成します。エンジニアがテストケースを自動化スクリプトに記述できるよう、テスターはテスト内容を詳細に文書化する必要があります。
初心者の方にありがちなミスとして挙げられるのが、QAエンジニアのアクションをレコーディングし、自動化によってそのアクションをリプレイするというものです。一見、ナレッジを再利用できるシンプルな導入案のように思えます。しかし経験上、レコーディングされたテストはシステム変更の際に破損してしまう可能性が高いです。レコーディングソフトウェアのログはシステムアップデートで処理できないことが多々あります。そのため、アップデートのたびにまた初めからレコーディングし直さなければならなくなってしまうのです。
テストケースの記述やそのスクリプト化に費やした時間が、ここで活かされます。実行ボタンを押して、構築した自動化スクリプトをゲームにセットしましょう。
すべての新しいゲームビルドで自動化テストを実行することで、そのビルドをQAに渡してよいかどうかが確認できます。QAチームに渡る前にビルドの破損に気づくことができ、大幅な時間短縮につながります。
自動化の準備が整い、無事に実行され始めてからも、円滑に運用し続けるためにやらなければならないことはたくさんあります。
具体的に言うと、各自動化テストケースの成功率や新しい変更が加わった際の個々のスクリプトを頻繁に確認することが必要です。ここではバージョン管理が非常に重要となります。アップデート毎にバージョニングをきちんと行っていれば、スクリプトがどの段階で破損したかをすぐに確認し、原因を突き止め、必要な変更を加えることができます。
その他にも、システム変更や新しいニーズに合わせて、フレームワークをメンテナンスし続ける必要があります。
社内 VS 外部委託
自動化の進め方については上記の通りです。さて、自動化を実際に始める前に、社内で自動化を行うのと外部に委託するのと、どちらが制作中のゲームに合っているか考えてみましょう。それぞれにメリットとデメリットがあります。検討すべき事項は以下の通りです:
上記を検討することで、どちらがゲームに合っているか判断しやすくなるでしょう。それぞれのメリットとデメリットについても考えてみましょう。
総合的な比較
外部委託
社内