0
Sue445 Style TDD2012/09/08 Android テスト勉強会 @sue445
Agenda•   宣伝とか•   「テスト」について•   TDD について•   おまけ
お前誰よ?末吉 剛 (@sue445)元 SI(Java), 今ドリコム (Rails)クラスタ•Google App Engine•TDD•Agile 渋谷•渋谷 .rb•ニチアサ・ニチヨル・オリーブ実況
あずにゃんペロペロ〜http://azusaar.appspot.com/
第 2 期開始!http://azusaar.appspot.com/
黄色あざとい
あざといは正義
宣伝
TDD Advent Calendar jp: 2011https://gihyo.jp/dp/sp/advent2011/G11C28で epub が無料配信中!
TDD Advent Calendar jp: 2011僕の TDD 動画が収録されているため 145MBwww
Android でのテストについて
Android でのテストについて@shuji_w6e さんが執筆中の「 JUnit 実践入門 (仮)」に全部書いてあるので割愛(今秋発 売予定)
ここから本編
「テスト」について「テスト」と一言で言っても意味が広いので整 理してみる
「テスト」について                                  セキュリティ、                   QA Tesing                                  バグとか      ...
「テスト」について                   QA Tesing                    品質               全部大事!Developer Tesing               Customer Tes...
TDD について
TDD についてFate は文学CLANNAD は人生Rails は哲学TDD は設計TDD は設計
TDD って何?TDD = Test Driven Development一言で言えば、テストコードとプロダクトコー ドをほぼ同時進行で書くこと
とある TDD プログラマの日常1. これから実装しようとする機能のテストを   書く2. テストを動かして Red になるのを確認す3. プロダクトコードを書く4. テストを動かして Green になるのを確認す   る5. テストが動くまま...
TDD と黄金の回転                           テストが通るままで    Reafactring            コードをキレイにす                               る新しいテストを書...
Robert C. Martin 曰く (TDD 三原則)•   失敗する単体テストのコードを    書く前に、製品のコードを書い    てはならない•   コンパイルが通り、適切に失敗    する単体テストができるまでは    、次の単体テス...
テストファーストの重要性•   テストを書くには何が必要?    o   入力(引数)    o   出力(戻り値、画面出力)    o   クラスやメソッドの役割、パターン分け•   これって設計じゃね?    o   作りたいものが明確にな...
TDD をする一般的な理由•   健康のため    o   変化に対応できるのは健康体のコード    o   変化に対応できるのは健康体のチーム•   素早くフィードバックを得るため    o   自分が書いたコードが動くかどうかをすぐに確認で...
僕が TDD をする理由 自分が楽を  するため
働きたくないでござる
僕が TDD をする理由•   自分が楽をするため    o   ブラウザリロードするよりコマンド叩く方が楽    o   テストしやすいコードは自然に DRY とか SRP もできてくる    o   テストがあると恐れずにリファクタリングが...
僕が TDD をする理由•   テストは何かあった時の命綱    o   何かあった時に命綱を編んでいては手遅れ•   最初にテストを書くのは確かにきつい    o   TDD はスキルなので必ず身につく    o   2 〜 3 ヶ月もすれば...
とにかくやれ
TDD でよくある誤解•   TDD をやればバグがなくなる?    o   そんなわけない•   じゃあ TDD は意味が無い?    o   TDD でバグが完全になくなるわけじゃないけど、意図しない        バグをほとんどつぶせる ...
参考) AZusaar!( サーバ側 ) のレポート            Line (行の網羅率) : 85%            Branch (分岐の網羅率) : 91%
TDD を始めたことによる弊害•   TDD≠ サービスの品質だと分かってはいても、テストが    たくさんあると安心する    o   安心が過信にならないように気をつけよう•   TDD を始めて 2 年近くなので、呼吸をするのと同じ感  ...
テストを書くことを強いられているんだ!
グリーンバンド•   テストを書くのが辛くなった時にこれを見    て自分を戒めているらしい (by Robert C.    Martin)•   TDD BootCamp の受講証・卒業証として配    られることもある
act_as_professionalプロとして自分のコードに責任を持つためにテ ストを書くテストを書くのはプロとしての嗜み!
TDD をやりたくなったらTDD 本の定番。「ほんたった」でレッツ写経!
TDD をやりたくなったら       js ならこっちで始めるのも          あり。モックの使い方が          詳しい
TDD をやりたくなったら•   TDD BootCamp    o   終日ワークショップ(だいたい講演 + ペアプロ)    o   #tddbc を定点観測しておく•   TDDBC wiki    o   http://devtesti...
おまけ
おまけ
おまけ覚えてないんで作ったhttps://github.com/sue445/dio_tests
Have a nice Test !
Upcoming SlideShare
Loading in...5
×

