WRブログ

スマートフォン(スマホ)アプリのテストのポイント

スマートフォン(スマホ)アプリのテストのポイント

日本では、2008年にApple社のiPhone 3Gが発売されて大ヒットしたことをきっかけに、スマートフォン(スマホ)が爆発的に普及しました。現在では、Google社のスマホ向けOS「Android」を搭載したスマホと、Apple社のiPhoneシリーズが国内シェアを二分する状況になっています。

システム開発の現場においても、スマホアプリの登場は無視することができず、昨今ではシステム開発と同時並行でスマホアプリを開発する案件も増えています。システムの多くがブラウザを介して操作するのと違い、スマホアプリはスマホOSに最適化された形で実装されていたり、端末ごとに挙動が異なったりするため、スマホOS毎にテストを行わなければなりません。

スマホアプリとは?

スマホ端末上で動作するアプリで、「ネイティブアプリ」と呼ばれることもあります。ブラウザを介してアクセスするよりも、サクサクと動作することから、特にWebサービスではシステムとスマホアプリはセットで開発されることが多くなっています。

1. iPhoneアプリ

iPhoneには、Apple社が開発を手がけるiPhone専用OS「iOS」が搭載されています。iPhone向けのアプリ開発は、Apple社の独自規定に沿って開発するため、原則としてApple社のパソコンを使って開発することになります。用いられている言語は、Objective-C・Swiftの2種類で、Xcodeという開発環境で開発していきます。

2. Androidアプリ

Google社が開発・提供している「Android」は、広く普及しているOS「Linux」のカーネルをベースに、プログラミング言語「java」で書かれています。さらにソースコードがオープンソースライセンスで公開・配布されているため、開発への参入障壁が低く、誰でも簡単に開発を始められることがシェア拡大の一因になっています。

スマホアプリの特徴とテストの必要性

従来のシステム開発と最も大きく異なるのは、アプリのアップデート(リリース)のサイクルの速さです。サービス向上やバグの修正を目的として、頻繁にアップデートが行われています。

スマホアプリは、ユーザーがそれぞれの端末で動作させるため、予期せぬエラー(インシデント)の発生確率が高いものです。しかも動作不良そのものや、動作不良を解消するまでのリードタイムが長くなってしまうと、悪い評判・口コミとして情報が伝播され、サービス自体に悪影響を及ぼす可能性があるため、なるべく早く改修してリリースしたいと考えるものです。よって、開発〜テストの工期が短縮化される傾向が強く、一つ一つのプロセスに割ける工数が大幅に圧縮されている状況が続いています。

ところが、ブラウザの種類・バージョンに加えて、端末に搭載されているOSや機種による表示や動作のテストが加わるため、テストケースの数と種類は飛躍的に増加します。

項目が増えるのに、対応できる工数が減るという、非常に厳しい状況の中、品質保証のためにはテスト作業を行わなければなりません。

本ブログでは、テストプロセスについて数回に渡って解説してきました。
テストプロセス vol.1〜テストの準備〜
テストプロセス vol.2〜テストの実行〜
テストプロセス vol.3〜テストの終了〜

これらのプロセスは、スマホアプリのテストであっても同様に進めていくべきものばかりです。システムのテストであっても、スマホのテストであっても、対象の違いはあれど、検討して定義していくべき項目や観点が同じだからです。

そのため、システムとスマホのテストを両方実施する場合は、テスト設計までは原則として同一の観点で進めていき、テストケースの作成時にシステム/スマホそれぞれの特有の項目を抽出して、実行していきます。

まとめ

スマホが登場したことで、エンジニアがテストに振り向けなければならない工数は格段に増えました。一方で、リリースサイクルが非常に短いことで、納期までに十分な工数を確保できないケースが散見されます。

テスト作業は、システム開発・スマホアプリ開発において、プロダクトの品質担保のために絶対に省くことのできない必須の作業項目です。

エンジニアが開発業務に集中し、開発を担っていない別のエンジニアが第三者の視点で検証する、「第三者検証」の観点でスマホアプリのテストを担うサービスも登場しています。

スマートフォンアプリ品質検証

限られた時間の中で品質を最大限に高めていくために、テスト作業をアウトソースする―。そのような選択肢を持っておいてもよろしいのではないでしょうか。

【参考文献】
Android アプリ技法 (秀和システム)