見出し画像

Push通知のテストについて

はじめに

最近でもPush通知の誤送信が話題になり、Push通知の検証方法について興味を持たれる方も多くいらっしゃるようなので、記事を書いてみました。

Push通知の検証環境は現場によって異なると思うので誤送信を防ぐ方法をお伝えすることはできませんが、Push通知についてどのようなことを検証しているかイメージはできるようになると良いなと思っています。

Push通知のテストのチェックポイント

Push通知のテストのチェックポイントとしては以下のポイントがあると思います。
1. 送信内容の確認
2. 送信対象の確認
3. その他(deeplinkの確認など)

1. 送信内容の確認

Push通知の通知バーに表示される文言等の確認です。Push通知の検証というとこれをイメージされる方も多いのではないでしょうか?具体的には以下のような観点があると思います。

* 最大文字数の制限に収まっているか
* Push通知で使えない特殊文字を使っていないか
* 商品名とか値段とか割引率等の情報が正しいか

2. 送信対象の確認

送信対象の確認とは、送信されるべき人に送信されて、送信されるべきではない人に送信されないことを確認することです。

Push通知の送信のタイミングとしては、何らかの操作(例えば自分の投稿した記事を他のユーザーがいいねした場合)がトリガーになる場合や、一定のタイミング(X月Y日から始まるセール)でバッチ実行等により一斉に送信する場合などが考えられます。

何らかの操作がトリガーになる場合はその操作を実行して確認することになりますが、一斉に送信する場合は開発環境とはいえ全ユーザーに送信しないようになんらかの工夫が必要になると思います(ユーザーIDを指定するとか)。送信対象がある程度限定されていて、その限定された条件自体の正しさを検証する(例えば期間中にX円以上購入した人に限定して通知を送る)場合は、対象になるべきアカウントと対象になるべきではないアカウントを用意してバッチ実行をする等の方法によることになると思われます。

送るべきではない相手に送らないというのは、送信の条件を充たしていない場合だけではなく、通知設定をOFFにしている場合も含みます。通知設定はサービス上の設定だけではなく、端末上の設定も含みますが、端末上の設定でOFFにしたのに送られてしまったら、それはOSレベルの問題だと思われますのでサービス運営会社には対応は不可能ですので、特に断りがなければサービス上の通知設定のことだと思います。

また、対象のユーザーでもあまりにもしつこくPush通知送ってしまうと設定をOFFにしてしまったり、サービスを利用してもらえなくなったりするかもしれません。投稿に10人がいいねして10回Push通知が来るとちょっと嬉しくないかもしれません(ただ私の記事には10人もいいねしてくれないのでその心配はありませんが)。1回送ったらX分間送らない等の考慮が必要かもしれません。また、仕様検討レベルの話かもしれませんが、X日間返信が無かった場合のリマインダー等で、返信をするまで何回もリマインダーを送り続けるのは良くないので、リマインダー送信済のフラグを付けるとか、バッチ実行の際の対象期間を重複しないようにする等の工夫が必要かもしれません。

3. その他

いろいろな端末の状態でPush通知のテストを行うことが必要になります。例えば端末の電源OFFの状態でPush通知を送信して、電源をONにしたときにその通知を受け取れるかの確認も必要になります。

Push通知の通知バーをタップした後にアプリが開くページ、いわゆるdeeplinkの検証も必要になります。エッジケースになりますが、ログアウトしてdeeplinkが開くページが開けない、記事が削除済でdeeplinkから開いた記事が存在しない等のケースの確認が必要になることもあります。

また、バックエンドやサーバーサイドのリファクタリング等により既存のPush通知が正常に動作することを確認というのも考えられるとは思います。

まとめ

Push通知の検証と言ってもいろいろ目的があり、どの目的で検証しているのかを意識する必要があります。例えば送信のメッセージ内容は変更しないで送信条件を変更して送信対象のみ変更になる場合は、実際にPush通知を送信しないでSQLを実行する等の結果確認だけでテストは足りるかもしれません。「テスト」等のメッセージをテスト用に使う目的は、考えられるとしたらdeeplink等のクライアント側の変更やリファクタリングかもしれません。その場合でも「いつもご利用ありがとうございます」等の当たり障りのないメッセージが良いかもしれません。

また、どのような方法でPush通知を送信するかにもよりますが、自分の職場で使われているBrazeのようなプラットフォームを利用している場合、開発環境と本番環境の見た目がわかりにくいので開発環境に送ったつもりが本番環境に送ってしまったり等もあるかもしれません。普段から必ずユーザーIDを指定して送信するとかしていれば多くのお客さまに誤送信するようなことは無いかもしれません。

いただいたサポートは生活費にあてます