Suche senden
Hochladen
Swiftで聞いておぼえるテスト書き
•
0 gefällt mir
•
495 views
Kenji Tanaka
Folgen
俺コン2018で発表した資料です。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 33
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
第1回 プログラマのための計算機科学
第1回 プログラマのための計算機科学
Shinya Hayakawa
はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
Kenta Nagai
言語処理100本ノック紹介
言語処理100本ノック紹介
隆介 小野
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
Kenji Tanaka
Empfohlen
第1回 プログラマのための計算機科学
第1回 プログラマのための計算機科学
Shinya Hayakawa
はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
Kenta Nagai
言語処理100本ノック紹介
言語処理100本ノック紹介
隆介 小野
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
Kenji Tanaka
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
Kenji Tanaka
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Kenji Tanaka
設計時空のリファクタリング
設計時空のリファクタリング
Kenji Tanaka
WACATE 2018 Summer
WACATE 2018 Summer
Kenji Tanaka
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
Kenji Tanaka
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
Kenji Tanaka
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
Kenji Tanaka
TDDやってみよ
TDDやってみよ
Kenji Tanaka
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
Kenji Tanaka
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
Kenji Tanaka
設計に答えはないから探してみよう
設計に答えはないから探してみよう
Kenji Tanaka
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
Kenji Tanaka
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
Kenji Tanaka
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
Kenji Tanaka
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Kenji Tanaka
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Kenji Tanaka
Weitere ähnliche Inhalte
Mehr von Kenji Tanaka
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
Kenji Tanaka
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Kenji Tanaka
設計時空のリファクタリング
設計時空のリファクタリング
Kenji Tanaka
WACATE 2018 Summer
WACATE 2018 Summer
Kenji Tanaka
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
Kenji Tanaka
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
Kenji Tanaka
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
Kenji Tanaka
TDDやってみよ
TDDやってみよ
Kenji Tanaka
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
Kenji Tanaka
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
Kenji Tanaka
設計に答えはないから探してみよう
設計に答えはないから探してみよう
Kenji Tanaka
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
Kenji Tanaka
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
Kenji Tanaka
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
Kenji Tanaka
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Kenji Tanaka
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Kenji Tanaka
Mehr von 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
Jetzt herunterladen