iOS アプリ開発自動テストの教科書 〜XCTest による単体テスト・UI テストから、CI/CD、デバッグ技術まで
アイオーエスアプリカイハツジドウテストノキョウカショエックスシーテストニヨルタンタイテストユーアイテストカラシーアイシーディーデバッグギジュツマデ
- 著者:
- 平田 敏之、細沼 祐介(ヒラタ トシユキ ホソヌマ ユウスケ)
- 出版社:
- 技術評論社
- 出版日:
- 2019年06月27日頃
- ISBN:
- 9784297106294
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
「iPhone X、XR、iPad……端末が多すぎて、テストが手動じゃ追いつかない」
「競争が激しいアプリ開発現場で、スピードを落とさずテストしなければ」
「どうして、テストしたはずのアプリで、ユーザーからこんなにバグが報告されるんだ」
競争が激化し、複雑になる iOS アプリの開発において、こんな問題を解決できる手段が「自動テスト」です。
本書は、DeNA の開発生産性や品質を担う SWET グループのエンジニアたちが、iOS アプリ開発の自動テストにフォーカスしてまとめた、これまでにない“テストの入門書”です。自動テストの基本はもちろん、単体テスト・UI テスト、CI/CD、さらに効率的なデバッグのテクニックまでを網羅できます。
iOS アプリ開発でテストに関わるエンジニアはもちろん、開発の現場のすべてのエンジニアが持っておきたい、iOS テスト必携の 1 冊です。
技書の森解説
『iOS アプリ開発自動テストの教科書』 (平田 敏之、細沼 祐介 著、技術評論社、2019 年 6 月刊) は、iOS アプリの自動テストの入門書です。副題は「XCTest による単体テスト・UI テストから、CI/CD、デバッグ技術まで」です。版元の概要によれば、DeNA で開発生産性や品質を担う SWET グループのエンジニアたちがまとめた本で、版元が勧める読者は iOS アプリ開発者と、自動テストに取り組みたいエンジニアです。英語の書名は Test Automation Essentials for iOS Apps です。
全 12 章と付録の構成、XCTest から配信とデバッグまで
第 1 章「自動テストをはじめる前に」と第 2 章「自動テストにおける落とし穴を避ける」は、どこまでを自動化するか、テストケースの独立、失敗原因の分かりやすさ、不安定なテスト結果、実行時間といった考え方の土台を扱います。第 3 章は XCTest による単体テストで、アサーション、setUp と tearDown のライフサイクル、XCTestExpectation を使った非同期な API のテスト、ランダムな順序での実行、コードカバレッジまでを並べます。第 4 章は単体テストに役立つ OSS として Quick/Nimble、Mockingjay、Cuckoo、SwiftCheck を取り上げます。第 5 章から第 7 章は XCUITest による UI テストで、Xcode のレコーディング機能から UI 要素の特定と操作、Accessibility Identifier の設定、Page Object Pattern、実行時間の短縮へ進みます。第 8 章からは CI/CD の基本、fastlane によるタスクの自動化、アプリ配信サービスとデバイスファーム、Bitrise と CircleCI によるパイプラインと続き、第 12 章「デバッグのテクニック」はブレークポイント、LLDB、シミュレータと実機のデバッグ機能、Hyperion を扱います。付録には XCTest の導入と実行、Bundler によるツールのバージョン固定が収められています。
自動テストの層の分け方と、UI テストと CI/CD の章
テストピラミッド の考え方では、速く安定した単体テストを土台に厚く積み、画面を実際に操作する UI テストは数を絞ります。第 6 章は XCUITest の API を扱います。第 8 章は 継続的インテグレーションと継続的デリバリー の基本を扱います。本書は単体テストから配布とデバッグまでを 1 冊に収めており、はじめにでは本書の狙いを「iOS アプリ開発における自動テストのための地図」と表現しています。
目次に無い題材と、2019 年刊として読む際の注意
目次にアプリの作り方そのものを解説する章はありません。はじめには「各トピックについて深くは取り上げていませんが」と断っています。また 2019 年 6 月の刊行のため、各サービスの画面や設定の手順は刊行時点のものです。刊行後、Apple は Xcode 16 から使える新しいテストの仕組みとして Swift Testing を案内しており、XCTest で書いた既存のテストと並べて実行し、段階的に移行できると説明しています。言語を問わないテストの本は テスト本の選び方 にまとめています。
本書は、第 1 章と第 2 章で考え方を、第 3 章から第 12 章で単体テスト、UI テスト、CI/CD、デバッグを扱います。
言及した記事 (3 件)
関連記事
テスト本ガイド - テスト設計を学べる技術書の選び方
テストの書き方からテスト戦略まで学べる技術書の選び方を紹介。テストピラミッド、TDD の正しい読み方、テストの ROI の考え方を解説します。
「動くコード」と「良いコード」の間にある本
コードが動くようになった後、次に何を学べばよいのか。「動くコード」を「良いコード」に変えるために必要な知識と、それを効率的に学べる本の選び方を解説します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。