• 検索結果がありません。

テストを 整える

REFACTOR

TEST

PRODUCT Green

Assertファースト による追加・変更

RED→GREEN

テストコードの 設計改善

REFACTOR[TEST]

変更に対処する

テストを 整える

変更に 備える

変更に 対処する

TDD実践のネクストステップ

TDD学習のネクストステップ

基礎を 身につける

より 活用する

応用分野 を学ぶ

変更

TDDでは開発の進展、リファクタリング、仕 様変更などによりしばしばプロダクトコードの 変更が発生します。

TDDではプロダクトコードに依存するテスト が早期から作られるため、テストを以下に効 率よく変更に対応させるかが効率確保の鍵 となりえます

変更に対処する

1. よく考える

(1.5. 変更を受け入れられるように設計改善) 2. RED

3. GREEN

4. REFACTOR

変更に対処する

TEST(…) {

TestTarget target(0);

… }

TEST(…) {

TestTarget target(1);

… }

….

Class TestTarget {

void TestTarget(int hoge) { ….

} }

変更に対処する

TestTarget(int hoge) からTestTarget(int hoge, int fuga)に変更。

Int fugaに応じて複雑な処理を・・・

TEST(…) {

TestTarget target(0);

… }

TEST(…) {

TestTarget target(1);

… }

….

Class TestTarget {

void TestTarget(int hoge) { ….

} }

変更に対処する

TEST(…) {

TestTarget target(0);

}

TEST(…) {

TestTarget target(1);

}

TEST(…) {

TestTarget target(2);

}

….

Class TestTarget {

void TestTarget(int hoge) { ….

} }

TestTarget(int hoge) からTestTarget(int hoge, int fuga)に変更。

Int fugaに応じて複雑な処理を・・・

よく考える

無理のない小さなステップで 効率よく変更できるように

変更に対処する[1]

Parallel Change

TEST(…) {

TestTarget target(0);

}

TEST(…) {

TestTarget target(1);

}

TEST(…) {

TestTarget target(2);

}

….

Class TestTarget {

void TestTarget(int hoge) { ….

}

void TestTarget(int hoge, int fuga) {

} }

TestTarget(int hoge) からTestTarget(int hoge, int fuga)に変更。

Int fugaに応じて複雑な処理を・・・

新旧共存でTDD

逐次テストを置き換えていく

変更に対処する[1]

Parallel Change

TEST(…) {

TestTarget target(0, 0);

}

TEST(…) {

TestTarget target(1);

}

TEST(…) {

TestTarget target(2);

}

….

Class TestTarget {

void TestTarget(int hoge) { ….

}

void TestTarget(int hoge, int fuga) {

} }

TestTarget(int hoge) からTestTarget(int hoge, int fuga)に変更。

Int fugaに応じて複雑な処理を・・・

新旧共存でTDD

逐次テストを置き換えていく

変更に対処する[2]

TDDのための事前変更

TEST(…) {

TestTarget target(0, 0);

}

TEST(…) {

TestTarget target(1, 0);

}

TEST(…) {

TestTarget target(2, 0);

}

….

Class TestTarget {

void TestTarget(int hoge, int fuga) { ….

} }

TestTarget(int hoge) からTestTarget(int hoge, int fuga)に変更。

Int fugaに応じて複雑な処理を・・・

Dummyで置き換えつつ インターフェースを変更

その後TDD

変更に対処する

無理のない小さなステップで、効率よく変更でき るように考える

事前対策

Pallalel Changeや前倒しのインターフェース変更等

テストの保護を壊さない 変更にもテストで戦う

学習のネクストステップ

テストを 整える

変更に 備える

変更に 対処する

TDD実践のネクストステップ

TDD学習のネクストステップ

基礎を 身につける

より 活用する

応用分野 を学ぶ

TDDを学ぶ

TDDは文献、情報発信源、コミュニティか ら学ぶことができます。

TDDはシンプルな開発手法ですが、様々 な関連分野、応用分野とリンクしているた め、勉強の余地を大いに持っています。

基礎を身につける

テストを 整える

変更に 備える

変更を 対処する

TDD実践のネクストステップ

TDD学習のネクストステップ

基礎を 身につける

より 活用する

応用分野 を学ぶ

基礎を身につける

@t_wada Id:t-wada

より活用する

テストを 整える

変更に 備える

変更に 対処する

TDD実践のネクストステップ

TDD学習のネクストステップ

基礎を 身につける

より 活用する

応用分野 を学ぶ

より活用する

テスト設計

より活用する

テストコードの実装

xutp magagine ぺけま

Coming soon!

xUnit Test Patterns読書会Wiki http://www.fieldnotes.jp/xutp/

Id:setoazusa

@setoazusa

より活用する

変更への対処

応用分野を学ぶ

テストを 整える

変更に 備える

変更に 対処する

TDD実践のネクストステップ

TDD学習のネクストステップ

基礎を 身につける

より 活用する

応用分野 を学ぶ

応用分野を学ぶ

テストの活用×TDD

WACATE(もうすぐ募集開始!) http://wacate.jp/

Testing Engineer's Forum

http://www.swtest.jp/wiki/index.php?swte st.jp/wiki/forum

応用分野を学ぶ

DVCS×TDD

SCM Boot camp

http://d.hatena.ne.jp/kyon_mm/archive?word=*%5Bscmbc%5D

Id:bleis-tift

@bleis

Id:kyon_mm

@kyon_mm

Id:pocketberserker

@pocketberserker

応用分野を学ぶ

BDD/Outside-In TDD

Growing Object-Oriented Software, Guided by Tests(goos)読書会

http://devtesting.jp/goos/

Id:setoazusa

@setoazusa

その他

ドキュメント内 テスト駆動開発入門 ネクストステップ (ページ 46-69)

関連したドキュメント