Android開発の上層テストで失敗しないためのポイントとは

Android開発の上層テストで
失敗しないためのポイントとは


第2回Androidテスト祭りレポート

Androidテスト部
太田健一郎
2012/6/6

今回は、上層にフォーカス

- PR -

 4月28日、日本Androidの会テスト部(以下、テスト部)主催によるイベント「第2回Androidテスト祭り」が都内の東海大学 高輪キャンパスで開催された。

 テスト部は、Androidプラットフォームでの開発において、特にソフトウェアテストに関する情報共有や問題解決を目的とした組織だ。2010年9月に発足し、イベント開催時点では478名のメンバーがいるという。

 今回の第2回 Androidテスト祭りは、参加申し込みが423名となり、国内のテスト専門イベントとしてはJaSST(ソフトウェアテストシンポジウム)に次ぐ大規模のものとなった。

受け付けの様子

 イベント冒頭では、テスト部の長谷川孝二氏が開会のあいさつとして、これまでのテスト部の活動や第1回のテスト祭りの開催内容、第2回の開催経緯を述べた。

日本Androidの会テスト部 長谷川孝二氏

 前回の第1回Androidテスト祭りでは、開発者テストを中心とした下層テストに焦点を当てたが、第2回では、ユーザーや第三者での検証が中心となる上層テスト(上層と下層の区別はソフトウェア開発のV字モデルによるもの)に焦点を当てたイベントとして企画したことを述べた。

 一部、セキュリティ設計CI(Continuous Integration、継続的インテグレーション)など、下層テストの話題も含んでおり、テスト担当者や受注側のユーザー以外にも魅力的な企画も盛り込んだ内容となった。主な講演内容は以下の通り。

セキュリティ設計は開発の初期段階から検討すべし

 続いて、タオソフトウェアの谷口岳氏より、「Androidのセキュリティと品質保証の問題について」と題して招待講演が行われた。

タオソフトウェア 谷口岳氏

 谷口氏は、「Androidアプリの動向として、1年前までは『落ちるアプリ』が多かったが、最近は少なくなってきた。しかし、セキュリティに関しては、外から見ただけで、セキュリティ的にまずいと分かるアプリが多い。Androidのセキュリティの仕組みを知らないと、そもそもセキュリティ設計ができない」と前振りした。

 まず谷口氏は、「何を」「どれくらい」守るのかは、開発するアプリによってさまざまであることを断り、そのうえで、守るべきものを以下の4点に絞り、検討すべきAndroidのセキュリティ設計について、解説した。

  1. アプリ内の著作物データ
  2. アプリの不正利用
  3. アプリ機能の悪用
  4. 使用者の個人データ、プライバシーデータ

【1】アプリ内の著作物データを守る方法

 アプリ内の著作物データを守る方法として、「アプリ内のデータはすべて簡単に抜き取り可能」という前提のうえで、アプリ内にはコピーされると困る情報は置かない、パスワードなどをリソース、ソースコード内に格納しないなどの対策を解説した。

 また谷口氏は、Androidアプリのリソース情報を外部から参照できるアプリとしてタオソフトウェア製の「tPackegeExplorer」を紹介した。

【2】アプリの不正利用への対策

 アプリの不正利用への対策としては、コピー防止インストールや「Google Play Licensing Service」を紹介した。

【3】アプリ機能の悪用への対策

 悪意を持った第三者アプリによってユーザーへ被害を与えるアプリ機能の悪用への対策としては、まず危ない機能は外部から呼び出し禁止とするのを基本とした。そのうえで、呼び出し可能にするときの注意点については、後の「Androidのセキュリティ構造」で詳細に説明された。

【4】個人データ、プライバシーデータの流出への対策

 使用者の個人データ、プライバシーデータの流出への対策としては、「Androidのセキュリティモデルの理解が必要」ということで、同じく後の「Androidのセキュリティ構造」で詳細に説明された。

Androidのセキュリティ構造

 続いて谷口氏は、具体的なAndroidのセキュリティ構造について解説した。「Androidのセキュリティ構造」「ファイルパーミッション」「避けたいパーミッションの組み合わせ」「インテント」「コンテントプロバイダ」などの各領域について解説しながら、SkypeやDropboxなどの実際に発生した脆弱性の例を挙げた。

 SkypeやDropboxといった著名なソフトウェアであっても、Androidのセキュリティ構造に対する知識が不足していれば、脆弱性を抱えた状態でアプリをリリースしてしまう可能性がある。そのため、Androidアプリ開発者はAndroidのセキュリティの仕組みを熟知して、セキュリティ設計およびアプリ開発を行う必要があるという。

 まとめると、Androidアプリにおいて、何をどれだけ守るかをアプリごとに決定し、Androidセキュリティ構造に対する十分な知識を持ってセキュリティ設計およびアプリ開発をし、そのうえで、tPacketCaptureなどのツールを使って、正しいセキュリティ意識に基づいて実装されているかを検証すべきというのが谷口氏の主張であった。講演の詳細は、こちらの資料で確認してほしい。

  1/3

 INDEX
第2回Androidテスト祭りレポート
Android開発の上層テストで失敗しないためのポイントとは
Page1
今回は、上層にフォーカス
セキュリティ設計は開発の初期段階から検討すべし
  Page2
「受け入れテストガイドライン」はユーザーに役立つのか
Androidアプリ開発にはCIツール「Jenkins」が効果的
LT【1】Jenkins+コードレビュー「Geritt」がさらに効果的
  Page3
LT【2】Androidテストの効率化ノウハウ
増加するAndroid端末にはリモートテストが有効か
Androidテストの課題は、まだまだ山積み


 Smart&Social フォーラム トップページへ



Smart & Social フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Smart & Social 記事ランキング

本日 月間