自動化
ゲーム開発
ソフトウェアテスト


はじめに


この記事について

直近私の所属するQAチームで、VBAを用いたデータ比較の自動化に取り組んだので、その中での取り組みと、取り組みから学んだことをまとめたいと思います。


導入の背景

弊社では、報酬アイテムやボス等のデータを実装する際、以下フローで実装を行っているのですが、仕様書の情報を実装する過程で、ミスが埋め込まれることが多くあります。


  • ガチャやイベント内容を企画

  • 企画内容を仕様書に起こす

  • 仕様書の情報を基に、実装ツールに入稿(=実機に反映)

それを防止するために、仕様書の情報と実装ツールに入稿された情報を目視で比較して、確認を行っているのですが、データ系は、仕様書でも実装ツール上でも、テーブルを使って記載されていることが多く、比較的容易に自動化できそうだったため、導入に踏み込むことにしました。

5647030-842d7c61ae07d9d15a5de4ef9f2bd220e4b59e3d.png


自動化方針


VBAを活用

チーム内でエンジニア経験のあるメンバーにお願いして、Excelのマクロと言われているVBAを用いたツールを実装してもらいました。仕様書と実装ツールからテーブルデータをエクセルに抽出し、形式を揃えて、整合性をとることができます。

以下がVBAで整合性を取っているエクセル画面のキャプチャです。上部の入力フォームに該当の資料リンクを入力すると、それぞれのデータを抽出し、横に並べて、整合性をOK/NGで判定してくれます。

5647033-2a5a6215ba04f564dea9194b8a7f7112cebf8e6e.png


メンテナンスの属人化排除

ただ、資料によってテーブルの形式が大きく異なっており、施策やタイトルごとにも違うため、都度比較列などを設定しなおす必要があり、メンテ工数がかなり大きくなることが想定されました。

そこで、設定フォームを設置してもらい、プログラミングの知識がないメンバーでも細かい調整ができるようにしました。

5647038-061e30dc0fe5c10863e9edfb4cc2e6535e97ba74.png


導入結果


削減工数と精度

初回導入の結果としては、削減工数は1タイトル全施策に反映しても1人日程度なので、効果は小さかったのですが、人力の作業を自動化し、不具合も問題なく検知することができました。


実装フローに課題あり

ただ、実は思いもよらぬところに、大きな落とし穴がありました。

本来仕様書は上流工程で作られる想定で、この自動化を始めたのですが、今回導入トライアルを行ったタイトルでは、実は実装ツールを先に入稿し、その内容を仕様書にコピペしている場合があるということが導入後に発覚したのです。

5647041-2dd92bf4151bb323c88b7a7576c0e92ac510ad8f.png

そもそもこれでは仕様書が意味をなしておらず、比較する必要もないので、まずはフローの改善が優先ということで、この自動化は一旦PENDになりました。


さいごに

結果失敗に終わったというオチなのですが、この経験を通して、導入前に開発フローや検証方法等のプロセス評価が非常に重要であるということを学びました。普段当たり前にやっているプロセスであればあるほど、課題感を認識しづらい or いつしか忘れ去られがちな部分ですが、自動化導入前にはプロセスの妥当性を一度俯瞰的に確認することをお勧めします。