TDDBC横浜3rd

4,533 views

Published on

2013/10/5の、TDDBC横浜3rdの基調講演資料。

Published in: Technology

TDDBC横浜3rd

  1. 1. TDDBC 横浜 3rd
  2. 2. TDDBCとは 講演 TDDとペアプロ レビュー大会 ふりかえり
  3. 3. TDD テスト駆動開発
  4. 4. 安井 力 / やっとむ (株)永和システムマネジメント プログラマー Java Python Ruby JavaScript テスト駆動開発 アジャイルコーチ ワークショップ 現場導入 技術支援 コンサルタント モデリング ユーザーストーリー twitter:@yattom facebook:yattom github:yattom bitbucket:yattom
  5. 5. http://event.shoeisha.jp/aa#Professors 和田 卓人 id: t-wada @t_wada github: twada
  6. 6. 質問:TDDをやろうと 思ったのはなぜですか?
  7. 7. t-wada said… 「TDDの の目的は 健康」
  8. 8. 現場の困りごと
  9. 9. 荒みきったコード
  10. 10. 疲弊しきった現場
  11. 11. 爆弾処理のようなリリース
  12. 12. 荒みきったコード これが当たり前?
  13. 13. 疲弊しきった現場 そんなハズはない!
  14. 14. 爆弾処理のようなリリース なぜこうなって しまうのか?
  15. 15. 複雑さに対する恐れと不安 不安を克服する技術の不足
  16. 16. TDDとは
  17. 17. 「動作するきれいなコード」、ロン・ジェフ リーズのこの簡潔な言葉は、TDD(テスト 駆動開発)の目標である。動作するきれい なコードは、あらゆる理由で価値がある。 ─ Kent Beck
  18. 18. 動作するきれいなコードとは? • 動作している • バグ対応も、追加変更も容易である • 作業が予測可能である • チームに信頼が生まれる 複雑ではない 恐れも不安もない
  19. 19. 動作する、きれいなコードへ きれい 汚い (すぐには)動かない 動作する
  20. 20. 動作する、きれいなコードへ きれい 汚い (すぐには)動かない 動作する 二つの道がある
  21. 21. TDDでサイクルにする きれい 汚い (すぐには)動かない 動作する
  22. 22. きれい 汚い (すぐには)動かない 動作する Green Refactoring TDDと黄金の回転
  23. 23. TDDのサイクル 1. 次の目標を考える 2. その目標を示すテストを書く 3. そのテストを実行して失敗させる(Red) 4. 目的のコードを書く 5. 2で書いたテストを成功させる(Green) 6. テストが通るままでリファクタリングを おこなう(Refactor) 7. 1〜6を繰り返す
  24. 24. テストについて
  25. 25. 「テスト」と言えば! • 単体テスト • 結合テスト • インテグレーションテスト • インターフェーステスト • ブラックボックステスト • ベータテスト • UIテスト • システムテスト • 受入テスト • 運用テスト • ユーザーテスト • ユーザビリティテスト • パフォーマンステスト • 探索的テスト
  26. 26. デベロッパーテスト • プログラマの • プログラマによる • プログラマのための • プログラムとしてのテストを書きながら • 開発を行っていく手法
  27. 27. アジャイルテスト 高品質を追求するアジャイルチームにおけるテストの視点 増田聡 Developer Summit 2010 http://www.slideshare.net/satoshimasuda/ss-3241717
  28. 28. リファクタリングについて
  29. 29. きれい 汚い (すぐには)動かない 動作する Green Refactoring TDDと黄金の回転
  30. 30. きれいを保つ http://www.flickr.com/photos/adwriter/226233780/
  31. 31. リファクタリングの対象 • コードをきれいにする – メソッド名、変数名 – インデント – コメント • 設計も見直す • プロダクトコードもテストコードも見直す • 常にやり続ける
  32. 32. TDDの こころ
  33. 33. TDDの こころ テストに出ます! コードにも出ます!
  34. 34. 一つずつ 少しずつ 段を 小さく
  35. 35. ひとりずつ 対処する。 複数を相手 にしない。
  36. 36. すばやく まわす
  37. 37. 自分が最初の ユーザ
  38. 38. 不安を テストに
  39. 39. TDDのこころ • ひとつずつ 少しずつ • 複数を相手にしない • すばやく回す • 自分が最初のユーザ • 不安をテストに • 祈るのではダメ • 命綱を編む
  40. 40. いよいよ実践だ!
  41. 41. 実践で困ったら?
  42. 42. 言語とツールを知る
  43. 43. JUnit実践入門 The RSpec Book • JUnit • RSpec
  44. 44. テストの無いコードが 既にたくさんある
  45. 45. レガシーコード改善ガイド
  46. 46. 既にデータの入った データベースがある
  47. 47. データベース リファクタリング
  48. 48. Fragile Tests
  49. 49. Slow Tests
  50. 50. xUnit Test Patterns
  51. 51. どこまでテストすればよいのか
  52. 52. ソフトウェアテスト技法ドリル
  53. 53. 現実のシステムはもっと複雑だ
  54. 54. 実践テスト駆動開発
  55. 55. 組み込みシステムはどうすれば?
  56. 56. UI のテストはどうすれば?
  57. 57. 質問:TDDをやろうと 思ったのはなぜですか? 面白そうだったから! ↓ • 脳味噌の想像力を超えた設計に到達 • 自分の能力を拡大する
  58. 58. T D D 実 践 者 へ の 道
  59. 59. TDDは スキルである http://www.flickr.com/photos/nicohogg/75040212/
  60. 60. TDDは 練習して上達する http://www.flickr.com/photos/risager/8388040402
  61. 61. Uncle Bob said … 「クズコードを書くのは もうやめだ」 「顧客のため 最高のコードを書く」 「上司のため 最高のテストを書く」 「チームのため すべてテストを書く」 「上達するため 練習を積む」 Software Craftsmanship: What it's all about.
  62. 62. t-wada said… 「TDDの の目的は 健康」
  63. 63. 自らを律する
  64. 64. http://www.flickr.com/photos/recompile_net/3298985098 事実、ペアプロは楽しい。 楽しみ ましょう!
  65. 65. まとめ • 複雑さと不安を克服する • 動作するきれいなコード
  66. 66. きれい 汚い (すぐには)動かない 動作する Green Refactoring TDDと黄金の回転
  67. 67. TDDのこころと実践 • 一歩ずつ 少しずつ • 不安をテストにする • 練習して上達する • 人のコードから学ぶ • 自らを律する

×