xp customer testing

66
XPをベースに Acceptance Testing 入門 を解説するよ 2011128日金曜日

Upload: eiji-ienaga

Post on 24-May-2015

3.566 views

Category:

Documents


0 download

DESCRIPTION

DevLove(2011/1/27) 発表資料

TRANSCRIPT

Page 1: XP Customer Testing

XPをベースにAcceptance Testing 入門を解説するよ

2011年1月28日金曜日

Page 2: XP Customer Testing

自己紹介

• 家永英治 @haru01

• 所属: 永和システムマネジメント

• @t_wada,@kakutaniに感化されて、TDDファンに

2011年1月28日金曜日

Page 3: XP Customer Testing

自己紹介

• XP、アレグザンダー好き

• Acceptance Testing にちょっと興味があるごくごく普通のDeveloper

• テスター専門家ではありません

2011年1月28日金曜日

Page 4: XP Customer Testing

今日お伝えしたいこと

2011年1月28日金曜日

Page 5: XP Customer Testing

Customers

Testers

Developers

協力して、ぐるぐる回せばGreat Software が できるはず!

2011年1月28日金曜日

Page 6: XP Customer Testing

よろしくお願いします

2011年1月28日金曜日

Page 7: XP Customer Testing

アジェンダ

•2分でわかる反復&段階開発におけるテストの位置づけ

• 10分でわかる XPにおける Customer Tests

• 3分でわかる BDD

• みんなで Testing について話し合ってみよう

2011年1月28日金曜日

Page 8: XP Customer Testing

#1

WaterFall

仕様

設計

実装

テスト

時間

工程

3秒2011年1月28日金曜日

Page 9: XP Customer Testing

WaterFall

機能A

機能B

機能C

完了したフィーチャ

時間

テスト込み

5秒2011年1月28日金曜日

Page 10: XP Customer Testing

#2 #3#1

反復的な開発

時間

仕様設計実装テスト

仕様設計実装テスト

仕様設計実装テスト

工程

.....

3秒2011年1月28日金曜日

Page 11: XP Customer Testing

段階的な開発

機能A

機能B

機能C

完了したフィーチャ

時間

機能C

機能B

機能C

テスト込み

テスト込み

テスト込み

5秒2011年1月28日金曜日

Page 12: XP Customer Testing

Whole Team

Customers Developers Testers Customers Developers

Testers

モジュール型のチーム

擦り合わせ型のチーム

物理的 時間的に 疎な関係物理的 時間的な共有を多く

とり密な関係

2011年1月28日金曜日

Page 13: XP Customer Testing

Customers Developers

Testers

XPでは Small Relases, User Stories,

Customer Tests 等を使って,

擦り合せ型のチームを実現

2011年1月28日金曜日

Page 14: XP Customer Testing

2011年1月28日金曜日

Page 15: XP Customer Testing

アジェンダ• 2分でわかる 段階&反復開発におけるテストの位置づけ

•10分でわかる XPにおける

Customer Test• 3分でわかる BDD

• Acceptance Testの課題

2011年1月28日金曜日

Page 16: XP Customer Testing

Exteme Programming

外側だけ

2011年1月28日金曜日

Page 17: XP Customer Testing

2011年1月28日金曜日

Page 18: XP Customer Testing

Christopher Alexander の影響を受けた

Kent Beck と Ward Cunningham

2011年1月28日金曜日

Page 19: XP Customer Testing

Christopher Alexander

2011年1月28日金曜日

Page 20: XP Customer Testing

2011年1月28日金曜日

Page 21: XP Customer Testing

Customer Testを例えるなら

• Wikiが目指しているようなこと

• CRCカードが目指しているようなこと

• 建築のパタンランゲージが目指しているようなこと

2011年1月28日金曜日

Page 22: XP Customer Testing

アレグザンダーの「オレゴン大学の実験」の原理とCustomer Testの対応

参加の原理 Testers、Customers、Developersがテスト

