SlideShare a Scribd company logo
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 (18)

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

Viewers also liked (9)

Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
Atsuhiro 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 MakeGood
Atsuhiro Kubo
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro 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
 
Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
Atsuhiro 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 MakeGood
Atsuhiro Kubo
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro 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
 

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 補講
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 TDD
Takuto Wada
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki 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-meetup
Naoya 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_20140402
Kasumi Suzuki
 
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 TDD
Takuto Wada
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki 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-meetup
Naoya 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_20140402
Kasumi Suzuki
 

More from Atsuhiro Kubo (10)

MPD Osaka Extra 5
MPD Osaka Extra 5MPD Osaka Extra 5
MPD Osaka Extra 5
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 1
Atsuhiro 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 2
Atsuhiro 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 applications
Atsuhiro Kubo
 
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening ReportLean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
Atsuhiro 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 PHP
Atsuhiro Kubo
 
Piece Framework 2.0 Background
Piece Framework 2.0 BackgroundPiece Framework 2.0 Background
Piece Framework 2.0 Background
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 1
Atsuhiro 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 2
Atsuhiro 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 applications
Atsuhiro Kubo
 
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening ReportLean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
Atsuhiro 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 PHP
Atsuhiro Kubo
 
Piece Framework 2.0 Background
Piece Framework 2.0 BackgroundPiece Framework 2.0 Background
Piece Framework 2.0 Background
Atsuhiro Kubo
 

Recently uploaded (8)

PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdfIchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
Matsushita Laboratory
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdfIchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
Matsushita Laboratory
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 

Introduction to Continuous Testing

  • 1. 2011/07/22 第 1 回 関西 PHP 勉強会 継続的テスト入門 株式会社アイテマン 久保敦啓 [email protected]
  • 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