SlideShare a Scribd company logo
1 of 62
テスト駆動開発入門
2012.11.17 札幌Javaカンファレンス2012
       渡辺修司(@shuji_w6e)




                               1
自己紹介
渡辺 修司
Javaプログラマ

 株式会社エスプラニング所属

 ウェブアプリやデスクトップアプリの開発

テスト駆動開発、ユースケース駆動開発

アジャイル開発

最近の趣味はロードバイクとフットサル
@shuji_w6e
札幌 Javaコミュニティ

TDD Boot Camp

やさしいデスマーチ(Blog)

執筆活動

 WEB DB Press vol.69

 JUnit実践入門(11/21)
テスト駆動開発とは?
テストファースト

動作するきれいなコード


設計を駆動する開発手法
ソフトウェア開発の流れ
  ユーザ要求定義(要件定義)


  システム要求定義(外部設計)


   詳細設計・プログラミング


     テスト(評価)
ソフトウェア開発の流れ
  ユーザ要求定義(要件定義)


  システム要求定義(外部設計)


   詳細設計・プログラミング
            単体テスト

     テスト(評価)
V字モデル
 要件定義        受入テスト


 外部設計      システムテスト


  内部設計     結合テスト


 プログラム設計   単体テスト
単体テスト(理想)
詳細設計(内部設計)でプログラムの品質を
高め、手戻りを減らす

詳細設計のレビューを実施することで品質を
高める

プログラミングは単純作業

詳細設計が正しく実装されているかを検証
単体テスト(現実)
ソフトウェアは複雑
               詳細設計
やってみなければ解らない

プロトタイピング        実装
実装のテストになる

詳細設計がテストされない   単体テスト
単体テスト(現実)
ソフトウェアは複雑
               詳細設計
やってみなければ解らない

プロトタイピング
                ?
                実装
実装のテストになる
                ?
               単体テスト
詳細設計がテストされない
単体テスト(現実)
ソフトウェアは複雑
               詳細設計
やってみなければ解らない

プロトタイピング
                ?
                実装
実装のテストになる
                ?
               単体テスト
詳細設計がテストされない

単体テストが機能していない?
V字モデルの問題点
完璧な詳細設計を先に行うのは難しいため、
確実に手戻りが発生する

詳細設計をテストすべき単体テストが実装を
テストしている
http://www.flickr.com/photos/alisdair/135306281/
テスト駆動開発のサイクル
                            1.設計する
5.リファクタリング



               Heuristics




                               2.テストを書く



 4.テストを成功させる

                        3.コードを書く
テストファースト
原則としてテストを先に書く

テストファーストがベスト

設計が机上でまとまらない場合

プロトタイプを作ってみる

テストを書く

プロトタイプを捨てるか利用するか決める
http://www.flickr.com/photos/snowyuki/5223599006/
FizzBuzz
 1から100までの整数を順番に出力する

 ただし、

 値が3の倍数の場合は「Fizz」を

 値が5の倍数の場合は「Buzz」を

 値が3と5の公倍数の場合は「FizzBuzz」を

 それぞれ表示すること
http://www.flickr.com/photos/alisdair/2398525854/
テスト駆動開発のサイクル
                            1.設計する
5.リファクタリング



               Heuristics




                               2.テストを書く



 4.テストを成功させる

                        3.コードを書く
動作するきれいなコード

きれい




 汚い




      動かない   動く
1.設計する
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
2.テストを書く
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
3.コードを書く
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
4.テストを成功させる
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
5.リファクタリング
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
1.設計する
                                              1.設計する
                  5.リファクタリング



                                 Heuristics




                                                 2.テストを書く



                   4.テストを成功させる
きれい
                                          3.コードを書く




汚い




      動かない   動く
デモ
 http://www.flickr.com/photos/snowyuki/5223599006/
http://www.flickr.com/photos/palermobootcamp/5464512672/
http://www.flickr.com/photos/jas_132/5403388208
http://www.flickr.com/photos/sirod47/5538908868/
ソフトウェア開発は楽しい
創造的労働