(仕様の例の検討) に積極参加

パタンの原理 テスト(仕様の例)が共通の語彙

有機的秩序の原理漸進的成長の原理

少しづつテストを育てていく

診断と修復の原理Red、Greenの状態確認、Acceptance or Reject の状態確認

調整の原理 イテレーションで何をつくるか調整

2011年1月28日金曜日

Page 23: XP Customer Testing

生物がすこしづつ成長していくように

2011年1月28日金曜日

Page 24: XP Customer Testing

Customer Testが必要になる背景

2011年1月28日金曜日

Page 25: XP Customer Testing

Customer Tests が必要とされる 背景/課題

http://itpro.nikkeibp.co.jp/article/COLUMN/20080828/313626/

オレゴン大学の実験にも似た図が

2011年1月28日金曜日

Page 26: XP Customer Testing

Ward Cunningham

✓XP立ち上げのコアメンバー

✓CRC カードの発案者

✓Wiki の作者

✓Fit の作者

XP, CRC, Wikiに似た思想が Fit にも2011年1月28日金曜日

Page 27: XP Customer Testing

Fit

“Great software requires collaboration and communication. -- http://fit.c2.com/

2011年1月28日金曜日

Page 28: XP Customer Testing

Fit

“Fit is a tool for enhancing collaboration in software development. -- http://fit.c2.com/

2011年1月28日金曜日

Page 29: XP Customer Testing

Fit“It automatically compares customers' expectations to actual results.-- http://fit.c2.com/

2011年1月28日金曜日

Page 30: XP Customer Testing

Fit とは

• 仕様(Cusutomers が本当に欲しいもの)と 実装 ( 実際の実行結果)を擦り合せるための

• 双方向コミュニケーション ツール

• 自動テスティングフレームワーク

2011年1月28日金曜日

Page 31: XP Customer Testing

Customers, Developers, Testersの

コミュニケーションツール

2011年1月28日金曜日

Page 32: XP Customer Testing

自動テスティング

フレームワーク

2011年1月28日金曜日

Page 33: XP Customer Testing

Fit の 静的外観

Fixture

ProductionCode

Customers

Testers

Developers

2011年1月28日金曜日

Page 34: XP Customer Testing

Fitを使ったAcceptance Testing 例ユーザストーリーについて会話

Spec & Exampleを記述(Word)

失敗を確認

リファクタリング

受入れ確認Unit

Testing(TDD)

成功の確認

Unit Testing(TDD) Fixtrue の記述

AceptanceTDDとRSpec本を参考

2011年1月28日金曜日

Page 35: XP Customer Testing

✓小さく回すこと✓スムーズに回すこと✓継続的に回すこと

Conversation

describe

RedGreen

Refactor

Acceptance

ソフトウェアをすくすくと育てるには

2011年1月28日金曜日

Page 36: XP Customer Testing

会話Conversation

2011年1月28日金曜日

Page 37: XP Customer Testing

Example(表)を使ってSpecの内容確認

Customers

Testers

Developers

-- http://fit.c2.com/

詳しくは

2011年1月28日金曜日

Page 38: XP Customer Testing

記述describe

2011年1月28日金曜日

Page 39: XP Customer Testing

-- http://fit.c2.com/

Human Readable & Executable Specification

Spec(仕様)

Example(例)

(会話の中で、Example を通じてSpecを確認)

2011年1月28日金曜日

Page 40: XP Customer Testing

実行確認red -> green

2011年1月28日金曜日

Page 41: XP Customer Testing

2011年1月28日金曜日

Page 42: XP Customer Testing

受入れAcceptance (or Reject)

2011年1月28日金曜日

Page 43: XP Customer Testing

バックログ単位で確認

2011年1月28日金曜日

Page 44: XP Customer Testing

アジェンダ

• 3分でわかる段階&反復開発におけるテストの位置づけ

• 10分でわかる XPにおける Customer Tests

•3分でわかる BDD

