スマホなどのモバイル端末は私たちの生活に欠かせない存在になりました。現在数多くのモバイルアプリがリリースされていますが、長く使い続けてもらえるアプリを作るためには、テストによる品質改善が重要です。
今回はスマホなどのモバイルアプリテストにおける課題と解決策についてご紹介します。
- もくじ
1.スマホやモバイルアプリ開発とその課題
まずは、現在のスマホやモバイルアプリ開発における背景とその課題を見ていきましょう。
【背景1】多様なデバイス・OSへの対応
スマホをはじめとしたモバイル端末のメーカーは多数ある上、AndroidやiOSなどOSの違い、さらにOSのバージョンによる違いもあります。
スマホやモバイルアプリの開発では、それらすべてに対応しなければなりません。
【背景2】位置情報などのモバイルの特性を生かした開発・テスト
地図アプリやタクシーの配車アプリなど、ワイヤレスネットワークやGPS機能で取得した位置情報を利用するアプリの場合、アプリから位置情報をスムーズに取得できるように開発・テストを行う必要があります。
【課題】開発工数とコストの増加
スマホやモバイルアプリは、上記のような多様なデバイス・OS・サービスへの対応やモバイルの特性を生かした開発・テストが求められること、加えてOSアップデートの間隔も短いことから、開発工数とコストの増加が大きな課題となっています。
2.テストの自動化による課題解決
上記では、スマホやモバイルアプリ開発における、開発工数とコストの増加という課題についてご紹介しました。課題解決の糸口の1つとして、テストの自動化が挙げられます。ただし、テストの自動化にはメリットとデメリットがあります。
2-1 自動化のメリット・デメリット
自動化のメリット
テストを自動化することで、テスト要員や工数の短縮によるコスト削減とスピードアップが図れます。
また、繰り返しテストを行うことによる集中力の低下、作業の引き継ぎ時に発生する連携ミスなどの人的ミスが防止できます。
自動化のデメリット
テストを自動化する際のコストもデメリットの1つです。テストを自動化する場合でも手動テストと同様に、テスト計画の作成、テストの検証項目、判定基準や入力値・期待値など、具体的なテスト内容と方法を検討する必要があります。
2-2 自動化すべきテストの条件
上述したように、手動テストがすべて自動化テストに置き換えられるわけではありません。テストを自動化しても大きな効果が得られないこともあります。テストの自動化を検討する際は、以下の条件に該当するかどうかを確認しましょう。
1.テストを繰り返し行う場合
2.テストの手順が同一で、テスト対象のデータが多い場合
2.の条件に関しては、企業や開発チームの状況によるでしょう。1.に該当する例としては、細かなバグ修正を繰り返し行うリグレッションテストが挙げられます。
3.自動化ツールの紹介
さまざまなテスト自動化ツールがありますが、ここでは代表的なものをご紹介します。
3-1 Selenium
ブラウザ上で動くWebアプリ向けのテスト自動化ツールです。ボタンをクリックするだけでブラウザの操作手順を記録・再現できるため、プログラミングが苦手な方でも簡単にテストを実施できます。
3-2 Appium
ネイティブアプリ(AndroidとiOS)、Webアプリ、ハイブリッドアプリ向けのテスト自動化ツールです。既存のソースコードに変更を加えずにテストを実施することができます。
3-3 Jenkins
自動でビルドからデプロイまで可能な、Webアプリ向け継続的インテグレーション(CI)ツールです。スケジューラー機能を活用すれば、定期的なテストを行うようにカスタマイズすることもできます。
3-4 Apache JMeter
サーバーのパフォーマンス測定や負荷テストが可能な自動化ツールです。Apache JMeterを利用する場合は、テスト環境にJavaをインストールする必要があります。
3-5 Ranorex
Windowsアプリ、Webアプリ、モバイルアプリ対応のUIテスト自動化ツールです。UIオブジェクトの認識能力に優れ、仕様変更時のメンテナンスが容易となっています
まとめ
スマホやモバイルアプリのテストは、開発工数とコストの増加という課題を抱えていますが、自動化ツールはこの課題を解決するための1つの方法と言えます。ただし、テストの自動化にはメリットとデメリットがあること、自動化をしても大きな効果が得られるとは限らないことに注意しましょう。