asken テックブログ

askenエンジニアが日々どんなことに取り組み、どんな「学び」を得ているか、よもやま話も織り交ぜつつ綴っていきます。 皆さまにも一緒に学びを楽しんでいただけたら幸いです!

(iOS/Android)モバイルアプリの動作確認を効率化するためのテクニック

はじめに

こんにちは。システム部の大澤です。
普段は北米版あすけんのAndroid/iOSアプリを開発しています。
最近は、北米版あすけんのAndroidアプリをメインで開発しています。
今回はアプリの動作確認を効率的に行うテクニックについてです。
アプリをリリースした後に不具合なく動くように確認作業をします。
確認作業の中でとくに不具合発生率が高かったのはFirebaseの行動ログでした。
Firebaseの行動ログの不具合を減らすために、改善とその仕組みを応用したことについてまとめました。

Firebaseの行動ログ

speakerdeck.com

今回は、クックパッドの@yujif_さんがiOSDC 2022で発表されていたスライドを参考にチェックリスト機能を組み込んでみました。

実装内容

(1)確認箇所は必要なところだけに絞りスプレッドシートにまとめる。 イメージです。

(2)スプレッドシートを書き出して、JSONに変換して、アプリに組み込みます。今回はtap eventとpv(PageView)のチェックリストを作成するケースを想定しています。

{
    "result": [
        {
            "id": "1",
            "event_name": "tap_hoge",
            "key": "foo",
            "value": "1",
            "description": "hogeボタンのタップ",
            "used_by_android": null,
            "used_by_ios": null
        },
        {
            "id": "2",
            "event_name": "pv_foo",
            "key": null,
            "value": null,
            "description": "foo画面のpv",
            "used_by_android": null,
            "used_by_ios": null
        }
    ]
}

(3)呼び出されたものをアプリ内にキャッシュし、JSONのチェックリストを照合します。呼び出し回数も表示されます

この機能を実装することでチェックがアプリだけで完結します。 非エンジニアの方にも簡単に確認作業が行えます。

APIの呼び出しの確認

  • サーバのアップグレードで動作確認が必要になり、APIで不具合が起きていないチェックするため導入しました。
  • 導入した理由としては非エンジニアの人にも動作確認してもらう時にどのAPIが呼ばれたかを正確に確認することは大変です。自動チェックすることで確認作業の負担を少なくするのが目的です。
  • 実装は行動ログの確認機能とほぼ同じです。APIが呼び出されたアプリ内にログをキャッシュし、JSONのチェックリストと照合します。呼び出し回数も表示されます。
  • チェックリストを作る流れで使われていないapiを発見し、コードを削除することができました。

Looker Studioによる可視化

  • 上記の動作確認はしたあとでも抜け漏れが発生することはあります。意思決定で必要な行動ログは可視化して、チームの全員が確認できる状態にしています。 作成の仕方は下記の記事を見てください tech.asken.inc

  • 時系列グラフも対応しているので不具合などで異常値が発生すると明確にわかります。
    • e.g. 施策を打っていない画面のPV(PageView)が急激に下落している -> 不具合が発生している可能性がある。

今後やりたいこと

  • 異常値を検知したらSlackに通知する
  • 動作確認の自動化
    • UI Testなどで自動化して、人がやらなくてもよくする。

まとめ

  • 動作確認は非エンジニアでもやりやすいように仕組み化する。
  • 動作確認も完璧ではないので別の仕組みを入れて、抜け漏れを減らす。
  • 仕組み化をすると長期的にはそのコストを回収できる。
  • 仕組みはプラットフォームに依存しないのでiOSでも同様の仕組みを追加可能。

お知らせ

askenでは、エンジニアを募集しています。

www.asken.inc