SlideShare a Scribd company logo
1 of 22
Download to read offline
2011/07/22
第 1 回 関西 PHP 勉強会


  継続的テスト入門

                   株式会社アイテマン
                   久保敦啓
                   kubo@iteman.jp
iteman
   株式会社アイテマン 代表取締役
   Piece Project プロジェクトリード
   Twitter @iteman
   師匠承ります
         オブジェクト指向
         テスト駆動開発
         継続的テスト
         DSL
Piece Framework
   PHP のアプリケーションフレームワーク
   オープンソースソフトウェア
         New BSD License
         Eclipse Public License
   Piece Project
         開発者募集中
         スポンサー募集中
Piece Framework の歴史
   2005 Stagehand_TestRunner
   2006 Piece_Unity, Piece_Flow
   2009 MakeGood
   2011 ???
アジェンダ
   継続的テストとは?
   継続的テストをサポートするツール
   デモ
   質疑応答
継続的テスト
    Continuous 
      Testing


Day 61 ­ Watering tulips By Mourne
http://www.flickr.com/photos/mourner/3552724584
継続的テストとは?
   バックグラウンドで継続的に
    テストを実行する。
   ファイルを変更するたびにテ
    ストを実行する。




    素早いフィードバック!
初出
   2004 年 MIT の David Saff 氏らによる
    継続的テストの対照実験に基づく論文
   継続的コンパイルにインスパイア
    (Continuous Compilation)
実験結果は…
   継続的テストを行なった開発者はそうで
    ない開発者よりも、期限の前にタスクを

    完了した人が 3 倍多かった。
   継続的テストはテストに関連する

    92­98% の無駄な時間を削減した。
継続的テストの効果
   少ないオーバーヘッド
   不具合の早期発見
   テスト駆動開発の良い習慣の促進
少ないオーバーヘッド
   継続的テストの最も明らかな効果
   手動によるテスト実行時間を節約!
   ツールが非常に重要な役割を果たす。
手動でテストを実行すると…

    テスト実行の準備に数秒

    テスト実行に数秒

    結果の確認に数秒

    失敗箇所の特定に数秒

    エディタを開くまでに数秒
               Galley Slaves By ChibiJosh
               http://www.flickr.com/photos/chibijosh/17867308
手動でテストを実行すると…

    実行に 10 秒かかり、

    1 時間に 50 回テストを実行し、

    年 1000 時間プログラミングすると、

    年間 139 時間が無駄に費やされる。
不具合の早期発見
   継続的テストはエラーの混入と検出の間
    の間隔を短くさせる。
   予期しない失敗は解決に時間がかかる。
   継続的テストは予期しない失敗をすぐに
    見つける。
テスト駆動開発の良い習慣の促進
   ファイルを変更するたびにテストを実行
    すると TDD の道から逸れにくくなる。
   デバッグに頼らずに、動作するコードを
    書きやすくなる。 ( 自然な TDD の導入 )
   エラーの範囲が明確なので理解が簡単に
    なる。 ( 遅いテストの対策にもなる。 )
   インクリメンタル開発のメリットの享受
ツール




 toolbox By dipster1
 http://www.flickr.com/photos/dipster1/1403240351
継続的テストをサポートするツール
   Infinitest ­ Java
   JUnit Max – Java, Kent Beck
   autotest(ZenTest) – Ruby
   Stagehand_TestRunner – PHP
   MakeGood – PHP
Stagehand_TestRunner
MakeGood
継続的インテグレーションツールは?
まとめ
   継続的テストは開発速度を向上させる。
   良いツールを使うことが重要である。
        MakeGood, Stagehand_TestRunner
        新プロダクトを計画中!
   継続的テストを日常とし、より良い
    プログラマーを目指すべし。
参考
   David Saff, Michael D. Ernst, An experimental 
      evaluation of continuous testing during development, 
      In ISSTA 2004, Proceedings of the 2004 International 
      Symposium on Software Testing and Analysis, (Boston, 
      MA, USA), July 12­14, 2004, pp. 76­85.
    http://groups.csail.mit.edu/pag/pubs/David­Saff.html
   Ben Rady, Continuous Testing Explained, 2007, Object 
      Mentor Blog,
    http://blog.objectmentor.com/articles/2007/09/20/continuous­testing­explained

   Kent Beck, The Economic Case for JUnit Max, 2010, Three 
      Rivers Institute,
    http://www.threeriversinstitute.org/blog/?p=553

More Related Content

What's hot

Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Seiichi Sugahara
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2Masashi Shibata
 
