Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

テスト駆動開発(TDD)と振る舞い駆動開発(BDD)について

No description
by

bigwheel k

on 19 July 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of テスト駆動開発(TDD)と振る舞い駆動開発(BDD)について

テスト駆動開発(TDD)と
振舞い駆動開発(BDD)について
お疲れ様です
今週もあと数時間

頑張って乗り切りましょう
労働後のビールまで
あと数時間
昨日、帰ってからLT準備してました
ほぼ完成するスライド。

なんとか間に合った安堵。



しかし、そこで1つの事実に気づく
あれ、
このLTもしかして
TDDとBDDの知識
必須じゃね?
突 然 の 仕 様 変 更
そこで今回のお題
テスト駆動開発(TDD)
振舞い駆動開発(BDD)
とはなにか
自分が理解している(と思ってる)内容で
説明するので、一般的な認識とずれてたら
ごめんね(てへぺろ
むしろ間違いを見つけて説明に突っ込み入れる
くらいの意識の高さで来てほしい(キリッ
TDDとBDDの位置づけ
オブジェクト指向
ドメイン駆動設計
ウォーターフォール
アジャイル駆動開発
XP
スクラム
ボトムアップコーディング
トップダウンコーディング
ミクロ(個人レベル)
マクロ(開発グループレベル)
テストファースト
テスト駆動開発
振舞い駆動開発
ユニットテスト
名前が似てるが
粒度はまったく別
それは
テストファースト
の精神に従い、
ユニットテスト

結局最初はどういうLTがしたかったの?
TDDとBDD、
プロダクトコード
と二人三脚で
育てるプログラミングのやり方
これ以上は説明より
見てもらったほうが早い
スライド作る余裕もないし
足りない分は、
ライブコーディングで補え!
一つ、大切な注意点
テストには2種類ある



開発者のためのテスト




ユーザー(納品先)のための品質保証テスト
今回説明したのは
こっち
両者はまったく別なので
混同されるべきではない!
ここで全部説明できないので、
あとで質問してもらってもいいですし
話をしにきてもらえば自分の解釈は説明します
次回のLTに続く...
みんなが知ってるとは限らない・・・
今回のLTの目的
次回のLTをスムーズに
理解してもらうため、
TDD, BDDに対する
共通認識を持つ

TDD&BDD実践ライブコーディング
お題:RubyでStackクラスを作る
欲しいStackクラスの要件
基本的には一般的なStack
PUSH - データをスタックトップに置く
POP - スタックトップを取り除いて返す
SIZE - スタック内のデータの数を返す
データ数が0のときにPOPするとエラーを投げる
最大データ数は100で決めうちしていい

実装の制限
RubyのArrayを使用していいが、C言語相当の機能しか使っちゃダメ。つまり可能なのは
値の代入
値の挿入
固定長での初期化
参考:Rubyist Magazine - 改めて学ぶ RSpec http://magazine.rubyist.net/?0035-RSpecInPractice
Full transcript