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

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

紙版発売
電子版発売

A5判/456ページ

定価3,608円(本体3,280円+税10%)

ISBN 978-4-297-10629-4

電子版

→学校・法人一括購入ご検討の皆様へ

この本の概要

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

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

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

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

こんな方におすすめ

  • iOSアプリ開発者
  • 自動テストに取り組みたいエンジニアの方

著者の一言

本書は,iOSアプリ開発における自動テストについて焦点をあてた1冊です。iOSアプリの開発が始まってから約10年が経ちました。昔に比べ開発は複雑さが増しており,対応するべき端末の種類も増えました。そのため,手作業によるテストだけでは,品質を保つことは難しくなってきています。
手作業によるテストのみに頼ると,検証にかかるコストがどうしても増えてしまいます。その結果として,リリースまでの速度が遅くなるという事態になりかねません。逆に,リリースを優先してリグレッションテスト(回帰テスト)を実施しなかった場合,リリース後にバグが発生してしまうという事態も起こりえます。
これらの問題に対する解決策の1つが自動テストです。しかし,自動テストは,かんたんに導入し,運用を続けられるものではありません。また,すべてを解決する“銀の弾丸”というわけでもありません。
ここ数年で,iOSアプリ開発において,自動テストでおこなえることが増えてきています。また,CI/CD(継続的インテグレーション・デリバリ)やデバイスファーム(クラウド上で実際のモバイル端末を利用できる環境)といった,自動テストに関係するサービスも増えてきています。
しかし,自動テストについて体系的にまとまった情報は少なく,もちろんそれらがまとめられた書籍もありません。こういった情報の少なさや,自動テストを始める際の学習コストの高さから,取り組もうとしたものの挫折した,あるいは失敗した経験がある人も多いのではないかと思います。
そのような背景から,本書の企画が立ち上がりました。本書は「iOSアプリ開発における自動テストのための地図」のようなものを目指しました。各トピックについて深くは取り上げていませんが,自動テストを挫折せずに導入・運用できるよう,自動テストおよびそれに関係する情報を幅広く解説しています。
本書では,おもに以下のような内容をまとめました。

  • 自動テストについての考え方
  • XCTestを利用した単体テストやUIテストの作成方法
  • 自動テストに役立つOSSの活用例
  • CI/CDサービスを利用した開発・リリースサイクルの自動化
  • アプリ配信やデバイスファームなどの関連サービスの活用例
  • fastlaneを利用したタスクの自動化
  • XcodeやLLDBなどを活用したデバッグ手法

このような幅広いトピックを扱いつつも,入門的な情報だけにとどまらず,実際のプロジェクトで活用できる実践的な内容となるように注意を払いました。本書が,自動テストの導入や活用につながれば,筆者らとしては幸いです。
(本書「はじめに」より)

この書籍に関連する記事があります!

開発にスピードと品質をもたらす自動テストとは?
アプリの開発において,品質を担保するために欠かせない工程がテストです。

著者プロフィール

平田敏之(ひらたとしゆき)

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などの関数型プログラミングを好む。