実際に動くモノをゼロから作れる。

期待通りに動けば嬉しい。

知的労働

アイディアをモノに反映できる。

難しい問題を解決できれば嬉しい。
スキル不足
仕様変更


                                     経験不足
複雑な要件

                                                   不安
   http://www.flickr.com/photos/yopse/3772030400/
テスト駆動開発
コードが満たす条件が明確になる

コード変更時の影響が見える

自然と疎結合な設計になる

積極的なリファクタリングを行える

自動化され、繰り返して実行できる
テスト駆動開発
コードが満たす条件が明確になる

コード変更時の影響が見える

自然と疎結合な設計になる

積極的なリファクタリングを行える

自動化され、繰り返して実行できる

   開発時の不安が軽減できる!
反復的な開発
      ユニットテスト



 プログラミング        詳細設計

反復的にテスト・設計・プログラミング

素早いフィードバックで変更に強くなる
反復的な開発
      ユニットテスト



 プログラミング        詳細設計

反復的にテスト・設計・プログラミング

素早いフィードバックで変更に強くなる

  アジャイル的な手法
反復的な開発
      ユニットテスト

    テスト駆動開発
 プログラミング        詳細設計

反復的にテスト・設計・プログラミング

素早いフィードバックで変更に強くなる

  アジャイル的な手法
なぜ、TDDを実践するか?
ソフトウェアは思った以上に複雑

パーフェクトプログラマなんかいない

不安だからユニットテストを書く

セーフティネットとしてのユニットテスト

すばやく回し、すばやいフィードバック
セーフティネット




   http://www.flickr.com/photos/32010000@N08/2987901256/
設計を駆動する開発手法
 http://www.flickr.com/photos/86921622@N00/281632021/
テスタビリティ
状態や副作用

戻り値

予測可能なオブジェクト

疎結合
テスタビリティ
状態や副作用

戻り値

予測可能なオブジェクト

疎結合



  よい設計であればテストしやすい
テスト駆動の真実
                            1.設計する
5.リファクタリング



               Heuristics




                               2.テストを書く



 4.テストを成功させる

                        3.コードを書く
テスト駆動の真実
                            1.設計する
5.リファクタリング



               Heuristics




                               2.テストを書く



 4.テストを成功させる

                        3.コードを書く
テスト駆動の真実
                            1.設計する
5.リファクタリング



               Heuristics




                               2.テストを書く



 4.テストを成功させる

                        3.コードを書く
http://www.flickr.com/photos/terrydonaghe/1117999/
小さく
個別に
すばやく
ひとつずつ、一歩ずつ
小さなステップで

大きなものは小さく分割

確実に、堅実に

手戻りを小さく
ひとりずつ、仕留める
テストは個別撃破する

次のテストを作らない
すばやくまわす
                                    1.設計する
小さく回す   5.リファクタリング



早く回す                   Heuristics




すぐに対応                                  2.テストを書く



リズム重要    4.テストを成功させる

                                3.コードを書く
使う
  作る
伝える
自分が最初のユーザー
使いにくいものは使いにくい

自分で評価する

納得できるか?

恥ずかしくないか?

解りやすいか?
道具にこだわる
最高のパフォーマンスを維持する

プロとしてのこだわり

少しでも使いやすく

日々、研究・工夫
未来の自分が読む
テストコードは保守される

読みにくいコードは悪

シンプルに

名前重要

型
http://www.flickr.com/photos/akikophotography/530984398/
とにかく書く

パターン化しやすいので習得しやすい

テスティングフレームワークを活用する

テスト技法を学び幅を広げる



    http://www.flickr.com/photos/akikophotography/530984398/
テスト駆動開発入門
テスト駆動開発入門

More Related Content

What's hot

Introduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerIntroduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerNaoto Ono
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!Yu Tanaka
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2Takashi Hoshino
 
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...Haruka Matsuzaki
 
