End-Users2019-12-16SWETの2名が執筆に加わった「iOSテスト全書」が一般発売されましたiOSSWETグループ、iOS自動テスト領域チームの平田(tarappo)です。長いことおまたせしましたが、12/16(月)に「iOSテスト全書」が一般発売されました。私と同じくSWETの細沼(tobi462)が執筆に加わっています。Nightの開始前に写真を撮りました。本書の一般販売を記念して、本エントリーでは本書全体の概要と見どころについて解説します。併せてすでに発売済みの「iOSアプリ開発自動テストの教科書(以後、教科書本)」との想定読者の違いについても説明します。本書の企画は、私が相談をして進めさせてもらいました。昨年(2018年)「Androidテスト全書」の執筆に関わり、周りからの意見もありiOSアプリ開発においても、このようなテストについての本の必要性を強く感じていました。iOSアプリ開発においては、テスト周りにおいて体系的にまとまった情報はあまりありません。一歩踏み込んだ情報となると、日本語でのネット情報は少なくその情報自体最新のものなのかわからないといった状況でもありました。「iOSテスト全書」の企画を立ち上げる前から、私と細沼は「教科書本」の執筆について話が進んでおり執筆がスタートしはじめていました。この本はその名の通り教科書として最初の一歩として道標になると思ってはいたものの、この本だけでは不足している面もあるだろうとも思っていました。そこで、「iOSテスト全書」としてさらに一歩の情報まで載せた本を世に出したいと思い、執筆に加わってほしい人たちに声をかけました。Androidテスト全書が一般発売されたのは2018年11月5日になります。そこから2週間後、11月19日が執筆者と編集者が揃った「iOSテスト全書」のキックオフの日になります。2019年1月28日にクラウドファンディングがスタートし、このたび一般販売となりました。思っていたよりも時間がかかってしまいましたが、良いものができたと思います。手にとっていただければと思います。本書の目次は次のとおりです。1章:テスト自動化入門2章:ユニットテスト(概要)3章:ユニットテスト(XCTest編)4章:ユニットテスト(Quick/Nimble編)5章:BDDによるアプリ開発6章:UIテスト入門7章:XCUITestを使ったUIテスト8章:サードパーティ製ツールとAppium9章:CI/CD自動テストに対する話から、ユニットテスト・UIテスト、そしてそれらを実行するCI/CDについてまで触れています。この中から細沼が2章〜5章(3章共著)、平田が6章と9章を担当しています。「教科書本」はテストに関するものを幅広く扱い、その名前の通り教科書として最初に活用してもらうことを想定しています。「iOSテスト全書」では、より一歩進んだところにもいけるよう自動テストやCI/CDについてもう少しふみこんで書いてあります。このようなiOSアプリ開発におけるテスト周りにフォーカスした本が2019年に2冊も出たということは凄いことだと思っています。ともiOSアプリ開発をおこなっている方は、本書を手にとって頂いて書いてある内容にチャレンジしてみてください。本書の想定読者はPEAKSのページに書いてあるとおり次の方になります。テストについて興味はあるがどうしたらいいかわからない方テストについてもっとよい書き方があるのではないかと悩んでいる方テストにもっと強くなりたい方CI/CDサービスをもっと活用したいと思っている方iOSアプリ開発に携わる人であれば、なにかしら得られるものがある内容になっています。各章の見どころについてはそれぞれの執筆者が書いてくださると思っています。ここでは、我々が執筆した章についての見どころについて次に説明していきたいと思います。私が担当した2章、4章、5章はそれぞれ明確なコンセプトをもって執筆をさせていただきました。ユニットテストにおいて一般的に利用できるテクニックを紹介しています。個人的な見どころは『テストコードの保守性を上げる』のトピックです。テストコードを徐々にリファクタリングしながら保守性を上げる過程がわかるようになっています。3章は共著として一部のみを担当しました。11から追加された『テストプラン』の利用方法について記載しています。個人的にわかりやすく解説できているのではと感じます。4章は『日本語における最強のQuick/Nimbleリソース』をテーマとして執筆しました。知識を体系的に積んで学ぶという点においては、個人的に不足を感じていました。分かりづらい機能についても、できるだけ丁寧な解説を心がけています。Quick/NimbleとBDD(振舞駆動開発)を利用してサンプルアプリを開発する内容になっています。動的なストーリーとして理解を深められる構成になっています。いった意味で、2章〜4章で学んできた内容を締めくくる、ユニットテストにおけるまとめ的な章になっています。6章、9章の見どころ(平田担当)6章の「UIテスト入門」については、UIテストをおこなっていく上で、次のようなフェーズ単位で気にすべきことをまとめました。導入前に検討したほうがいいこと実装中に考慮すべきこと運用時に注意するべきことUIテストは実装して、動いているのを見ると「なんか凄い!」と実装者自身やチームメンバーが感じやすいです。その結果、闇雲にテストコードを追加し、その結果として負債となるコードが生まれることもあります。落ち着いて何をするべきかを考えることが重要です。そこで筆者の経験などを元に、UIテストが実際に現場で活用できるように、それぞれのフェーズで気にすべきことをある程度まとめました。9章の「CI/CD」では、「CI/CDとはなにか」について厚めに述べています。本来は、この話だけで1冊になってしまうぐらいの話ですが、次のようなトピックに注力し説明をしています。CIとはなにか?CDとはなにか?どのようなワークフローを組むかこのような内容は、特定のサービスに限らず他でも汎用的に利用できるものです。実際に利用した形も見ないとイメージが分かりづらいのも事実です。そこで、述べたワークフローの例をもとにiOSアプリ開発で人気のCI/CDサービスであるBitriseを用いて説明をしています。本章の内容により、自社のプロダクトにおいてどのようなワークフローを用意するのが良いかを考える一助になってくれると筆者としては嬉しい限りです。おわりに今回は、一般発売がはじまった「iOSテスト全書」について解説させていただきました。この本が何かしら皆さんにとってプラスとなり、そして今後テストに関する情報がいろいろな媒体を通して世に出てもらえれば筆者としては嬉しい限りです。我々SWETとしては今後「教科書本」や「iOSテスト全書」を社内で活用するよういろいろとおこなっていく予定です。何かしら具体的な活動はそこまで行えておらず、世へのアウトプット出来ていませんが、今後のアウトプットをお待ちいただければと思います。これらの活動に興味がある方はぜひとも次から書かれている内容を元に仲間となっていただけると嬉しい限りです。仲間を募集中SWETチームでは自動テストやCI/CDを活用する仕事に興味を持った方を募集しています。私や他のSWETメンバーに声をかけて頂くかたちでも大丈夫です。UIテストハンズオンを実施しましたこんにちは。SWETグループの外山(@sumio_tym)です。先日、社...2019-07-19SWETの2名が執筆した「iOSアプリ開発自動テストの教科書」が発売されましたこんにちは、SWETの細沼(@tobi462)です。iOSアプリ開発にお...2019-04-26テストの社内普及のための取り組みとして、Androidテストハンズオンを実施しましたこんにちは、SWETグループの田熊です。(1)リンクプライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。