• 15(分)Acceptance Testの課題 / テーブル話し合ってみよう

2011年1月28日金曜日

Page 45: XP Customer Testing

Behavior Driven Development

2011年1月28日金曜日

Page 46: XP Customer Testing

BDD

• XPの CustomerTest(Accetance TDD) や

TDDと似た特徴

• 文法(言葉)を 仕様 中心に構成

• キーワード:Given, When, Then

• ツール:Cucumber, Steak, RSpec

2011年1月28日金曜日

Page 47: XP Customer Testing

BDD

ATDD使っている文法(言葉)、ツールは異なるが、裏に流れている思想はよく似ている

2011年1月28日金曜日

Page 48: XP Customer Testing

✓小さく回すこと✓スムーズに回すこと✓継続的に回すこと

Conversation

describe

RedGreen

Refactor

Acceptance

2011年1月28日金曜日

Page 49: XP Customer Testing

BDDの文法

• Given(前提)

• When(もし)

• Then(ならば)

• (• Example(例)

2011年1月28日金曜日

Page 50: XP Customer Testing

https://github.com/ruby-no-kai/rubykaigi/blob/master/features/toppage.feature

裏には、この日本語テキストを解釈実行するためのstepファイルがある

2011年1月28日金曜日

Page 51: XP Customer Testing

日本語で読める!

http://tatsu-zine.com/books/cuke

2011年1月28日金曜日

Page 52: XP Customer Testing

定番

2011年1月28日金曜日

Page 53: XP Customer Testing

おすすめ学習ロードマップ

• ツールを素振り

• Fit, Cucumber, Steak, Seleniumなどなど

• 「会話」をテーマに

• 「Bridging the Communication Gap」

• 「User Stories Applied」

• Example、Given, When, Thenを開発の日常会話に

2011年1月28日金曜日

Page 54: XP Customer Testing

今日お伝えしたかったこと

2011年1月28日金曜日

Page 55: XP Customer Testing

Customers

Testers

Developers

Testing はチームで協力し合うのが大前提

2011年1月28日金曜日

Page 56: XP Customer Testing

“Great software requires collaboration and communication. -- http://fit.c2.com/

2011年1月28日金曜日

Page 57: XP Customer Testing

✓小さく回すこと✓スムーズに回すこと✓継続的に回すこと

Conversation

describe

RedGreen

Refactor

Acceptance

ソフトウェアをすくすくと育てるには

2011年1月28日金曜日

Page 58: XP Customer Testing

• Example(仕様の例)

Customer Test / BDDの文法

• Given

• When

• Then

2011年1月28日金曜日

Page 59: XP Customer Testing

• Fit

• Cucumber

Customer Test / BDDのツール

2011年1月28日金曜日

Page 60: XP Customer Testing

Customers

Testers

Developers

協力して、ぐるぐる回せばGreat Software が できるはず!

2011年1月28日金曜日

Page 61: XP Customer Testing

Happy Testing

2011年1月28日金曜日

Page 62: XP Customer Testing

Testing について お話してみよう

2011年1月28日金曜日

Page 63: XP Customer Testing

手順5-6人にわかれて

Testing について自分が連想すること一人で思い浮かべる

テストで良かった本

プロジェクト経験

今日の聞いた話で印象に残ったこと

自分が理想とする Testing 像

Testing についてお話ししてみよう(残り時間)

2011年1月28日金曜日

Page 64: XP Customer Testing

対話(ダイアローグ)のコツ

判断の保留して、傾聴対話のコツ

傾聴、 判断の保留、 越境2011年1月28日金曜日

Page 65: XP Customer Testing

http://www.flickr.com/photos/cestomano/2297242391/sizes/z/in/photostream/

対話のコツ

越境! 越境!

繋がれ、 銀河の果てまで!2011年1月28日金曜日

Page 66: XP Customer Testing

http://www.flickr.com/photos/cestomano/2297242391/sizes/z/in/photostream/

2011年1月28日金曜日