Loading...

TDDミニ in #xpjug

和田 卓人 (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

テストの再分類

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

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

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

TDDとは?

二つの道がある

TDDのサイクル

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

TDDと黄金の回転

体験しよう

ペアプロの楽しさ

コードレビューの効果

FizzBuzz問題

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

http://tickletux.wordpress.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/

http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

+うるう年判定

任意の範囲の連続する自然数をプリントするプログラムを書け。ただし閏年のときは数の代わりに「うるう」とプリントすること。

グレゴリオ暦では、次の規則に従って400年に97回の閏年が設けられる。

  • 西暦年が4で割り切れる年は閏年
  • ただし、西暦年が100で割り切れる年は平年
  • ただし、西暦年が400で割り切れる年は閏年

+二つを混ぜる

任意の範囲の自然数をプリントするプログラムを書け。

  • ただし3の倍数のときは数の代わりに「Fizz」と、
  • 5の倍数のときは「Buzz」、
  • 3の倍数でかつ閏年のときは数の代わりに「うるFizz」、
  • 5の倍数でかつ閏年のときは数の代わりに「うるBuzz」、
  • 3と5両方の倍数でかつ閏年のときは数の代わりに「FizzうるBuzz」とプリントすること。

TDDはスキルです

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

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

写経から始めよう

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