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