読んだ: Android アプリテスト技法
誕生日のお祝いに頂いたものです。 ありがとうございます!!
- 作者: 生路茂太,井芹洋輝,神原健一,長谷川孝二,松木晋祐,宮田友美,吉澤毅
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- この商品を含むブログ (6件) を見る
内容紹介
本書は 3 章構成になっています。
1 章 Android テスト基礎
1 章は導入のための章で、20 ページにも満たない短いものです。
まず、「テストとは何か」 ということから説明されます。 テストの役割として、
- 欠陥を摘出する
- 対象ソフトウェアの品質レベルが必要十分であることを確認する
- 意思決定のための情報を示す
- 欠陥の作りこみを防ぐ
という 4 つあることが説明されたり、ソフトウェアに対する要求として
- 機能要求 : ソフトウェアによって実現される機能に対する要求。
- 非機能要求 : 可用性や性能、セキュリティや移行性といったものに対する要求。 UI/UX 的な要求もこちらに含まれる。
という 2 つがあることなどが述べられます。
続いて、テストの重要性とソフトウェアテストの考え方が述べられます。 テストプロセスに関して、テストの実装や実行だけをプロセスと考えるのではなく、テストの分析や設計をしっかりとする必要がある、とか、テストのレベルとして
があるといったことなどが説明されます。
2 章 Android テスト実践
この章では、テスト分析の方法や、テストの設計の方法などが説明されます。 ここでは、自動テストだけでなく、例えばユーザービリティのテストとしてユーザーテストを行うといったことなども述べられます。 自動テストできるテスト項目としても、例えば入力値の境界値テストに関してなどが説明されます。
通常のソフトウェア開発でも、要求から要件を定義して設計に落とし込むという流れが重要なわけですが、当然ながらテストでもその流れが重要ということですね。
3 章 Android テスト Tips
2 章までは Android に限った話ではないことが主でしたが、3 章は Android の自動テストに関する章です。 Eclipse のスクリーンショット付きで手順を解説していたり、サンプルコードが豊富だったりで丁寧な印象です。
内容的には、
- Android アプリ開発時の標準のテストフレームワークは JUnit 3 である
- Android SDK では
MoreAssert
クラス が提供されている - Activity のテストをするために、
ActivityUnitTestCase
クラス やActivityInstrumentationTestCase2
クラス を使用できる - タッチ操作は
TouchUtils
クラス を使って模倣できる - Service のテストをするために
ServiceTestCase
クラス を使用できる - Loader *1 のテストをするために
LoaderTestCase
クラス を使用できる - テスト用の SQLite データベースを作成するために、
SQLiteOpenHelper
にRenamingDelegatingContext
を渡してデータベースのファイル名を製品版とは違うものにできる - Mockito でモック生成することができる
- UI テストツールとして次のようなものがある:
- Robotium : ユーザー操作のための豊富なメソッドが提供されている。 複数 Activity にまたがるテストなども記述しやすい。
- monkeyrunner : 絶対座標指定で UI 操作を行うというのが特徴。
- uiautomator : Android SDK Tools r21 以降で標準添付されている。 API level 16 以降のテストに使用できる。
というようなことが書かれています。 他にも、電波環境の悪い状況のテストをするために電子レンジの中に端末を入れるとかそういう話もありました。 アプリの品質について、App Quality が紹介されていたり。
感想
ざっくり言ってしまうと初心者向けの本だなーと思いました。
狭い観測範囲における個人的な実感として、web 系とかスマートフォンアプリ界隈の開発ではテストの分析とか設計とかちゃんとされてないことが多い (テストがないこともありますね) と思うので、そういう点では 2 章においてそういうことが説明されてるのは良いことかと思います。 とはいえ、本書の 2 章だけでは内容的に十分ではないし、あくまで導入的な位置づけになると思います。
3 章についても、ツールの紹介やクラスの紹介など、web 上で調べればわかることが多く書かれていますので、ある程度 Android アプリ開発に詳しくて、他分野でのテストの経験がある人であればそれほど重宝しないと思います。 他分野でのテストの経験が少ないない人や、IDE の操作にまだ慣れてないような人が読むと良さそうです。 「JUnit って何?」 というような人なんかは、勉強になるのではないでしょうか。