イベント
[CEDEC 2023]ゲーム開発のテスト自動化を進めるうえで知っておきたいこと。実例をとおして語られたQA事業のセッションをレポート
講演者として登壇した花房輝鑑氏は,ディー・エヌ・エーの品質本部品質管理部QC第一グループで,プロダクト・サービスの品質管理に従事している。2023年のディー・エヌ・エー入社以前からおよそ20年,非ゲーム企業を含むWebやスマホアプリなどのテストにかかわってきた,品質管理,品質保証のベテランだ。
本セッションでは,ディー・エヌ・エー入社前に3年務めていたゲーム系のソフトウェアテスト会社“A社”での経験をとおし,テスト自動化の取り組みが語られた。
最初に,A社の前に務めていたW社時代の話から始まった。
W社は非ゲーム中心のテスト会社で,若い会社だったこともあり入社すぐに多くの案件を任され,3年目ごろから管理職を任されることに。新たな経験やチャレンジが多く,充実した日々を過ごしていた。
しかし,あるときからキャリアの行き詰まりを感じ始める。徐々に受託型の案件よりも客先常駐型の案件が増え,また業務内容もテストではなくどう人のアサインするかといったものが多くなり,人月型の傾向が強くなったことで,本来やりたかったこととのギャップから閉塞感を覚えるようになったそうだ。
そこで出会うことになるのが,QA事業を開始して間もないA社だった。
話を聞くと,AIを活用した品質管理に革命を起こすという理念を持っており,しかもそれがゲームに対するものということで大きな興味を持つ。さらに情報交換を重ねることでさらにその理念と事業方針に共感し,2019年に入社に至った。
入社当時,A社のQA事業は組織を立ち上げたばかりで,品質管理のAI活用への気概はあるものの,具体的な取り組みはまだこれからという状況だった。まずはAIの基礎研究やツールの開発から始める段階だったのだ。
10個ほどのアイデアをまとめ,エンジニアなどと議論しながら,何を優先的に制作するかといった話し合いからスタートしたが,AIツールはそう簡単に実用化できるものではない。AI研究を進めながら,現実的な取り組みとして,既存のツールなどをベースに,人が機械を使って行うテストの自動化ツールの開発にも注力することにした。
A社がテストベンダーであったこともあり,あくまでAI活用とテスト自動化は,品質管理の立場で有効活用できる形を模索しながら行われた。
開発が進められたテスト自動化ツールは,エンジニア向けのものだけではなく,テスター(非エンジニア)でも使えるような,見た目で分かりやすくビジュアルプログラミング(図形やイラストの組み合わせで行うプログラミング方法)もできるツールも開発した。
こうしてゲームテストの自動化に取り組み,非ゲームのテストと異なる難しさをあらためて感じたという。
バイナリが難読化されており,内部構造の情報を読み取るのが難しい。オブジェクトではなく画像が多用されており,テキスト自体も画像化されていることが多い。独自フォントの使用といったゲーム特有のさまざまな理由により,有効なテスト自動化ツールは“実質Airtest一択”という考えに至った。
社内推進を進めるうえで,当時感じていたこともまとめられた。
テスト自動化の取り組みは一部のパブリッシャの主導により行われており,全体として非スクリプトテストが重要視されている。また,実装される画像などのアセットがテストのギリギリになるまで実装されない/始まった後に実装されるというケースが多く,画像認識ベースの自動化ツールの使いどころが難しく,それによって手動テストから脱却しきれないという状況だった。
このように,当時はテスト自動化に関するソリューションは,テスト会社の中でもまだあまり進んでいなかった。それゆえ自動化の適切な知識や実践事例も乏しく,興味はあるものの漠然な不安や根拠のない不安を抱えている人も少なくない印象だったそうだ。
新しい組織だったA社はここでAIツールとテスト自動化,ソフトウェアテストの手法+少数精鋭のスペシャルチームというアプローチで一勝負に出て現場での実施を始める。
理想としては,テスターがビジュアルプログラミングを活用し,現場での自律したテスト自動化を行うことだったが,しかしその結果,まったく機能しなかった。実際にツールを使用するテスターから,想像以上に未知のモノ(テスト自動化)に対する拒否反応が出たからだ。
それを反省し,テスト自動化への取り組み方を変えながら,社内でのテスト自動化の教育と推進を始める。スクリプトはテスト自動化チームが作るが,使用するのはテスターである。基本的に自動化テストの実行は現場に託す形で,スクリプトは現場で扱える形で,マニュアルと合わせて現場に渡した。
こうして自動化を進めた結果,現場レベルの自動化テストの実行ができるようになり,一つの成果をあげることができた。
一方,問題点も出てきた。スマホゲームの場合,定期的なサービスのアップデートがあるため,スクリプトもそれに合わせた定期的なメンテナンスが必要となる。しかしこれは現場では行えないため,自動化チームのエンジニアが対応することになるが,これでは現場のスピードについていけなくなるという懸念がある。なにより,現場レベルでは用意されたものを使っているだけになるので,これでは組織全体の知識や技術レベルの底上げにはつながらない。“現場で自律したテスト自動化”は果たせていないというわけである。
ここで,テスト自動化チームに教育・推進担当を追加。技術者は専門的な話になりがちなので,元からいるチームのメンバーではなく,協調性が高く未経験者に寄り添える人,物事をかみ砕いて分かりやすく伝えられる人をアサインした。
そうして行われたのが,分からないから不安/恐いといった心理から,分かりやすく自動化の仕組みを伝え,楽しい/面白いと思ってもらえるよう意識を変える取り組みだ。
営業やテスト自動化の研究で作成した,一般的に知られているタイトル向けのデモを共有する。テスト自動化ポータルサイトを解説し,研究資料を公開する。遊び(ゲーム)をとおし,自動化の考え方につながるフローチャートを作成する。テスト自動化大会を会社内で実施(決勝は社内懇親会で)するといった形で行われたという。
それらの取り組みは一定の効果があったそうだ。身近なゲームや遊びを使ったことでイメージが湧くようになり,「よく分からなくて恐いもの」から「楽しい」に変わったというテスターが増えたという。
自らスクリプトを組んで自動化を活用する人も現れるなり,なかにはテスト自動化エンジニアのキャリアを進みたいという人もいたそうだ。
社内推進活動と並行して行われた,社外活動についても語られた。
当時は開発現場レベルでもテスト自動化の特徴や特性が把握されていないケースが多く,まずは「テスト自動化とは」の説明から始まることが多かったそうだ。実際に見てもらうのが早いと,デモを使って紹介することもよくあったという。
具体的な取り組みとしては,自社開催の勉強会,CEDECなどカンファレンスといったセミナーなどでの登壇,自社技術ブログやQiita(エンジニア向けのコミュニティーサービス)でのメディア活動,東京,関西,九州などさまざまな地域で開催した体験会を行った。
この取り組みも,自社が「テスト自動化を頑張っている会社」と認知され,顧客側からテスト自動化の相談が入るようになるという大きな効果があった。また,さまざまなテストケースにおけるより具体的な相談も増え,会社の知見や新たな取り組みにつながる課題も得られたようだ。
こうして,スクリプトテストや複数の極短シナリオをランダム実行することでの疑似アドホックテスト,画面遷移時間の測定などを実現した花房氏は,まとめとして,およそ3年間取り組んだテスト自動化について,課題と所感,そして今後取り組みたいことを語った。
課題として,まだまだテスト自動化に対して苦手意識を持っているテスターが多く,自発的に自動化に取り組んでいる割合が低いことが挙げられた。そういった事情もあり,自動化エンジニアが案件に張り付いていないと,自動化は使われなくなっていくのも問題だ。
自動化に取り組めるかは案件の性質に大きく左右され,その案件内で推し進められるかどうかはマネジメント担当にかかってくる。そういった現場に欠かせないのが自動化エンジニアだが,その育成と増員と案件獲得のタイミングがかみ合わないことも,テスト自動化を進めるうえで難しさを感じた部分だったそうだ。
それらの所感として,テスターレベルでの広く自律的な活用は難しく,スクリプトの実装やメンテナンスの時間や工数が現実的に運用のネックとなり,また自動化を組めるエンジニアが希少なため,取り組みがスケールしにくいと話した。
最後に,現在所属するDeNAで今後取り組みたいこととして,現場レベルでの自動化を扱いやすくする,LLM(ChatGPTなど)を活用したスクリプト作成の機械化について語られ,同セッションは終了した。
4Gamerの「CEDEC 2023」記事一覧
- この記事のURL: