Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
オープンソースカンファレンス2011 Tokyo/SpringMakeGood で快適なテスト駆動開発を                    Piece Project                    久保敦啓             ...
iteman    Piece Framework 開発者    Piece Project プロジェクトリード    Twitter @iteman
Piece Framework    PHP のアプリケーションフレームワーク   オープンソースソフトウェア              New BSD License              Eclipse Public License
歴史    2005 Stagehand_TestRunner    2006 Piece_Unity, Piece_Flow    2009 MakeGood    2011 ???
テスト駆動開発Test-Driven Development         (TDD)
Red/Green/Refactor    Red - テストコードを書く    Green - プロダクションコードを書く    Refactor - リファクタリングを行う
テスティングフレームワーク    PHPUnit                Symfony2, CakePHP 2.0, Zend           Framework                CIUnit (CodeIgni...
テストランナー
ユーザーインターフェイス   コマンドラインインターフェイス    Web インターフェイス    統合開発環境 (IDE)
開発環境   エディタ+コマンドライン    エディタ+ Web    IDE +コマンドライン    IDE + Web    IDE のみ
Subversion と git
バグが混入したリビジョンの特定1.該当のバグが存在しない直近のリビジョ   ンを特定する2.現在のリビジョンとの中間のリビジョン   をチェックする3.バグが再現するかどうかをチェックする4.2 に戻る
git bisect$ git bisect start$ git bisect bad$ git bisect good v1.0$ git bisect bad...$ git bisect goodb047b02ea83310a70fd6...
「使い方を機能として実装する」   ワークフローを機能として実装する   人間の判断が必要な箇所以外を徹底して     自動化する
テスト実行関連ワークフロー   テストの実行   失敗したアサーション行への移動   エラーの原因の特定   致命的なエラーの発生行への移動
テストの実行   テストを特定する   テストを実行する   結果を確認する
失敗したアサーション行への移動1.失敗したアサーションを特定する2.ファイルを開く3.失敗したアサーションの行に移動する
エラー原因の特定1.スタックトレースからエラーになった   ファイルと行を特定する2.対象ファイルを開く3.対象行に移動する4.1 に戻る
致命的なエラーの発生行への移動1.エラーが発生したファイルと行を特定す   る2.対象ファイルを開く3.対象行に移動する
MakeGood とは?   継続的テストランナー    Eclipse PDT   素早いフィードバック
各種フレームワークのサポート状況    PHPUnit    CIUnit (CodeIgniter)    SimpleTest    CakePHP
主な特徴   ファイル保存時のすべてのテストの実行   失敗・エラー・致命的なエラーの自動的     な追跡   テストの実行・デバッグ   マルチバイト文字のサポート
推奨環境    Eclipse for PHP Developers     Helios SR2                http://www.eclipse.org/downloads/    Tools for PDT    ...
インストール    Eclipse に更新サイト     eclipse.piece-framework.com を     設定し、そこからインストールできる
今後の予定   テスト実行の並列化         すべてのテストの実行を高速化する    Aptana Studio 3 のサポート   モッキングフレームワークサポート   明示的な依存関係の定義         テストとクラス...
Twitter    @piece_framework                Piece Framework のニュース    @iteman                iteman    @matsu_hide     ...
関連サイト    GitHub                http://github.com/piece    Piece Framework プロダクトページ                http://redmine.piece...
参考    Pro Git http://progit.org/book/ja/    江渡 浩一郎、『パターン、 Wiki 、 XP ~ 時     を超えた創造の原則 (WEB+DB PRESS     plus シリーズ ) 』、技術...
Upcoming SlideShare
Loading in …5
×

MakeGoodで快適なテスト駆動開発を

3,519 views

Published on

Published in: Technology
  • Be the first to comment

MakeGoodで快適なテスト駆動開発を

  1. 1. オープンソースカンファレンス2011 Tokyo/SpringMakeGood で快適なテスト駆動開発を Piece Project 久保敦啓 kubo@iteman.jp
  2. 2. iteman Piece Framework 開発者 Piece Project プロジェクトリード Twitter @iteman
  3. 3. Piece Framework PHP のアプリケーションフレームワーク オープンソースソフトウェア  New BSD License  Eclipse Public License
  4. 4. 歴史 2005 Stagehand_TestRunner 2006 Piece_Unity, Piece_Flow 2009 MakeGood 2011 ???
  5. 5. テスト駆動開発Test-Driven Development (TDD)
  6. 6. Red/Green/Refactor Red - テストコードを書く Green - プロダクションコードを書く Refactor - リファクタリングを行う
  7. 7. テスティングフレームワーク PHPUnit  Symfony2, CakePHP 2.0, Zend Framework  CIUnit (CodeIgniter)  Behat (BDD フレームワーク ) SimpleTest  CakePHP
  8. 8. テストランナー
  9. 9. ユーザーインターフェイス コマンドラインインターフェイス Web インターフェイス 統合開発環境 (IDE)
  10. 10. 開発環境 エディタ+コマンドライン エディタ+ Web IDE +コマンドライン IDE + Web IDE のみ
  11. 11. Subversion と git
  12. 12. バグが混入したリビジョンの特定1.該当のバグが存在しない直近のリビジョ ンを特定する2.現在のリビジョンとの中間のリビジョン をチェックする3.バグが再現するかどうかをチェックする4.2 に戻る
  13. 13. git bisect$ git bisect start$ git bisect bad$ git bisect good v1.0$ git bisect bad...$ git bisect goodb047b02ea83310a70fd603dc8cd7a6cd13d15c04 is first bad commit...
  14. 14. 「使い方を機能として実装する」 ワークフローを機能として実装する 人間の判断が必要な箇所以外を徹底して 自動化する
  15. 15. テスト実行関連ワークフロー テストの実行 失敗したアサーション行への移動 エラーの原因の特定 致命的なエラーの発生行への移動
  16. 16. テストの実行 テストを特定する テストを実行する 結果を確認する
  17. 17. 失敗したアサーション行への移動1.失敗したアサーションを特定する2.ファイルを開く3.失敗したアサーションの行に移動する
  18. 18. エラー原因の特定1.スタックトレースからエラーになった ファイルと行を特定する2.対象ファイルを開く3.対象行に移動する4.1 に戻る
  19. 19. 致命的なエラーの発生行への移動1.エラーが発生したファイルと行を特定す る2.対象ファイルを開く3.対象行に移動する
  20. 20. MakeGood とは? 継続的テストランナー Eclipse PDT 素早いフィードバック
  21. 21. 各種フレームワークのサポート状況 PHPUnit CIUnit (CodeIgniter) SimpleTest CakePHP
  22. 22. 主な特徴 ファイル保存時のすべてのテストの実行 失敗・エラー・致命的なエラーの自動的 な追跡 テストの実行・デバッグ マルチバイト文字のサポート
  23. 23. 推奨環境 Eclipse for PHP Developers Helios SR2  http://www.eclipse.org/downloads/ Tools for PDT  http://sourceforge.jp/projects/pdt-tools/releases/51060  パッチ済みプラグイン  致命的な不具合を解決するために必要
  24. 24. インストール Eclipse に更新サイト eclipse.piece-framework.com を 設定し、そこからインストールできる
  25. 25. 今後の予定 テスト実行の並列化  すべてのテストの実行を高速化する Aptana Studio 3 のサポート モッキングフレームワークサポート 明示的な依存関係の定義  テストとクラスを結びつける Test Outline ビュー
  26. 26. Twitter @piece_framework  Piece Framework のニュース @iteman  iteman @matsu_hide  まっつん
  27. 27. 関連サイト GitHub  http://github.com/piece Piece Framework プロダクトページ  http://redmine.piece-framework.com MakeGood プロダウトページ  http://redmine.piece- framework.com/projects/makegood
  28. 28. 参考 Pro Git http://progit.org/book/ja/ 江渡 浩一郎、『パターン、 Wiki 、 XP ~ 時 を超えた創造の原則 (WEB+DB PRESS plus シリーズ ) 』、技術評論社、 2009 年 , ISBN 978-4774138978

×