版元ドットコム

探せる、使える、本の情報

文芸 新書 社会一般 資格・試験 ビジネス スポーツ・健康 趣味・実用 ゲーム 芸能・タレント テレビ・映画化 芸術 哲学・宗教 歴史・地理 社会科学 教育 自然科学 医学 工業・工学 コンピュータ 語学・辞事典 学参 児童図書 ヤングアダルト 全集 文庫 コミック文庫 コミックス(欠番扱) コミックス(雑誌扱) コミックス(書籍) コミックス(廉価版) ムック 雑誌 増刊 別冊 ラノベ
iOSアプリ開発自動テストの教科書 ~XCTestによる単体テスト・UIテストから、CI/CD、デバッグ技術まで 平田 敏之、細沼 祐介(著/文) - 技術評論社
..

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

発行:技術評論社
A5判
456ページ
定価 3,280円+税
ISBN
9784297106294
Cコード
C3055
専門 単行本 電子通信
出版社在庫情報
不明
書店発売日
登録日
2019年5月23日
最終更新日
2019年6月12日
このエントリーをはてなブックマークに追加

紹介

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

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

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

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

目次

●はじめに

■■■第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によるツールバージョンの固定

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

著者プロフィール

平田 敏之、細沼 祐介  (ヒラタ トシユキ ホソヌマ ユウスケ)  (著/文

●平田敏之(ひらた としゆき)
DeNAのSWET(Software Engineer in Test)グループ所属。グループウェアの開発、女性向けWebサービスやiOSアプリ開発を経て現職のSWETにたどり着く。現職では、iOSやCI/CDに関する領域を主に担当。テストに関する勉強会である「Test Night」を立ち上げ、SWETメンバーと共に定期開催している。

●細沼祐介(ほそぬま ゆうすけ)
DeNAのSWET(Software Engineer in Test)グループ所属。JavaのテスティングフレームワークであるJUnitや、XP開発におけるテスト駆動開発について、黎明期で触れ、自動テストに興味を持つ。Web、Windows、iOSなど様々なプラットフォームでのアプリケーション開発を経て、自動テストの専門部署であるSWETにたどり着く。現在はiOS/Go言語の自動テスト領域を担当。SwiftやHaskellなどの関数型プログラミングを好む。

上記内容は本書刊行時のものです。