スマホアプリの忘れちゃいけない5つのテスト観点
こんにちは!おおはしりきたけです。今日はスマホアプリの忘れちゃいけないテスト観点について書いてみたいと思います。
はじめに
前提条件として、機能要件のテストは、やっている前提です。ここでは、テストの観点で忘れがちなポイントを備忘の為にも書いておきます。もっと深いとこ掘れば色々と細かいテスト観点というのは出てきますが、まずは、以下の5点を抑えておく必要があるかなと思います。
1.オフライン
スマホはオンライン/オフラインの切り替わりが頻繁に起きます。たまにオフラインだとローディングのままずっと返ってこないアプリありますよね?そういったアプリはオフラインの場合を想定していない為、タイムアウトにもならなかったりします。オフライン時のリクエストでどのような動きになるのかをしっかりと確認する必要があります。オフラインで動くところ、サーバーにリクエストを投げるのでオンラインじゃないと動かないところなど、各処理ごとにアプリ側の動作というのは変わってきます。
2.スリープ復帰
ホームボタンを押下し、スリープさせることは多々あります。アプリが処理を行っていないときは、特に問題ないですが、アプリが処理中の時のスリープからの復帰がどのように動くのかは、確認しておく必要があります。イベントがactive/ deactiveになった時、バックグラウンドに行ったときどうなるかなど、確認する必要があります。以下はiOSの場合に発生するイベントです。これらの処理が走った時、アプリはどのような動きをするのか?確認しましょう。
// アプリがアクティブでなくなる直前に呼ばれる - (void)applicationWillResignActive:(UIApplication *)application; // アプリがバックグラウンドになったら呼ばれる - (void)applicationDidEnterBackground:(UIApplication *)application; // アプリがバックグラウンドから復帰する直前に呼ばれる - (void)applicationWillEnterForeground:(UIApplication *)application; // アプリがアクティブになったら呼ばれる - (void)applicationDidBecomeActive:(UIApplication *)application; // アプリ初回起動 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; // アプリ終了 - (void)applicationWillTerminate:(UIApplication *)application;
3.日付と時刻
業務的なアプリだと時間を意識することは、少ないかもしれませんが、ゲームなどは時間によって回復などがあります。端末側で時間を操作することにより、チートをすることも可能です。アプリがしっかりと時間を意識した作りになっているか?確認をしておきましょう。
4.セキュリティ
セキュリティというと幅広くなってしまいますが、アプリ内のデータなどにアクセスされてデータが書き換えられないかなど、対応しておく必要があります。ツールを使えばいくらでもデータを見ることはできます。データを見られてもしっかりと保護される仕組みになっているか。アプリの機能には直接関係ないかもしれませんが、データの扱いに気を配っておく必要があります。データを見られない、データを抜かれたくない、データを復元されたくないということを完璧に求めてもイタチごっごになってしまいます、扱うデータの重要度を検討し、どこまでの対応を行うかを検討しましょう。
5.容量
滅多に起きる事ではないですが、アプリでデータをダウンロードしようとしたときに端末の容量がいっぱいで、書き込もうとするとIOExceptionなど発生します。アプリでこれらをハンドリングしているのか?その場合どういう処理が走るのか?細かいところですが、確認しておきましょう。
まとめ
テスト観点と書きましたが、実際のところは設計時から必要な観点です。Webアプリと異なり、スマホアプリは上記のように気を付けるべきことが洗い出せばきりがないくらいあります。アプリ設計時に機能要件以外にどういった観点に気を付けなければならないかをしっかりと考えアプリ開発を行っていきましょう。スマホアプリのテストで、どのような確認が必要かを考えると、設計で必要な観点も洗い出されると思います。テストフェーズでバタバタしないようにするためにも、最初から確認すべきポイントは抑えておきましょう。