Upload
Download free for 30 days
Login
Submit search
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
2 likes
8,396 views
T
Tomohiro Yamasaki
社内勉強会で使った資料です
Technology
Read more
1 of 44
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
More Related Content
PPTX
スマホフロントエンド最速化手法
zaru sakuraba
PDF
今さらながらRSpecに入門してみた
zaru sakuraba
PDF
ほんわかSwift勉強資料
kouhei kawamata
PDF
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
Yoshinori Kobayashi
PDF
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
PDF
プログラマー
Kouhei Sutou
PDF
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
PDF
SEゼミ2015 - 練習
Kouhei Sutou
スマホフロントエンド最速化手法
zaru sakuraba
今さらながらRSpecに入門してみた
zaru sakuraba
ほんわかSwift勉強資料
kouhei kawamata
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
Yoshinori Kobayashi
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
プログラマー
Kouhei Sutou
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
SEゼミ2015 - 練習
Kouhei Sutou
What's hot
(20)
PPTX
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
慎一 古賀
PPTX
人の言うことを簡単に信じるな!
Mitsuo Kawashima
PDF
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
PPTX
自動的に開発環境設定(1)
Phạm Văn Hùng
PDF
リーダブルコード勉強会 in 筑波大 - 練習
Kouhei Sutou
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
PPTX
マークアップの作業効率をあげよう!
Mitsuo Kawashima
PPT
Shibuyajs24 JavaScript.GIF x LiveConnect
takesako
PPTX
Vue Nativeに挑戦してみた
tagashira jun
PDF
Devlove仙台20130309 レガシープロジェクト脱出大作戦
Masaki Yamamoto
PDF
MTプラグイン入門以前
Hiroshi Yamato
PDF
プログラマーのお仕事
Kohei Kadowaki
PPT
20090801phpstudy Sanemat
Kenichi Murahashi
PDF
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
PDF
Firefox os勉強会 2nd WEB屋さんがWEBアプリを作ってみた
Nobuhiro Ueda
PDF
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
PPTX
Web開発の 今までとこれから
Shinichi Takahashi
PPTX
知ってるようで知らないWeb基礎セミナー
ukkyo
PPTX
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
Kenji Fukumoto
PDF
今更Cake2.3でWebAPIを作った話
rittyan
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
慎一 古賀
人の言うことを簡単に信じるな!
Mitsuo Kawashima
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
自動的に開発環境設定(1)
Phạm Văn Hùng
リーダブルコード勉強会 in 筑波大 - 練習
Kouhei Sutou
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
マークアップの作業効率をあげよう!
Mitsuo Kawashima
Shibuyajs24 JavaScript.GIF x LiveConnect
takesako
Vue Nativeに挑戦してみた
tagashira jun
Devlove仙台20130309 レガシープロジェクト脱出大作戦
Masaki Yamamoto
MTプラグイン入門以前
Hiroshi Yamato
プログラマーのお仕事
Kohei Kadowaki
20090801phpstudy Sanemat
Kenichi Murahashi
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
Firefox os勉強会 2nd WEB屋さんがWEBアプリを作ってみた
Nobuhiro Ueda
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
Web開発の 今までとこれから
Shinichi Takahashi
知ってるようで知らないWeb基礎セミナー
ukkyo
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
Kenji Fukumoto
今更Cake2.3でWebAPIを作った話
rittyan
Ad
Similar to アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
(14)
PDF
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
PDF
第4回勉強会 単体テストのすすめ
hakoika-itwg
PDF
市場で勝ち続けるための品質とテストの技術①
Yahoo!デベロッパーネットワーク
PPTX
Robotium を使った UI テスト
Kenichi Tatsuhama
PPTX
テストコードってすごい.pptx
cistb220msudou
ODP
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
PPT
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
PDF
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
PDF
テストを書くのが嫌いな君へ #m3dev
Kazuhiro Sera
KEY
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
PDF
組織にテストコードを書く文化を 根付かせるためにやってきたこと
Suguru Shirai
PDF
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
KEY
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
ODP
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
第4回勉強会 単体テストのすすめ
hakoika-itwg
市場で勝ち続けるための品質とテストの技術①
Yahoo!デベロッパーネットワーク
Robotium を使った UI テスト
Kenichi Tatsuhama
テストコードってすごい.pptx
cistb220msudou
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
テストを書くのが嫌いな君へ #m3dev
Kazuhiro Sera
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
組織にテストコードを書く文化を 根付かせるためにやってきたこと
Suguru Shirai
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
Ad
Recently uploaded
(12)
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
PPTX
Vibe Codingを触って感じた現実について.pptx .
iPride Co., Ltd.
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
PDF
[email protected]
Matsushita Laboratory
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
Vibe Codingを触って感じた現実について.pptx .
iPride Co., Ltd.
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
[email protected]
Matsushita Laboratory
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
1.
アプリのテストを書かなければな らないと分かっているけども、書 けていない人たちへ 山崎友弘
2.
そもその何の為にテストを書く の? ・仕様変更、追加に耐えうる為
3.
ということは今後100%仕様変更、 追加がないと分かっている場合 はテストを書く必要がない。
4.
しかし、残念ながら未来のことは 分からないので、テストを書かな ければならない。
5.
「テストコードとは保険 の様な物だ」
6.
サーバーのテストは一般的になっ てるけど、アプリのテストって浸透 してない気がするけどなぜ?
7.
1.プロダクトの寿命が短い サーバーと比べると、アプリのプ ロダクトの寿命は短いので、そこ まで保険を掛ける必要がない。
8.
2.サーバーのテストでは 保険以外の価値が・・・ これ重要なので、深堀して説明 します。
9.
サーバーのAPIのテストをしようと すると ・DBの値が、この場合とこの場合 とこの場合と・・・ ・getのテスト用urlを作る為に、api 仕様書みなきゃ ・postのapiテストどうしよう
10.
これを解決するのが
11.
テストコード!!
12.
サーバーのテストコードの価値は は保険だけではない
13.
今の作業が楽になる
14.
だからサーバーのテストコードは
15.
「書かなければならない」 ではなく
16.
「書きたい」 になっている
17.
今日のねらい アプリのテストコードも 「書かなかればならない」 ではなく 「書きたい」 にもっていく
18.
まずテストを書く前に大事なこと ・テスタビリティ(試験性)なコード であるか
19.
テスタビリティの特徴 ・クラスおよびメソッドが適切な サイズに分割されている ・入力と出力が明確である
20.
なぜテスタビリティでないコードで テストが書けないか 実際にコードを見てみよう
21.
こんなアプリのコードです 「更新」ボタンを押したら テーブルQiitaのAPIを 叩いて返ってきたデータを テーブルビューに表示してい るだけのものです。
22.
まず悪いコード例
23.
「更新」ボタンのイベント
24.
テストしようとすると・・・ ・このメソッドのアウトプットが曖昧すぎて何を 確認したらよいか分からない ・VとMが分離されていないからこういうことが 起きる
25.
ナイスなコード例
26.
「更新」ボタンの中身を モデルに任せました
27.
するとテストが書ける様に なりました ・VとMが分離し、アウトプットが明確になった ため、 テストが書ける様になった。
28.
新たに出てきた疑問 ・ネットワークの通信系のエラー処理どうしよう? ・どこに書けばいいかな? ・同じところに書くのはテストのレイアーが違う 気がしない?
29.
パーフェクトなコード例
30.
「updateQiitaList」の中身 ・通信部分は他でも汎用的に使えそう ・以下の赤枠の部分がこのモデルに依存している ・じゃー、切り分ければいいじゃん
31.
通信部分だけ汎用的なModelと して抜き出しました
32.
すると、通信のエラー処理のテストコードは、この モデルのテストクラスでしてあげれば他の場所で する必要がない
33.
結果、それぞれのメソッドの粒度 に最適なテストだけを書くことが 出来ました。 めでたしめでたし ソースアップしてます: 悪い例:https://github.com/yamasakitomohiro/QiitaList_bad ナイスな例:https://github.com/yamasakitomohiro/QiitaList_nice パーフェクトな例:https://github.com/yamasakitomohiro/QiitaList_perfect
34.
テスタビリティでないとダメな理由 ・結果として何を確認すべきか 曖昧過ぎて分からない ・テスタビリティ==良い設計
35.
テストコード書くと良いこと
36.
『メソッドが何処まで考えて作られ ているかが一目でわかる!!』 特にイレギュラー系
37.
例えばこんな感じ
38.
『MVCが良くわからなければ テストコードを書けばいい』
39.
モデルが分離できていないとテス トコードが書きにくいので、自然と 分離するようになる。
40.
『コードを修正する時に、あれこれ 考えなくてよく不安がない』 デグレってもテストコードが 拾ってくれるから安心!
41.
『必然的に、 設計を見直すことになるので バグを発見しやすい』
42.
『テストを書けると出来る エンジニアっぽくなる』
43.
『品質を証明する ドキュメントになる』
44.
テスト書きたくなりました?
Download