機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021Fuyuki Ishikawa
 
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみるCloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる虎の穴 開発室
 
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Rakuten Group, Inc.
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んsleepy_yoshi
 
PostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くPostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くHiroya Kabata
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話ichirin2501
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎Tetsutaro Watanabe
 

What's hot (20)

Introduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerIntroduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debugger
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
 
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
 
機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021
 
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみるCloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
 
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
 
PostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くPostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解く
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Lockfree list
Lockfree listLockfree list
Lockfree list
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 

Similar to テスト駆動開発入門

TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前にYasui Tsutomu
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会ko ty
 
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり #NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり kyon mm
 
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作りアジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作りkyon mm
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transitionTest automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transitionTatsuya Ishikawa
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1Hiro Yoshioka
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューMoriharu Ohzu
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEWYusuke Tochigi
 
自動テストのすすめ
自動テストのすすめ自動テストのすすめ
自動テストのすすめKatsunori Kanda
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかったMakoto Iguchi
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社Game Tools & Middleware Forum
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDDYuuki Takezawa
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料Hiroko Tamagawa
 
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用智治 長沢
 

Similar to テスト駆動開発入門 (20)

TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり #NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
 
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作りアジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transitionTest automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEW
 
自動テストのすすめ
自動テストのすすめ自動テストのすすめ
自動テストのすすめ
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
 
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
 

More from Shuji Watanabe

Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Shuji Watanabe
 
Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Shuji Watanabe
 
SSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioSSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioShuji Watanabe
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #EShuji Watanabe
 
AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -Shuji Watanabe
 
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Shuji Watanabe
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 Shuji Watanabe
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -Shuji Watanabe
 
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevios3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevioShuji Watanabe
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevioShuji Watanabe
 
テスト駆動開発へようこそ
テスト駆動開発へようこそテスト駆動開発へようこそ
テスト駆動開発へようこそShuji Watanabe
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方Shuji Watanabe
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へShuji Watanabe
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリングShuji Watanabe
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーShuji Watanabe
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
アジャイルテスティング
アジャイルテスティングアジャイルテスティング
アジャイルテスティングShuji Watanabe
 
テストリストの見つけ方
テストリストの見つけ方テストリストの見つけ方
テストリストの見つけ方Shuji Watanabe
 

More from Shuji Watanabe (20)

Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019
 
Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017Ansible ハンズオン on AWS - DevelopersIO 2017
Ansible ハンズオン on AWS - DevelopersIO 2017
 
SSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevioSSMでマネージドEC2 #reinvent #cmdevio
SSMでマネージドEC2 #reinvent #cmdevio
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
 
ELBの概要と勘所
ELBの概要と勘所ELBの概要と勘所
ELBの概要と勘所
 
AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -AWSによるWebサイト構築と運用 - concrete5 編 -
AWSによるWebサイト構築と運用 - concrete5 編 -
 
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
 
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevios3+cloud frontによる静的コンテンツ配信 - Sphinx編  #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
 
テスト駆動開発へようこそ
テスト駆動開発へようこそテスト駆動開発へようこそ
テスト駆動開発へようこそ
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へ
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
アジャイルテスティング
アジャイルテスティングアジャイルテスティング
アジャイルテスティング
 
テストリストの見つけ方
テストリストの見つけ方テストリストの見つけ方
テストリストの見つけ方
 

テスト駆動開発入門

Editor's Notes

  1. \n
  2. 30秒程度\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. 従来のやり方の問題\n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. 具体的には?\n
  15. \n
  16. \n
  17. FizzBuzzのデモ\n
  18. FizzBuzzのデモ\n
  19. よくわからない、むずかしい⇒目的と効果\n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. 習得できるスキルである\n
  30. 銀の弾丸ではない\n
  31. 習得できる\n
  32. TDDをはじめるワケ\n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. TDDのこころ\n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. 学ぶためには?\n
  54. 学ぶためには?\n
  55. \n
  56. \n