Shibya.trac #2: TracとTestLinkの合わせ技
Shibya.trac #2: TracとTestLinkの合わせ技Shibya.trac #2: TracとTestLinkの合わせ技
Shibya.trac #2: TracとTestLinkの合わせ技Toshiyuki Kawanishi
 
ソフトウェア開発工程とテスト入門
ソフトウェア開発工程とテスト入門ソフトウェア開発工程とテスト入門
ソフトウェア開発工程とテスト入門tadaaki hayashi
 
8人の匠によるテスト戦略20080918
8人の匠によるテスト戦略200809188人の匠によるテスト戦略20080918
8人の匠によるテスト戦略20080918ssugiya
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)seichi23
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentechKotaro Ogino
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)kyon mm
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEWYusuke Tochigi
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talkkyon mm
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ将 高野
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2Tomoyuki Sato
 
ICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -ModelICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -ModelKinji Akemine
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
ゲーム開発環境の自動化
ゲーム開発環境の自動化ゲーム開発環境の自動化
ゲーム開発環境の自動化Masahiko Nakamura
 
Kaizen process with test #hackt
Kaizen process with test #hacktKaizen process with test #hackt
Kaizen process with test #hacktkyon mm
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナーTomoyuki Sato
 

What's hot (18)

Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
 
Shibya.trac #2: TracとTestLinkの合わせ技
Shibya.trac #2: TracとTestLinkの合わせ技Shibya.trac #2: TracとTestLinkの合わせ技
Shibya.trac #2: TracとTestLinkの合わせ技
 
ソフトウェア開発工程とテスト入門
ソフトウェア開発工程とテスト入門ソフトウェア開発工程とテスト入門
ソフトウェア開発工程とテスト入門
 
8人の匠によるテスト戦略20080918
8人の匠によるテスト戦略200809188人の匠によるテスト戦略20080918
8人の匠によるテスト戦略20080918
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEW
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
 
ICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -ModelICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -Model
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
ゲーム開発環境の自動化
ゲーム開発環境の自動化ゲーム開発環境の自動化
ゲーム開発環境の自動化
 
Kaizen process with test #hackt
Kaizen process with test #hacktKaizen process with test #hackt
Kaizen process with test #hackt
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 

Viewers also liked

Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with SymfonyAtsuhiro Kubo
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodAtsuhiro Kubo
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitAtsuhiro Kubo
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミングAtsuhiro Kubo
 
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテストCake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト慶信 若松
 
ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界Atsuhiro Kubo
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Atsuhiro Kubo
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Atsuhiro Kubo
 

Viewers also liked (9)

Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミング
 
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテストCake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト
 
ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 

Similar to Introduction to Continuous Testing

TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講Takashi Imagire
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!Funato Takashi
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーShuji Watanabe
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略Naoki Umehara
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDDTakuto Wada
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストOhishi Mikage
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前にYasui Tsutomu
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x AndroidToshiyuki Hirata
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるにはWataru Terada
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようToshiyuki Hirata
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料Hiroko Tamagawa
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetupNaoya Kojima
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本Tsuyoshi Yumoto
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
MPFなワールドへやってきたあなたへ@Karinto_20140402
MPFなワールドへやってきたあなたへ@Karinto_20140402MPFなワールドへやってきたあなたへ@Karinto_20140402
MPFなワールドへやってきたあなたへ@Karinto_20140402Kasumi Suzuki
 

Similar to Introduction to Continuous Testing (20)

TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDD
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
 
ITS fidel
ITS fidelITS fidel
ITS fidel
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
java-ja TDD 2nd
java-ja TDD 2ndjava-ja TDD 2nd
java-ja TDD 2nd
 
MPFなワールドへやってきたあなたへ@Karinto_20140402
MPFなワールドへやってきたあなたへ@Karinto_20140402MPFなワールドへやってきたあなたへ@Karinto_20140402
MPFなワールドへやってきたあなたへ@Karinto_20140402
 

More from Atsuhiro Kubo

Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1Atsuhiro Kubo
 
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2Atsuhiro Kubo
 
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applicationsThe Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applicationsAtsuhiro Kubo
 
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening ReportLean Architecture / DCI Evening Report
Lean Architecture / DCI Evening ReportAtsuhiro Kubo
 
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにSymfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにAtsuhiro Kubo
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストAtsuhiro Kubo
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストAtsuhiro Kubo
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPAtsuhiro Kubo
 
Piece Framework 2.0 Background
Piece Framework 2.0 BackgroundPiece Framework 2.0 Background
Piece Framework 2.0 BackgroundAtsuhiro Kubo
 

More from Atsuhiro Kubo (10)