Sue445 Style TDD #atest_hack

2,395

Published on

Androidテスト勉強会( http://www.zusaar.com/event/356157 )の資料です

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,395
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
7
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Sue445 Style TDD #atest_hack"

  1. 1. Sue445 Style TDD2012/09/08 Android テスト勉強会 @sue445
  2. 2. Agenda• 宣伝とか• 「テスト」について• TDD について• おまけ
  3. 3. お前誰よ?末吉 剛 (@sue445)元 SI(Java), 今ドリコム (Rails)クラスタ•Google App Engine•TDD•Agile 渋谷•渋谷 .rb•ニチアサ・ニチヨル・オリーブ実況
  4. 4. あずにゃんペロペロ〜http://azusaar.appspot.com/
  5. 5. 第 2 期開始!http://azusaar.appspot.com/
  6. 6. 黄色あざとい
  7. 7. あざといは正義
  8. 8. 宣伝
  9. 9. TDD Advent Calendar jp: 2011https://gihyo.jp/dp/sp/advent2011/G11C28で epub が無料配信中!
  10. 10. TDD Advent Calendar jp: 2011僕の TDD 動画が収録されているため 145MBwww
  11. 11. Android でのテストについて
  12. 12. Android でのテストについて@shuji_w6e さんが執筆中の「 JUnit 実践入門 (仮)」に全部書いてあるので割愛(今秋発 売予定)
  13. 13. ここから本編
  14. 14. 「テスト」について「テスト」と一言で言っても意味が広いので整 理してみる
  15. 15. 「テスト」について セキュリティ、 QA Tesing バグとか 品質開発促進 (TDD) 機能、進捗管理Developer Tesing Customer Tesing 開発者 顧客
  16. 16. 「テスト」について QA Tesing 品質 全部大事!Developer Tesing Customer Tesing 開発者 顧客
  17. 17. TDD について
  18. 18. TDD についてFate は文学CLANNAD は人生Rails は哲学TDD は設計TDD は設計
  19. 19. TDD って何?TDD = Test Driven Development一言で言えば、テストコードとプロダクトコー ドをほぼ同時進行で書くこと
  20. 20. とある TDD プログラマの日常1. これから実装しようとする機能のテストを 書く2. テストを動かして Red になるのを確認す3. プロダクトコードを書く4. テストを動かして Green になるのを確認す る5. テストが動くままでコードをきれいにする (Refactoring)6. 1 に戻る
  21. 21. TDD と黄金の回転 テストが通るままで Reafactring コードをキレイにす る新しいテストを書く Red 落ちているテストを通す Green
  22. 22. Robert C. Martin 曰く (TDD 三原則)• 失敗する単体テストのコードを 書く前に、製品のコードを書い てはならない• コンパイルが通り、適切に失敗 する単体テストができるまでは 、次の単体テストを書いてはな らない• 現在失敗している単体テストが 通るまで、次の製品コードを書 いてはならない
  23. 23. テストファーストの重要性• テストを書くには何が必要? o 入力(引数) o 出力(戻り値、画面出力) o クラスやメソッドの役割、パターン分け• これって設計じゃね? o 作りたいものが明確になっていないと何も作れない o 先にテストを書くことであやふやな仕様が浮き彫り になる• Red になるテストが先にあること で、 Green になった時に自分が考えた通り 実装できたことが実感できる
  24. 24. TDD をする一般的な理由• 健康のため o 変化に対応できるのは健康体のコード o 変化に対応できるのは健康体のチーム• 素早くフィードバックを得るため o 自分が書いたコードが動くかどうかをすぐに確認できる• 不安をテストにすることで精神的な安定を得る• 工数は 2 割増しの代わりにバグが半分になるという データも出ている o t_wada さんのスライド参照 http://www.slideshare.net/t_wada/tddbc-fukuoka-day1/64
  25. 25. 僕が TDD をする理由 自分が楽を するため
  26. 26. 働きたくないでござる
  27. 27. 僕が TDD をする理由• 自分が楽をするため o ブラウザリロードするよりコマンド叩く方が楽 o テストしやすいコードは自然に DRY とか SRP もできてくる o テストがあると恐れずにリファクタリングができる• とりあえず動かせる o コードは動かしてなんぼ• 結局のところ先に苦労するか後に苦労するかの違い o ただ、バグは早い段階で見つけて修正した方が楽 o 開発中<結合テスト中< QA <リリース後
  28. 28. 僕が TDD をする理由• テストは何かあった時の命綱 o 何かあった時に命綱を編んでいては手遅れ• 最初にテストを書くのは確かにきつい o TDD はスキルなので必ず身につく o 2 〜 3 ヶ月もすれば慣れる o 量は質に転嫁する
  29. 29. とにかくやれ
  30. 30. TDD でよくある誤解• TDD をやればバグがなくなる? o そんなわけない• じゃあ TDD は意味が無い? o TDD でバグが完全になくなるわけじゃないけど、意図しない バグをほとんどつぶせる TDD をしない理由はない• カバレッジは 100% じゃないとダメ? o あくまでテストが薄いところを見つける目安 o どうして数値が低いかは確認しておくのは重要  Java だと private コンストラクタや cathe スコープとか o 数字を上げることが目的になってはダメ  偉い人にはアピールしやすいけどネ!w
  31. 31. 参考) AZusaar!( サーバ側 ) のレポート Line (行の網羅率) : 85% Branch (分岐の網羅率) : 91%
  32. 32. TDD を始めたことによる弊害• TDD≠ サービスの品質だと分かってはいても、テストが たくさんあると安心する o 安心が過信にならないように気をつけよう• TDD を始めて 2 年近くなので、呼吸をするのと同じ感 覚でテストを書いている o あまり開発期間がないとは分かっていつつもテストをたくさん 書いてしまう o 全てのコードにテストを書かないと不安で仕方がない o 既に病気w
  33. 33. テストを書くことを強いられているんだ!
  34. 34. グリーンバンド• テストを書くのが辛くなった時にこれを見 て自分を戒めているらしい (by Robert C. Martin)• TDD BootCamp の受講証・卒業証として配 られることもある
  35. 35. act_as_professionalプロとして自分のコードに責任を持つためにテ ストを書くテストを書くのはプロとしての嗜み!
  36. 36. TDD をやりたくなったらTDD 本の定番。「ほんたった」でレッツ写経!
  37. 37. TDD をやりたくなったら js ならこっちで始めるのも あり。モックの使い方が 詳しい
  38. 38. TDD をやりたくなったら• TDD BootCamp o 終日ワークショップ(だいたい講演 + ペアプロ) o #tddbc を定点観測しておく• TDDBC wiki o http://devtesting.jp/tddbc/• メーリングリスト o http://groups.google.com/group/tddbc• 手っ取り早く調べるなら AZusaar! がいいよ(ステマ) o http://azusaar.appspot.com/?q=tdd
  39. 39. おまけ
  40. 40. おまけ
  41. 41. おまけ覚えてないんで作ったhttps://github.com/sue445/dio_tests
  42. 42. Have a nice Test !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×