ロコガイド テックブログ

「地域のくらしを、かしこく、たのしく」する、株式会社ロコガイドの社員がいろいろな記事を書いています。

「地域のくらしを、かしこく、たのしく」する、株式会社ロコガイドの社員がいろいろな記事を書いています。

MagicPodダッシュボードによる自動テストのふりかえり

技術部・品質向上グループのきしけん(@takeya0x86)です。今回の記事ではトクバイアプリの自動テストに導入したダッシュボードについて解説します。

トクバイアプリのE2E自動テストについて

トクバイアプリのE2EテストではSaaSの自動テストツールであるMagicPodを使用しています。詳しくは前回の記事をご覧ください。この記事ではこのMagicPodについて、さらに進んだ活用方法としてダッシュボードを紹介します。

現在のMagicPodの使い方

まず、現在MagicPodをどのように使っているかについて簡単に解説します。

テスト対象はAndroid、iOSそれぞれのネイティブアプリです。テストの分類としてはリグレッションテストを自動化の対象にしており、毎回のリリース内容に関係なく同じ内容のテストを実行しています。テストを実行するタイミングは、毎日夜間の定期実行とPull Requestがマージされた後のタイミングです。

Pull Requestは開発の状況に応じて頻度が変わります。したがって日々実行されるテストの回数は変動します。

自動テストのふりかえり

さて、この記事をお読みの皆様は自動テストの結果はどのように管理をしていますか?

自動テストが軌道に乗ってきて安定するとだんだんと見なくなっていくことがあります。またはエラーが発生したときの個々の対応に追われて全体像が見えなくなるというケースもあり得ます。

自動テストは運用しながら都度改善していく必要があります。その時に必要となる指標が成功率や実行時間です。これらの数値を継続してウォッチしていくために便利なものがダッシュボードです。

MagicPodダッシュボード

数値を確認できるダッシュボードがあると便利だなということになりました。ですが、現行のMagicPodには残念ながらダッシュボードはありません。

ないのならば作りましょうということで作りました。magicpod-analyzerです。

https://github.com/takeya0x86/magicpod-analyzer

仕組みについて

こちらのツールはCIAnalyzerというツールを参考にしています。CIAnalyzerはCircleCIやBitriseなどのCIのデータを収集し統一されたフォーマットで保存するツールです。

magicpod-analyzerはMagicPodのAPIにアクセスし、実行したテストの各種データを取得します。取得したデータはGCPのBigQueryに転送されて保存されます。

magicpod-analyzerがツールとして提供するのはデータを溜めるところまでです。貯めたデータはBigQueryにアクセスできる任意のBIツールで閲覧できます。この仕様もCIAnalyzerを参考にしています。

ロコガイドでは収集したデータはRedashで表示することが多いのでMagicPodのダッシュボードもRedashで作成しています。

ダッシュボードの解説

こちらが実際に使っているダッシュボードです。特定の期間を指定して集計・表示しています。AndroidとiOSは同じ項目を表示しています。

MagicPodダッシュボード

それぞれの数値を解説していきます(英語が合っているのかはよくわかっていない)。

実行数 (Total)

その期間に実行したテストの数です。テストケース単位と一括実行ごとの単位それぞれで集計しています。

2週間で45~58回のテストが実行されていることがわかります。前述したようにテストはPull Requestのマージ時に実行されるので、開発が活発であるほど回数は増えていきます。

成功数 (Success)

その期間に成功したテストの数です。実行数と同じくテストケース単位および一括実行ごとの単位で集計しています。

成功率 (Success Rate)

その期間のテストの成功率です。テストケース単位の集計をベースに算出しています。下に出ている95という数値は閾値で、この数値を下回ると文字が赤色になります。この期間では閾値を下回らず順調に成功していることがわかります。

平均実行時間 (Average of Duration)

一括実行1回あたりの実行時間の平均です。AndroidとiOSではほぼ同じテストを実行していますが、iOSの実行時間が1時間に迫っていることがわかります。そろそろ何らかの手を打たないと、フィードバックの速度に問題が発生しそうです。

日ごとの実行数、成功数 (Daily test count)

1日あたりの実行数と成功数をグラフで表示しています。日ごとの開発の活発さがおおむね見えるのと、テストの失敗した時期が見えるようになります。

この期間だと7/11にiOSのテストが多く失敗していることがわかります。これはこの日に入った改修で一部のテストに修正が必要になったのですが、テストの修正が終わるまでに時間がかかり何回かのテストが実行されたためです。ダッシュボードを整備していくとこういった開発・検証の動きが見えてくるようになります。

まとめ

自動テストの結果のふりかえりに便利なダッシュボードを紹介しました。magicpod-analyzerは公開されていますので、MagicPodユーザーの方はぜひ使ってみてください。

MagicPodに限らず、自動テストを実施している方はダッシュボードなどの結果を一目で見られる画面を作っておくと便利です。

最後にお知らせです。

ダッシュボードを含めてロコガイドでのMagicPodの活用方法をインタビューしていただいています。ぜひご覧ください。

https://magicpod.com/customer-stories/locoguide/

また、8/5にMagicPodの5周年記念セミナーが開催予定です。こちらでもロコガイドの取り組みを発表させていただく予定ですので、ぜひご参加ください。

https://trident-qa.connpass.com/event/253794/