MPD Osaka Extra 5
MPD Osaka Extra 5MPD Osaka Extra 5
MPD Osaka Extra 5
 
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
 
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2
 
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applicationsThe Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applications
 
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening ReportLean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
 
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにSymfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
 
Piece Framework 2.0 Background
Piece Framework 2.0 BackgroundPiece Framework 2.0 Background
Piece Framework 2.0 Background
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (8)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Introduction to Continuous Testing

  • 1. 2011/07/22 第 1 回 関西 PHP 勉強会 継続的テスト入門 株式会社アイテマン 久保敦啓 kubo@iteman.jp
  • 2. iteman  株式会社アイテマン 代表取締役  Piece Project プロジェクトリード  Twitter @iteman  師匠承ります  オブジェクト指向  テスト駆動開発  継続的テスト  DSL
  • 3. Piece Framework  PHP のアプリケーションフレームワーク  オープンソースソフトウェア  New BSD License  Eclipse Public License  Piece Project  開発者募集中  スポンサー募集中
  • 4. Piece Framework の歴史  2005 Stagehand_TestRunner  2006 Piece_Unity, Piece_Flow  2009 MakeGood  2011 ???
  • 5. アジェンダ  継続的テストとは?  継続的テストをサポートするツール  デモ  質疑応答
  • 6. 継続的テスト Continuous   Testing Day 61 ­ Watering tulips By Mourne http://www.flickr.com/photos/mourner/3552724584
  • 7. 継続的テストとは?  バックグラウンドで継続的に テストを実行する。  ファイルを変更するたびにテ ストを実行する。 素早いフィードバック!
  • 8. 初出  2004 年 MIT の David Saff 氏らによる 継続的テストの対照実験に基づく論文  継続的コンパイルにインスパイア (Continuous Compilation)
  • 9. 実験結果は…  継続的テストを行なった開発者はそうで ない開発者よりも、期限の前にタスクを 完了した人が 3 倍多かった。  継続的テストはテストに関連する 92­98% の無駄な時間を削減した。
  • 10. 継続的テストの効果  少ないオーバーヘッド  不具合の早期発見  テスト駆動開発の良い習慣の促進
  • 11. 少ないオーバーヘッド  継続的テストの最も明らかな効果  手動によるテスト実行時間を節約!  ツールが非常に重要な役割を果たす。
  • 12. 手動でテストを実行すると…  テスト実行の準備に数秒  テスト実行に数秒  結果の確認に数秒  失敗箇所の特定に数秒  エディタを開くまでに数秒 Galley Slaves By ChibiJosh http://www.flickr.com/photos/chibijosh/17867308
  • 13. 手動でテストを実行すると…  実行に 10 秒かかり、  1 時間に 50 回テストを実行し、  年 1000 時間プログラミングすると、  年間 139 時間が無駄に費やされる。
  • 14. 不具合の早期発見  継続的テストはエラーの混入と検出の間 の間隔を短くさせる。  予期しない失敗は解決に時間がかかる。  継続的テストは予期しない失敗をすぐに 見つける。
  • 15. テスト駆動開発の良い習慣の促進  ファイルを変更するたびにテストを実行 すると TDD の道から逸れにくくなる。  デバッグに頼らずに、動作するコードを 書きやすくなる。 ( 自然な TDD の導入 )  エラーの範囲が明確なので理解が簡単に なる。 ( 遅いテストの対策にもなる。 )  インクリメンタル開発のメリットの享受
  • 17. 継続的テストをサポートするツール  Infinitest ­ Java  JUnit Max – Java, Kent Beck  autotest(ZenTest) – Ruby  Stagehand_TestRunner – PHP  MakeGood – PHP
  • 21. まとめ  継続的テストは開発速度を向上させる。  良いツールを使うことが重要である。  MakeGood, Stagehand_TestRunner  新プロダクトを計画中!  継続的テストを日常とし、より良い プログラマーを目指すべし。
  • 22. 参考  David Saff, Michael D. Ernst, An experimental  evaluation of continuous testing during development,  In ISSTA 2004, Proceedings of the 2004 International  Symposium on Software Testing and Analysis, (Boston,  MA, USA), July 12­14, 2004, pp. 76­85. http://groups.csail.mit.edu/pag/pubs/David­Saff.html  Ben Rady, Continuous Testing Explained, 2007, Object  Mentor Blog, http://blog.objectmentor.com/articles/2007/09/20/continuous­testing­explained  Kent Beck, The Economic Case for JUnit Max, 2010, Three  Rivers Institute, http://www.threeriversinstitute.org/blog/?p=553