こんにちは、QAチームのtakeです。
2023年8月23日〜25日にかけて行われたCEDEC2023に参加してきました。
なぜCEDECに参加したのか
CEDECは、ゲームを中心とするコンピュータエンターテインメント開発に携わる方を中心に開催されるカンファレンスです。 freeeは、ゲーム業界とは異なる業界ではありますが、 ゲーム業界のテスト自動化の取り組みは他の業界に比べると進んでいます。 そういった取り組みを知ることで自身の知見を広げ、社内の自動テストに活かすために今回CEDEC 2023に参加しました。
セッション
CEDECでは多くのQAやテスト自動化に関するセッションがありました。その中でも印象に残っているいくつかのセッションについて紹介します。
運営が始まった後からでも自動テストを導入して自動化したい ~ 実現する為に何を行ったのか、導入までの工程と得られた効果・ノウハウの共有 ~
概要
キャラの状態異常の組み合わせや開発ブランチなどの組み合わせにより、実施テストのパターンが増えていくので 実施テストを減らすために、ユニットテストを実施していた時期もあるが、モックする部分が多く、あまり効果を感じなかったようだった。
プロダクトチームの効率化が最優先なのでプロダクトチームが自動テストを書かず、自動化チームがテストの内容をプロダクトチームから聞いて自動テストを書いていた。
ゲームを利用するアカウント作成に時間がかかるので、開発用のREST APIを作成したり、再現性を担保するために通信をキャプチャしてパケットを取得していた。 またテストを壊れにくくするためにも、UIは規則性のある共通コンポーネントのようなものを取り入れた方が良いとのことだった。
所感
UIの変更などの変化に強い自動テストにしていくためには、自動テスト側の変更だけでなく自動テストしやすいようにプロダクト側に共通コンポーネントを導入したりする必要もあると感じた。現在freeeでもプロダクト側に共通コンポーネントを導入を普及活動をしているが地道な活動なので苦労しているところでもあるので共感する部分が多くあった。
モバイルゲームのQA課題に組織でチャレンジ!〜子会社を跨いで挑戦するQA効率化の道のり〜
概要
モバイルのQAはプラットフォームの多様化や多言語対応などの影響で実施テストの工数の増加や、多機能提供によるテスト工程の複雑化などが問題となっている。 またプロジェクトごとに扱っているコンテンツが異なるので、トップダウンによる打ち手が難しく、現場からのボトムアップによって解決していた。
デバイス管理には、device farmer(OSS、Androidのみの提供)を利用し、 GPU情報の表示、不要な情報の非表示、端末のカテゴライズ・セキュリティ要件を満たすためVPN接続や利用後のアプリの削除などの独自カスタマイズをして利用していた。
チュートリアルやADVパートなど単純なフローで回数の多いところを優先的に自動化している。ゲームのタイトルが変わったとしても同じようなシーンはあるので、他のプロジェクトへのコードやノウハウの横展開も可能とのことだった。
JenkinsからAPI経由でopenSTFで端末確保し、AppCente CLIでアプリインストールしていた。自動テストワークフレームは、今回の他のスマホアプリの自動テスト同様Airtestを利用していた。
現在は自動テストチームが自動テストのコードを書いているが、今後の拡大に向けて、リリースに支障のない範囲で各プロジェクトチームに書いていってもらえるようにしていきたいという話をask the speakerで聞いた。
所感
現場からのボトムアップから自動テストを実施していくというのはとても大事だと改めて思った。需要のない自動テストは利用されずに壊れていってしまうので、現場で需要のあるテストから自動化する必要があると感じた。また自動テストがスケールした際に現場の需要の把握が難しくなってくるので、現場のメンバーも自動テストを書いていける体制を作っていくことも大切だと感じた。
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
概要
「自前の端末で社内にデバイスファームを構築できる仕組み」であるAirLabを用いた自動テストの取り組みに関する発表だった。
ゲーム実行環境やグラフィック環境の多様化している中でプレイされることが前提となっていたり、短いリリースサイクルでテストが頻繁に必要になっている。
自動テストのフレームワークは、Airtestを利用していた。自動テストと手動テストを両方実施しているQAメンバーもいれば、手動テストのみを利用しているQAメンバーもいるようで、QAメンバー全員で取り組んでいるという訳ではなかった。
AriLab導入によるQAのメリットは、複数環境で一気に回せるようになったのでテストコスト削減されたり、それにより問題の早期発見に繋がっている。また実行回数が増えることで低頻度で発生する問題や端末依存で発生する問題が発見しやすくなった。
所感
自動テストは単純に導入したとしてもメンテナンスコストもかかるのでテストコストの大幅な削減に繋がることは少ない印象だった。ただスマホアプリのように実行環境が多様な場合は、自動テストはかなり効果を発揮するのだなと感じた。
QA事業立ち上げ直後の組織で約3年テスト自動化推進に取り組んだこと
概要
社内推進としての理想は「テスターがビジュアルプログラミングを駆使して、現場で自立したテスト自動化を実施」であったが未経験者のテスト自動化に対する拒否反応があり、「現場で自立したテスト自動化」が全く機能しなかった。
そこで自動化チームを立ち上げ教育と推進を始めた。自動テストを「使う」だけであれば、テスターでも利用可能であったが、ただ使っているだけの状態となっていた。自動テストのメンテナンスが自動化エンジニアだけだと現場のスピードについていけない。さらに組織全体の知識/技術レベルの底上げにならないという課題があった。
理想は「現場で自立したテスト自動化」ができる組織を目指すということなので、様々なタイトルでの自動化テストデモの社内共有を行ったり、自動化テストポータルサイトを解説し自動化テストの第一歩に向けた情報発信を行うなど工夫を行ったようだった。
しかしまだ課題はあるようで自動化テストに対して苦手意識をもってるテスターは多く、テスターが自発的に自動化テストに取り組んでいる割合は低いようだった。
テスターレベルでの広く自立的な自動化テストの活動は難しく、スクリプト実装やメンテナンスに時間・工数がかかり、現実的な運用はまだ道半ばのようだった。
所感
自動化テストを推進し運用していくのはハードルが高いことなのだと感じた。特にテスターが自立して自動化テストをメンテナンスしていくのは難しいことだと改めて感じることができた。現在freeeでもテスト自動化のenablingに取り組んでいるので、他社での取り組みを知ることができて自分たちの取り組みを見直す良いきっかけになった。
終わりに
今回初めてCEDECに参加しましたが、抱えている悩みや問題は業界は違っていても共通なものが多いと感じました。
今回の発表では自動化チームが自動テストを書いていくといった発表が多く、今後スケールしていく際にそのまま自動化チームの人員を増やすのか・プロジェクト側に自動テストを書いてもらうのか、どのような戦略を取っていくのだろうと気になったので、今後もゲーム業界の自動テストに関して関心を持って見ていこうと思います。また他社の取り組みを知ることで、自分たちの取り組みを客観的に評価することができたり、他社の良い取り組みは社内に持ち帰って実際に取り組んでみようと思えました。