【3/21】タイトルを変えました
拙著『iOSアプリ テスト自動化入門』が発売されました。このエントリで内容のフォローをしていきます*1ので、誤字・脱字、説明の足りないところ等ありましたら、コメントなどでご指摘ください。
- 作者: 長谷川孝二
- 出版社/メーカー: 秀和システム
- 発売日: 2014/03/18
- メディア: 単行本
- この商品を含むブログ (1件) を見る
Amazonさんでは在庫切れのようですが、お近くの書店等でぜひお手に取ってご覧ください。
サンプルコードはGitHubで公開しています。
本書の内容、想定読者、目次などについては、先のエントリを参照してください。
誤字・脱字・補足説明など
1.1.1 テスト自動化の必要性
3.2 GHUnit
- Podfileに記述する識別子が、'GHUnitIOS'から'GHUnit'に変更になりました(ただしiOS 6以上)
3.3 Kiwi
- Podfileに記述する識別子が、'Kiwi/XCTest'から'Kiwi'に変更になりました
- サンプルコードで使用していた
[KiwiStubAdditions stubAndReturn:]
は非推奨になりました。[KiwiStubAdditions stub: andReturn:]
に変更しています
5.3 Frank
- Xcode 5.1でFrankが動作しない(iOSシミュレータの起動に失敗する)問題があがっています。see: frank could not launch simulator after update xcode to 5.1 · Issue #272 · moredip/Frank · GitHub
- Frankの公式リポジトリが変更(移動)されてメンテナンスは引き継がれているようです
5.4 MonkeyTalk
- 関連記事を、@IT連載「スマホ向け無料システムテスト自動化ツール」第1回「システムテスト自動化の基礎知識とMonkeyTalkの使い方 」に書きました。こちらもあわせてご覧ください
5.5.1 KIF(Keep It Functional)
- XCTestに対応したKIF 3.0がリリースされています。Xcode 5.1ではKIF 3.0以降でないとビルドに失敗するようです
6.2.4 ビルドの配布方法
- iOS7.1から、OTAで配布する場合にSSLサーバ証明書が必須になったようです。グローバルサインさんでは証明書を無償で提供されているとのこと。see: iOSアプリ開発者向けSSLサーバ証明書 無償提供|SSL・電子証明書ならGMOグローバルサイン
7.3.2 .travis.yml
CocoaPodsバージョンおよび、Ruby 2.0でCocoaPodsのクラッシュすることについて Travis CI: Common Build Problems に掲載されていました。.travis.ymlには4/15週のアップデートで解消されました。see: The Travis CI Blog: Xcode 5.1, iOS 7.1 and OS X 10.9 for Mac and iOS buildsrvm: 1.9.3
とgem install cocoapods -v '0.29.0'
を書くのが(現状では)良さそうです
8.1 コードカバレッジ
- Xcode 5.1より、カバレッジ取得のための
__gcov_flush()
による回避策は不要となりました。サンプルコードでは以下を変更しています。GenerateTestCoverageFor_iOS7
を使用しない- Makefileの
coverage
ルールを廃止し、test
ルールに統合
執筆に関して
企画自体は昨年前半に決まっていたのですが、仕事のスケジュール、Xcode 5・iOS 7リリースによる様々な影響もあって、ほぼ昨年一杯かかってしまいました。
企画当初からChapter 2にある「ユニットテストの書きかた、テスタブルなプロダクトコード」が中心でした。その軸は変わらなかったのですが、想定よりもChatper 7(CI)、Chapter 8(メトリック)にページを割くことになりました。
そもそも普段は一人で開発しているもので、余りこのあたりの恩恵を受けていませんでした。しかし書き進めるうち、またテスト自動化研究会などで話をするうち、現状ユニットテストすら無いプロダクトにおいて「CIや静的解析から入る」アプローチも有効だと感じ、それがページ数に反映された形です*2。
また、勉強会などで質問を受けるたび、テスト自動化、それ以前にテストに関しての前提がまちまちであると感じており*3、この本がテストおよびテスト自動化へのスタートラインになるよう気を配ったつもりです。
今回、執筆はMarkdown、査読はGitHub上に上げた原稿をもとにIssueを上げていただく形で進めました。自動化の本を書いていながら、スクリーンショットを撮影したり捏造したり、校正以降はpdfを目diffするなど、昔懐かしい感じ(戻りたくはない)の手作業に追われて考えさせられたりもしましたが、なんとか形にすることができました。