## はじめに
私はAndroidエンジニア一年目になります。
今まで全くと言っていいほどテストコード書かずにいました。
どう書けばいいかもわからない中「Androidテスト全書」を読み始めました。
アウトプットのため各章をまとめさせていただけたらと思います。
書籍については以下になります。
Androidテスト全書
https://peaks.cc/books/android_testing
なぜテストが必要なのか
- 未然にクラッシュ防ぎ、開発プロセスに強固なテスト基盤を構築することは品質を確保する必要があるから
- Play Storeで星1のレビューのついたアプリを解析したところ、42%もの割合のアプリがクラッシュを含む安定性の問題があった
- Googleは低品質なアプリをPlay Storeのランキングや検索結果の上位には表示されないようにアルゴリズムを改良した
- テストは動く仕様書であり資産である
Androidのテストの種類と方法
-
ブラックボックステスト → 手動テスト
- 外部から観測できる結果が仕様書に沿っていることが重要であり、内部的(コード的に)どのように実装されているかは考慮しない
-
ホワイトボックステスト → テストコード
- 内部的なロジックのチェックに重きが置かれている。仕様が勘違いしていた場合にホワイトボックステストとして正しいが、ブラックボックステストしては期待どおりじゃない可能性がある
-
結論、Androidでは上記二つ両方が用いられる
-
テストの種類
- ユニットテスト
- ユニットテスト(Unit Testing)|ま ソースコードの個々のユニット(構成単位)が意図した振 る舞いをしているか検証するテストです。ソフトウェアを開発する際には一連のデータや処理を モジュールと呼ばれる意味のあるまとまりに分割しながら構築します。ユニットテストはこのモ ジュールが想定するとおりに動作していることを確認するために開発者自らが記述します。
- Local Unit Test
- Local Unit Testは実機やエミュレーターを利用せずに開発マシンから直接高速に実行できるユ ニットテス トの手法。
- Instrumented Unit Test
- Instrumented Unit Testは 実機やエミュレーターを使つてユニットテストを実行する手法
- インテグレーションテスト
- インテグレーションテストは結合テストとも呼ばれ、複数のモジュールを組み合わせたときに正 しく動作することを検証するために行う手法
- UIテスト
- ユーザーが実際にアプリのUl(ユーザーインターフェイス)を操作した ときに画面が正しく反応できるかといった内容を検証する手法になります
- ユニットテスト