Submit Search
Upload
Swiftで聞いておぼえるテスト書き
•
0 likes
•
495 views
Kenji Tanaka
Follow
俺コン2018で発表した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 33
Download now
Download to read offline
Recommended
『オブジェクト指向入門』より 第1章 ソフトウェアの品質 http://atnd.org/events/42135 ※「書籍の要約」にあたるとの指摘を受けましたので、出版社に確認中です。(8/9)
第1回 プログラマのための計算機科学
第1回 プログラマのための計算機科学
Shinya Hayakawa
長岡 IT開発者 勉強会(NDS) 第31回勉強会(2013/04/06) 発表資料
はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
画面テストに対してもAPIを利用してみては?という話
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Gotanda.unity #18: 発表資料
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
Kenta Nagai
LT会での資料
言語処理100本ノック紹介
言語処理100本ノック紹介
隆介 小野
iOSDC 2019の資料です。 https://fortee.jp/iosdc-japan-2019/proposal/123b9027-1aea-4557-997e-fd2c5275974b
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
2019/06/11開催のpixiv App Nightの登壇資料です
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
Bonfire iOS #5 の登壇資料です。 https://yj-meetup.connpass.com/event/113035/
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
Kenji Tanaka
Recommended
『オブジェクト指向入門』より 第1章 ソフトウェアの品質 http://atnd.org/events/42135 ※「書籍の要約」にあたるとの指摘を受けましたので、出版社に確認中です。(8/9)
第1回 プログラマのための計算機科学
第1回 プログラマのための計算機科学
Shinya Hayakawa
長岡 IT開発者 勉強会(NDS) 第31回勉強会(2013/04/06) 発表資料
はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
画面テストに対してもAPIを利用してみては?という話
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Gotanda.unity #18: 発表資料
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
Kenta Nagai
LT会での資料
言語処理100本ノック紹介
言語処理100本ノック紹介
隆介 小野
iOSDC 2019の資料です。 https://fortee.jp/iosdc-japan-2019/proposal/123b9027-1aea-4557-997e-fd2c5275974b
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
2019/06/11開催のpixiv App Nightの登壇資料です
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
Bonfire iOS #5 の登壇資料です。 https://yj-meetup.connpass.com/event/113035/
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
Kenji Tanaka
2019/01/15開催の「iOSアプリ設計ナイト」の登壇資料です。 https://pixiv.connpass.com/event/112561/
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2018/01/10開催の「App Client Melting Pot #1」の発表資料です。 https://app-client-mp.connpass.com/event/112973/
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
2018/12/21開催のROPPONGI.swift 第6回の登壇資料です。
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
2018/12/14に開催されたHAKATA Test Nightの登壇資料です。
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
Kenji Tanaka
2018/12/10開催のiOS Test Night #9の発表資料です。 https://testnight.connpass.com/event/102778/
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Kenji Tanaka
iOSDC 2018での登壇資料です。
設計時空のリファクタリング
設計時空のリファクタリング
Kenji Tanaka
iOS Test Night #8の資料です。 https://testnight.connpass.com/event/90959/
WACATE 2018 Summer
WACATE 2018 Summer
Kenji Tanaka
2018/02/02開催のサポーターズ勉強会の資料。
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
Kenji Tanaka
SWWDC(仙台iOS開発者コミュニティ)-34 反省したり振り返ったりするプレゼン会 兼 忘年会2017 https://atnd.org/events/93483 の登壇資料。2017年を振り返る
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
Kenji Tanaka
2017/11/22に開催された「エンジニアのためのブログ講座」の資料です。
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
Kenji Tanaka
社内勉強会(プリサーブートキャンプ)での資料
TDDやってみよ
TDDやってみよ
Kenji Tanaka
2017/10/03 俺コン LT資料 https://orecon.connpass.com/event/64285/
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
Kenji Tanaka
iOSDC 2017 前夜祭の資料 #iosdc
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
2017/07/15に開催したSWWDC × AKIBA.swift in Sendaiの登壇資料です。
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
Kenji Tanaka
2017/07/01に開催された Developers.IO 2017 の発表資料です。 http://dev.classmethod.jp/news/developers-io-2017/
設計に答えはないから探してみよう
設計に答えはないから探してみよう
Kenji Tanaka
GEEK GARAGE iOS vol3 の発表資料です https://geekgarage.connpass.com/event/58698/
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
Kenji Tanaka
WWDC After Party 2017 @Ebisu の登壇資料です。 https://pre-wwdc.connpass.com/event/56731/
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
Kenji Tanaka
2017/06/20に開催された「参加者と振り返るWWDC 2017」の資料です https://supporterzcolab.com/event/63/
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
Kenji Tanaka
2017/06/13 AKIBA.swift WWDC特集の資料
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Kenji Tanaka
iOS Test Night #4での登壇資料です。 https://testnight.connpass.com/event/54316/
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Kenji Tanaka
More Related Content
More from Kenji Tanaka
2019/01/15開催の「iOSアプリ設計ナイト」の登壇資料です。 https://pixiv.connpass.com/event/112561/
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2018/01/10開催の「App Client Melting Pot #1」の発表資料です。 https://app-client-mp.connpass.com/event/112973/
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
2018/12/21開催のROPPONGI.swift 第6回の登壇資料です。
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
2018/12/14に開催されたHAKATA Test Nightの登壇資料です。
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
Kenji Tanaka
2018/12/10開催のiOS Test Night #9の発表資料です。 https://testnight.connpass.com/event/102778/
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Kenji Tanaka
iOSDC 2018での登壇資料です。
設計時空のリファクタリング
設計時空のリファクタリング
Kenji Tanaka
iOS Test Night #8の資料です。 https://testnight.connpass.com/event/90959/
WACATE 2018 Summer
WACATE 2018 Summer
Kenji Tanaka
2018/02/02開催のサポーターズ勉強会の資料。
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
Kenji Tanaka
SWWDC(仙台iOS開発者コミュニティ)-34 反省したり振り返ったりするプレゼン会 兼 忘年会2017 https://atnd.org/events/93483 の登壇資料。2017年を振り返る
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
Kenji Tanaka
2017/11/22に開催された「エンジニアのためのブログ講座」の資料です。
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
Kenji Tanaka
社内勉強会(プリサーブートキャンプ)での資料
TDDやってみよ
TDDやってみよ
Kenji Tanaka
2017/10/03 俺コン LT資料 https://orecon.connpass.com/event/64285/
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
Kenji Tanaka
iOSDC 2017 前夜祭の資料 #iosdc
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
2017/07/15に開催したSWWDC × AKIBA.swift in Sendaiの登壇資料です。
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
Kenji Tanaka
2017/07/01に開催された Developers.IO 2017 の発表資料です。 http://dev.classmethod.jp/news/developers-io-2017/
設計に答えはないから探してみよう
設計に答えはないから探してみよう
Kenji Tanaka
GEEK GARAGE iOS vol3 の発表資料です https://geekgarage.connpass.com/event/58698/
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
Kenji Tanaka
WWDC After Party 2017 @Ebisu の登壇資料です。 https://pre-wwdc.connpass.com/event/56731/
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
Kenji Tanaka
2017/06/20に開催された「参加者と振り返るWWDC 2017」の資料です https://supporterzcolab.com/event/63/
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
Kenji Tanaka
2017/06/13 AKIBA.swift WWDC特集の資料
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Kenji Tanaka
iOS Test Night #4での登壇資料です。 https://testnight.connpass.com/event/54316/
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Kenji Tanaka
More from Kenji Tanaka
(20)
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
設計時空のリファクタリング
設計時空のリファクタリング
WACATE 2018 Summer
WACATE 2018 Summer
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
TDDやってみよ
TDDやってみよ
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
設計に答えはないから探してみよう
設計に答えはないから探してみよう
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Swiftで聞いておぼえるテスト書き
1.
@ktanaka117 ダンボー⽥中 俺コン Day2 Track
A 20:40 〜 Swiftで 聞いておぼえるテスト書き
2.
⾃⼰紹介 • ダンボー⽥中/ktanaka117 • 百合好きのダンボールの⼈ •
テスト、設計、リファクタリング がホットワード • 「愛してる」を知りたいのです。
3.
もくじ • 対象聴衆 • トークの⽬的 •
想定外に⽬を向ける • むかしばなし • 単体テストはロジックに • ライヴコーディング • FAQ
4.
対象聴衆 • テストってなに?と思う⽅ • テストをどう書き始めるべきか悩む⽅ •
テスト初⼼者の⽅ • テスト経験者の⽅
5.
6.
7.
「エンジニアは想定外を考える仕事だよ」 by ⽗(ソフトウェアエンジニア)
8.
9.
⼩学⽣Danbo-Tanaka 幼い頃からPCゲームをたしなむ⼦供がおりました。 基本プレイ無料のオンラインPCゲームが流⾏りだした頃。
10.
その頃は⾃分⽤のPCを持っておらず、 Adminである⽗親が管理する家族共⽤PCがあるのみでした。 ⼩学⽣Danbo-Tanaka
11.
権限を持たない⼩学⽣は、インストールするソフトウェアや サービスの安全性をAdminに説明する必要がありました。 Admin ⽗
12.
権限を持たない⼩学⽣は、インストールするソフトウェアや サービスの安全性をAdminに説明する必要がありました。 Admin ⽗
13.
家族に迷惑をかける可能性がある部分= ウイルスなどソフトウェアの信頼性やお⾦の話、 住所や電話番号などのプライバシーに関わる情報の取り扱い
14.
⼈権を求めて、ゲームの利⽤規約を読み漁る。 • 「基本プレイ無料」 →有料になるのはどういうとき? →有料になったらいくらかかるの? • 「退会後、半年はユーザーの情報を保持します」 →退会しなかったらどうなる? →半年が経過したらユーザー情報はどう破棄される?
15.
⼈権を求めて、ゲームの利⽤規約を読み漁る。 • 「基本プレイ無料」 →有料になるのはどういうとき? →有料になったらいくらかかるの? • 「退会後、半年はユーザーの情報を保持します」 →退会しなかったらどうなる? →半年が経過したらユーザー情報はどう破棄される?
16.
⽇常⽣活にも潜むテストケース • 地震が起きたら? →この机の下に隠れたら⽣き残れそう →家に備蓄品が⾜りないので、死ぬしかない • 登壇直前に⾵邪をひいたら? →仲間に連絡してキャンセルする →全⼒で治して翌⽇の空き時間に登壇する
17.
テストの書き⽅ • 「この条件で」 • 「この操作をしたら」 •
「この結果になること」
18.
仕様を明確に理解すること 定まっていない仕様を決めること
19.
仕様を明確に理解すること 定まっていない仕様を決めること
20.
まとめ:テストを書くには • 仕様を明確にする • 定まっていない仕様を決める •
正常系以外の、想定外に⽬を向ける もしものときにどうするか考えておく
21.
22.
テストの書き⽅ • もしもの時にどうするか=条件分岐
23.
24.
25.
Q. なんで⾃動テストを書く必要があるの? A. ⼿動テストが⾯倒だから なにか変更を加えたとき、 既存の実装を壊していないか確認する必要がある。 全ての「もしも」を⼿動ですべて確認できますか?
26.
Q. どこからテストを書くべき? A. 慣れた⼈は、重要な箇所から。
初⼼者の⼈は、⼊れられそうなところから。 テストにもメンテナンスコストが発⽣します。 アプリにとってクリティカルなところから優先的に⼊れるべきですが、 初⼼者は⼊れられるところから⼊れるで良いと思っています。
27.
Q. どれくらいまでテストケースを考えるべき? A. 不安を解消できるところまで。 開発を進めるのに、⾃信を持って開発を進められるところまで。 開発をするエンジニアが探索的テストまで担保する必要はないと思う。
28.
参考 どうやってテストケースを 考えれば良いか (テスト設計)
29.
参考 どうやってテストを書いていくか
30.
参考 Swiftではどう書くか
31.
宣伝 iOSDC Reject Confも登壇します。 OSSにテストを⼊れていく話と ライヴコーディングします。
32.
33.
⽥中賢治 GitHub: ktanaka117 Twitter: @ktanaka117
Download now