【レビュー】iOSアプリ開発自動テストの教科書 〜XCTestによる単体テスト・UIテストから、CI/CD、デバッグ技術まで


【PR】この記事には広告を含む場合があります
  • 出版情報
  • ・著者:平田敏之、細沼祐介/著
  • ・出版日:20190627
  • ・ページ数:456P
  • レビュー数
  • ・週間:0記事
  • ・月間:0記事
  • ・年間:1記事
  • ・全期間:5記事

ジャンルTop10選

目次

●はじめに

■■■第1章 自動テストをはじめる前に
■■1-1 なぜ自動テストを実装するのか
■■1-2 テストピラミッドを意識する
■■1-3 どこまでのテストを自動化するか
■■1-4 テストの目的を把握する

■■■第2章 自動テストにおける落とし穴を避ける
■■2-1 テストケースを独立させる
■■2-2 テストの失敗原因をわかりやすくする
■■2-3 自動テストをどこから追加していくか
■■2-4 不安定なテスト結果に向き合う
■■2-5 テストの実行時間を意識する

■■■第3章 XCTestを利用した単体テスト
■■3-1 XCTest frameworkとは
■■3-2 XCTestを使った最初の単体テスト
■■3-3 アサーション
■■3-4 失敗時のエラーメッセージを指定する
■■3-5 独自のアサーションを作成する
■■3-6 XCTestのライフサイクル(setUp / tearDown)
■■3-7 テストを階層化する - XCTContext
■■3-8 非同期なAPIのテスト - XCTestExpectation
■■3-9 単体テストが書きづらいケースに対処する
■■3-10 APIを利用するModelクラスをテストする
■■3-11 ランダムな順序で実行させる
■■3-12 コードカバレッジを考える

■■■第4章 単体テストに役立つOSSを活用する
■■4-1 Quick/Nimble - BDDフレームワーク
■■4-2 Mockingjay - HTTP通信のモック
■■4-3 Cuckoo - モック用のコードの自動生成
■■4-4 SwiftCheck - Property-based Testing

■■■第5章 XCTestを利用したUIテストの基本
■■5-1 XCUITestとはなにか
■■5-2 UIテストを実装するための最初のステップ
■■5-3 Xcodeのレコーディング機能を利用する
■■5-4 UI要素に設定されている情報を調べる
■■5-5 テストコードを実装する

■■■第6章 XCUITestのAPIを理解する
■6-1 UI要素を特定する
■■6-2 UI要素を操作する
■■6-3 UI要素の状態を確認する
■■6-4 UI要素の情報を取得する - debugDescription
■■6-5 対象のアプリを決める - XCUIApplication
■■6-6 端末を操作する - XCUIDevice
■■6-7 テスト実行時の成果物を保存する - XCTAttachment

■■■第7章 UIテストの一歩進んだテクニック
■■7-1 ユニークなAccessibility Identifierを設定する
■■7-2 UI要素に対する複数の操作をまとめる
■■7-3 アプリのUI変更に対応する - Page Object Pattern
■■7-4 UIテストの実行時間を短縮させる

■■■第8章 CI/CDの基本を押さえる
■■8-1 CI/CDとはなにか
■■8-2 iOSアプリ開発で利用できるCI/CDサービスを選ぶ
■■8-3 CI/CDの結果をフィードバックする
■■8-4 CI/CDサービスと連携するサービス
■■8-5 CI/CDパイプラインを決めて自動化する

■■第9章 fastlaneを利用したタスクの自動化
■■9-1 fastlaneとは
■■9-2 fastlaneを導入する
■■9-3 最初のレーンを定義して実行する
■■9-4 アクションの基本
■■9-5 Fastfileのライフサイクル
■■9-6 Rubyで定数や関数を定義する
■■9-7 プラグインの利用
■■9-8 fastlaneに用意されたアクションを利用する

■■■第10章 アプリ配信サービスとデバイスファームの活用
■■10-1 アプリ配信サービス - TestFlightを利用する
■■10-2 アプリ配信サービス - DeployGateを利用する
■■10-3 デバイスファーム - Firebase Test Labを利用する
■■10-4 デバイスファーム - AWS Device Farmを利用する

■■■第11章 BitriseとCircleCIによるパイプラインの自動化
■■11-1 Bitriseでワークフローを設定する
■■11-2 CircleCIを使ってワークフローを設定する

■■■第12章 デバッグのテクニック
■■12-1 ブレークポイントをもっと効果的に活用する
■■12-2 変数の値を監視する
■■12-3 Xcodeに用意されたデバッグツールを使いこなす
■■12-4 LLDBを使ったデバッグ
■■12-5 シミュレータのデバッグ機能を使う
■■12-6 実機のデバッグ機能を使いこなす
■■12-7 アプリ上でデザインを確認する - Hyperion

■■■Appendix
■■A-1 XCTestを導入する
■■A-2 XCTestを実行する
■■A-3 Bundlerによるツールバージョンの固定

●索引
●参考文献
●著者略歴

概要

「iPhone X、XR、iPad……端末が多すぎて、テストが手動じゃ追いつかない」
「競争が激しいアプリ開発現場で、スピードを落とさずテストしなければ」
「どうして、テストしたはずのアプリで、ユーザーからこんなにバグが報告されるんだ」

競争が激化し、複雑になるiOSアプリの開発において、こんな問題を解決できる手段が「自動テスト」です。

本書は、DeNAの開発生産性や品質を担うSWETグループのエンジニアたちが、iOSアプリ開発の自動テストにフォーカスしてまとめた、これまでにない“テストの入門書”です。自動テストの基本はもちろん、単体テスト・UIテスト、CI/CD、さらに効率的なデバッグのテクニックまでを網羅できます。

iOSアプリ開発でテストに関わるエンジニアはもちろん、開発の現場のすべてのエンジニアが持っておきたい、iOSテスト必携の1冊です。

レビューの一覧

 ・Swiftのモックメモ(自分用)[2023-06-04に投稿]

 ・未経験から新卒3ヶ月で新規事業のiOS開発担当を掻っ攫った時にお世話になった5冊の本[2021-08-20に投稿]

 ・新卒でSIerに入社したらiOSエンジニアになった話[2021-03-09に投稿]

 ・iOSエンジニアが読んだら、ためになりそうな本[2020-06-14に投稿]

 ・Swift で Parameterized-test するライブラリを作ってみた話。あるいは Function builders の使いどころ。[2020-03-13に投稿]


amazonで確認