iOSアプリ開発自動テストの教科書 〜XCTestによる単体テスト・UIテストから、CI/CD、デバッグ技術まで 著者 平田敏之,細沼祐介 著 発売日 2019年6月27日 更新日 2019年6月27日
2019年6月27日紙版発売 2019年6月27日電子版発売 平田敏之,細沼祐介 著 A5判/456ページ 定価3,608円(本体3,280円+税10%) ISBN 978-4-297-10629-4 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 「iPhone X,XR,iPad……端末が多すぎて,テストが手動じゃ追いつかない」 「競争が激しいアプリ開発現場で,スピードを落とさずテストしなければ」 「どうして,テストしたはずのアプリで,ユーザーからこんなにバグが報告されるんだ」 競争が激化し,複雑になるiOSアプリの開発において,こんな問題を
speakerdeck.com 日本で開催されるもっとも大きなiOSに関するカンファレンスの1つであるTop | iOSDC Japan 2017に参加し、表題の内容で発表しました。 聴いてくださった方々からは好評のようでよかったです。発表資料は本題と関係のない話がちょこちょこ挟まったり、口頭の説明がないとわからないページがあり、スライドだけでは意図がよく伝わらない恐れがあるので、こちらで内容について補足します。 伝えたかったテーマは「依存が大きく複雑で、単体でテストしづらいコードを単体で動かしてテストできるようにするには」ということです。その題材として一般的に依存が複雑でテストしづらいコンポーネントであるビューを例として取り上げました。ですのでビューやUIをテストするということに絞った話ではなく、どのレイヤーに対しても複雑にいろいろな依存関係があってユニットテストが書けないという状況を改
iOS Test Night #3 - connpass https://testnight.connpass.com/event/49561/ での発表資料です。 👉続き https://speakerdeck.com/takasek/tesutowoshu-kanaiyan-iyi-wos…
概要 iOS Test Night #3 ブログ・Qiitaまとめ枠として参加したのでまとめます。 各発表のトピックを箇条書きでまとめていきます。 初めてのquickで初めてのテスト @ktanaka117:「初めてのQuickで初めてのテスト」 発表資料 Quick/Nimbleとは XCtestと同様のテスト用フレームワーク RspecやSpecta,Ginkgoなどから影響を受けている それぞれRuby,Objective-C(Cocoa),Goのテストフレームワーク Specの基本 テストの文脈に沿った記述を行う context,describe,it expectで期待する結果を記述 まとめ テストのテストコードを書くよりも、テストケースを取り出すことがしんどい テストはテスト対象のパーツを書いている時に書くべし ViewController ⇄ Presenter by RxS
twitter.com 品質やテストの話は往々にして提供するサービスやアプリのコンテキストに依存します。クックパッドのiOSアプリを題材にして、私たちが機能的な品質を保つためにどのようなテストを行ってきたかをお話します。特に、自動化されたテストに関してお話します。UIのリニューアルや様々な取り組みと変化だけではなく、Objective-CからSwiftへの書き換えなど、iOSを取り巻く環境は短い間に大きく変化しています。その中で、どのような取り組みにより最低限の不具合を防ぎ、iOSアプリをリリースし続けてきたのか。また、これにより得られた学びや、これからの取り組みに関してもお話しいたします。 クックパッドアプリのテストを味わう 私はテストエンジニアなのでテストの話をします。 テスト自動化やプロセス改善、組織改善に関わっています。 Swift, Ruby, Java, Elixerなどを使っ
テストの書き方、Quickの使い方 February 9, 2016 最近XCTestを担当しているアップル社員と話す機会によく恵まれています。その方々が言うには、Xcode/XCTestの担当部署の任務は「テストを書く習慣を広め、App Storeにあるアプリの品質向上に貢献する」そうです。 私は数年Kiwi、Specta、Quickのようなテスト・ツールを開発して、メンテしています。そしてここ数年ずっと思っているのが、実は役に立つテストを書くのは非常に簡単で、XCTestでもQuickでも大した違いがない、ということです。 ところが、いいテストを書くのが簡単でも、書き方を説明するドキュメントが意外と少なかったり、古かったりします。そこで去年QuickのDocumentationディレクトリにチュートリアルを置くようにしました。 チュートリアルは英語で書かれていますが、今年はそのチュート
はじめに Xcode 7ではXCTest frameworkの新機能としてUI testing(以降、UIテスト)が実装されました。 UI操作をレコーディングしてテストコードを生成することで繰り返しUIテストが行える便利な機能です。 今回は簡易電卓アプリを作成し、簡単な計算のUIテストを行ってみます。 開発環境 開発環境は下記の通りです。 Xcode 7.0.1 iPhone 6s シミュレータ テスト対象アプリ 今回は加算と減算のみ可能な簡易電卓アプリを用いてテストを行います。 アプリのソースコードはこちらにアップしました。 プロジェクト作成時の「Include UI Tests」 Xcode 7ではプロジェクト作成時に「Include UI Tests」というオプションが追加されました。 UIテストを試す場合は下記の通りチェックをつけましょう。 ※もちろん、ここでチェックをつけなくても
概要 IPv6環境でのiOSアプリの動作テストを、Appleの公式ドキュメントを読んでやってみました。その設定方法をまとめた記事となります。ただし、2015年夏にまとめた情報ですので、今はもっといい方法が出てるかもしれません。 背景 2016年6月1日以降、iOS9ではIPv4だけでなくIPv6環境で正しく動作するかを審査でチェックされます(2016/5/4 Supporting IPv6-only Networks)。 なお、IPv6対応の全体像は、以下の記事をとても参考にさせていただきました。ご参照ください。 [Qiita]iOS9 で必要な IPv6 only Network への対応 iOSデバイスをIPv6で接続するようにする設定手順 以下の図(Apple公式ドキュメントより)のように、外部ネットワークからMacまでは有線でつなぎ、MacからiOSデバイスの間をDNS64/NAT
AppleはOS X 10.11 El CapitanでIPv6対応に向けインターネット共有のオプションに「NAT64ネットワークを作成」オプションを提供しています。詳細は以下から。 AppleはiOS 9とOS X 10.11からIPv6をメインストリームにネットワーク周りの開発を行っており既に”Happy Eyeballs“アルゴリズムの変更を行っていますが、これにより今後はiOSアプリもIPv6への対応を求めています(詳しくは公式およびQiitaへ)。そこでAppleはEl Capitanのインターネット共有のオプションに「NAT64ネットワークの作成」 を追加、IPv6のテスト環境を構築できるようにしています。 NAT64の使い方 NAT64ネットワークを利用するには、まずEl Capitan搭載のMacをEthernet(有線LAN)で接続し、システム環境設定の[ネットワーク]か
7月10日に発表されたばかりのAmazonクラウドの新サービス「AWS Device Farm」は、クラウドの向こう側で大量に用意されたモバイルデバイスの実機に対して、APIを通じて自動的にアプリケーションのテストを実行できるサービスです。 参考:[速報]Amazonクラウドが「AWS Device Farm」発表。モバイルの実機を大量に並べてテストを自動実行。AWS Summit 2015 New York 発表された時点では、AndroidとFireOSに対応したスマートフォンやタブレットの実機が用意されるとのことでした。 その発表から1カ月もたたないうちに、iOS対応のスマートフォンとタブレットの自動テスト環境も8月4日(米国時間)から提供されることが発表されました。 自動テスト環境として下記の自動化フレームワークに対応しています。 Appium (Java JUnit and Ja
XCTest: The Good Parts March 3, 2015 Since my last post about testing, I've been involved with a discussion on Twitter with Apple's Joar Wingfors: @modocache I’d love to talk about that too! @jspahrsummers @rob_rix — Joar Wingfors (@joar_at_work) February 28, 2015 I was especially excited at the opportunity to provide feedback on XCTest: @modocache We have a small dedicated team doing our best to
多くのiOSエンジニアが愛用していたβテスティングサービスのTestFlightですが、2015年2月26日をもってtestflightapp.comが閉鎖になるという公式アナウンスがありました。 TestFlightを運営するBurstly社がApple社に買収され、現在ではiTunes ConnectからTestFlightが利用出来るようになっています。今後は後継となるTestF...多くのiOSエンジニアが愛用していたβテスティングサービスのTestFlightですが、2015年2月26日をもってtestflightapp.comが閉鎖になるという公式アナウンスがありました。 TestFlightを運営するBurstly社がApple社に買収され、現在ではiTunes Connectから TestFlightが利用出来るようになっています。今後は後継となるTestFlight B
はじめに Xcode 6 でユニットテストのようにパフォーマンスをテストする機能が追加されました。 これによって重そうなロジックにパフォーマンスの測定を設定しておき常に計測することができます。 例えば、画像や動画、音声など圧縮データのエンコード/デコード処理、大量のデータをソートする処理、暗号化する処理などが、ざっと思いつく重い処理です。 今回はサンプルとしてログ出力で追加されたprintlnとNSLogのパフォーマンスを比較してみます。 測定してみる パフォーマンスの測定はユニットテストと同じように扱われますが、Assertがある訳ではなくself.measureBlock()の中で呼び出されたコードが計測対象になります。 新規にプロジェクトを作成するとTestクラスが作成されますが、そこにもself.measureBlock()が作成されるようになりました。 今回必要なソース テストさ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く