Loading...

#php_tdd_ci

和田 卓人 (a.k.a id:t-wada or @t_wada)

Press key to advance.

Slides controls, press:

  • and to move around.
  • Ctrl/Command and + or - to zoom in and out if slides don’t fit.
  • T to change the theme.
  • H to toggle syntax highlight.

自己紹介

自己紹介

  • 名前 : 和田 卓人(わだ たくと)
  • ブログ : id:t-wada
  • Twitter : @t_wada
  • github / facebook : twada
  • タワーズ・クエスト株式会社 取締役社長

./../../images/TQ_LOGO_SMALL.png

普段やっていること

  • 商用 Rails プラグイン(自社製品)の開発
  • テスト技術のコンサルティング
  • レガシーコード改善のコンサルティング
  • アジャイルプロセス(XP)のコーチ
  • TDD の啓蒙
  • Twitter, facebook

gihyo.jpの連載

  • 「動画で解説」和田卓人の"テスト駆動開発"講座
  • http://gihyo.jp/dev/serial/01/tdd
  • 全20回すべて動画付き解説
  • ニコニコ動画でも見れます

./../../images/gihyo-tdd-icon.png

これまで書いたもの

  • WEB+DB PRESS vol.35
  • WEB+DB PRESS vol.37
  • WEB+DB PRESS vol.42
  • WEB+DB PRESS vol.49
  • その他いろいろ
  • 『プログラマが知るべき97のこと』

プログラマが知るべき97のこと

プログラマが知るべ 97 のこ

これまで書いたもの

  • WEB+DB PRESS vol.35
  • WEB+DB PRESS vol.37
  • WEB+DB PRESS vol.42
  • WEB+DB PRESS vol.49
  • その他いろいろ
  • 『プログラマが知るべき97のこと』
  • WEB+DB PRESS vol.63 (NEW)

WEB+DB PRESS vol.63

#wdpress

よろしくお願いします

ソフトウェア開発の三本柱

現代ソフトウェア開発の三本柱

  • バージョン管理
  • テスティング
  • 自動化

バージョン管理

テスティング

自動化

三脚椅子のメタファ

自動テストの背景

「テスト」という言葉の混乱

  • 「テスト」という言葉が指すものがバラバラ
  • 単体、ユニット、結合、機能、システム、…
  • たくさんあるけど、何がなにやら…単体テストとユニットテストって同じもの?
  • テスト 範囲 による分類には曖昧さ、限界がある

再分類のための視点を探す

  • テストは品質保証のため? 動作確認のため?
  • 目的に戻って考えてみよう
  • 誰が、何のためにテストを行うのか

テストの再分類

「テスト」という言葉から思い浮かべるものを…

DeveloperTestingCustomerTestingQATesting
開発者顧客(のロール)品質保証担当者(のロール)
開発促進進捗管理品質保証

「誰が、何のために」という視点で再分類する

Developer Testingとは

  • プログラマの
  • プログラマによる
  • プログラマのための
  • プログラムとしてのテストを書き ながら
  • 開発を行っていく手法

TDDとは?

『テスト駆動開発入門』

二つの道がある

TDDのサイクル

  1. テストを書き
  2. そのテストを実行して失敗させ(Red)
  3. 目的のコードを書き
  4. 1で書いたテストを成功させ(Green)
  5. テストが通るままでリファクタリングを行う(Refactor)
  6. 1~5を繰り返す

TDDと黄金の回転

なぜTDDをするのか

  • 私たちは完璧なプログラマではない
  • 最初から思い通りにコードが書けるほど、私たちは賢くない
  • 最初から思い通りに動作するほど、対象は単純ではない
  • 素早く対象に近づき、フィードバックを得て方向修正をしながら開発を行う必要がある

テストは目的ではなく手段

Developer Testing, TDD にソフトウェア工学的なメリットはいろいろあるけれど、最大の理由は工学的なものではない。最大の理由は 心理的 なもの

  • 即座にフィードバックを得るため
  • 書いたコードに自信を持つため
  • これから書くコードに自信を持つため

体験しよう

ペアプロの楽しさ

コードレビューの効果

現実と立ち向かう術

プロとしてのたしなみ

たくさん本を読もう

TDDはスキルです

テストやTDDはスキルです。つまり…

  • 才能ではなく、習得可能です
  • 量は質に転化します
  • 写経しましょう!

写経から始めよう

ご清聴ありがとうございました