eclipse pdt + makegoodによるphpコードのテスト
TRANSCRIPT
![Page 1: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/1.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 1 -
Piece Project
久保敦啓 http://twitter.com/iteman 松藤秀治 http://twitter.com/matsu_hide
Eclipse PDT + MakeGoodによるPHPコードのテスト
OSC 2010 Kansai@Kyoto (2010/7/10)
![Page 2: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/2.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 2 -
自己紹介
まっつん
松藤 秀治 (まつふじ ひではる)
Piece Project
Eclipseプラグイン
まっつんチャレンジ (ITEMAN Blog)
![Page 3: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/3.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 3 -
アジェンダ
1. Piece Frameworkの活動
2. テスト駆動開発
3. MakeGoodのご紹介
4. IDEを使ったテスト
5. MakeGoodのデモ
![Page 4: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/4.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 4 -
Piece Framework とは?
PHPのアプリケーションフレームワーク
PHPの世界にジェネレーティブプログラミング、DSL, 言語ワークベンチ、言語指向プログラミングを導入することを目的としている
![Page 5: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/5.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 5 -
Piece Frameworkの主なプロダクト
Piece_Unity
Webアプリケーションフレームワーク
Piece_ORM
オブジェクトリレーショナルマッピングフレームワーク
Piece_Right
バリデーションフレームワーク
Piece_Flow
Webフローエンジン
Piece_IDE
Eclipse上に構築されたPiece Frameworkの統合開発環境
![Page 6: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/6.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 6 -
Piece_IDE
![Page 7: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/7.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 7 -
Piece Framework の主なプロダクト
Stagehand_TestRunner
テスト駆動開発のためのテストランナー
MakeGood
Eclipse PDTでテスト駆動開発を行うためのテストランナー
![Page 8: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/8.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 8 -
Stagehand_TestRunner
![Page 9: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/9.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 9 -
今後の計画
「与えられた特定の要求仕様を元に、構成の知識を生かし、再利用可能な基本部分を使って、カスタム化かつ最適化された中間または最終製品を自動的に生成します。」-- 「ジェネレーティブプログラミング」
![Page 10: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/10.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 10 -
今後の計画
ジェネレーティブプログラミング
ドメイン駆動設計 プロダクトライン モデル駆動開発 …DSL, DI, AOP, …
![Page 11: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/11.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 11 -
今後の計画
MakeGood
コンフィギュレーションエンジン
ワークフローエンジン
Eclipseプラグイン
既存のプロダクトのリニューアル
…
![Page 12: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/12.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 12 -
開発に参加するには?(GitHub)
1. パッチ、拡張を適用したいプロダクトをforkする。
2. パッチ、拡張を適用する。
3. pieceアカウントにpull requestを送信する。
![Page 13: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/13.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 13 -
テスト駆動開発 (TDD)
「動作するきれいなコード」-- Ron Jeffries
TDDにおけるテスト≠QAのテスト
![Page 14: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/14.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 14 -
何をテストするのか?
例えば、入力された基本給から社会保険料を計算し表示する Web アプリケーションの場合。
もっとも重要な社会保険料を計算する部分をテストする。
![Page 15: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/15.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 15 -
テストしやすいアーキテクチャ
表示したり、バリデーションを行ったり、計算したりするコードが一ヶ所に固まっているとテストできない!
Web アプリケーションフレームワークを使って役割を分離する。
![Page 16: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/16.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 16 -
TDDの重要な要素
テストの自動実行
素早いフィードバック
![Page 17: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/17.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 17 -
MakeGood
MakeGoodは、Eclipse PDT上でユニットテストを実行するためのテストランナーを提供します。
MakeGoodは、様々な特徴により テスト駆動開発(TDD: Test Driven Development)を強力にサポートします。
![Page 18: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/18.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 18 -
特徴
パッケージエクスプローラ、PHPエディタからのテストの実行 テストコード プロダクトコードすべてのテストの実行ファイル保存時のテストの実行
![Page 19: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/19.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 19 -
特徴
テストの停止最初の失敗またはエラーの際の停止デバッグ
![Page 20: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/20.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 20 -
特徴
結果ビューからのPHPファイルのオープンキーバインディングテスト実行時にシステムインクルードパスが使用可能PHPUnit, SimpleTestのサポート
![Page 21: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/21.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 21 -
PHPをサポートしているIDE
Zend Studio 7.1.2 (有償)
NetBeans 6.9 (無償)
PhpStorm 1.0 (有償)
Eclipse PDT 2.2 (無償)
他にも、Delphi for PHP, VS.Phpなどがある。
![Page 22: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/22.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 22 -
Zend Studio 7.1.2
【テストの実行・停止】 △△ エクスプローラ △△ PHPエディタ (テストコード) ×× PHPエディタ (プロダクトコード) ○○ すべてのテストの実行 ×× ファイル保存時のテストの実行 ○○ 停止 ×× 最初の失敗またはエラーの際の停止 ○○ デバッグ
【素早いフィードバック】 ○○ 結果ビューからPHPファイルを開く △△ キーバインディング
【テスティングフレームワーク】 ○○ PHPUnit ×× SimpleTest
![Page 23: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/23.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 23 -
NetBeans 6.9
【テストの実行・停止】 △△ エクスプローラ △△ PHPエディタ (テストコード) ×× PHPエディタ (プロダクトコード) ×× すべてのテストの実行 ×× ファイル保存時のテストの実行 ×× 停止 ×× 最初の失敗またはエラーの際の停止 ○○ デバッグ
【素早いフィードバック】 ○○ 結果ビューからPHPファイルを開く △△ キーバインディング
【テスティングフレームワーク】 ○○ PHPUnit ×× SimpleTest
![Page 24: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/24.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 24 -
PhpStorm 1.0
【テストの実行・停止】 △△ エクスプローラ △△ PHPエディタ (テストコード) ×× PHPエディタ (プロダクトコード) ×× すべてのテストの実行 ×× ファイル保存時のテストの実行 ○○ 停止 ×× 最初の失敗またはエラーの際の停止 ○○ デバッグ
【素早いフィードバック】 ○○ 結果ビューからPHPファイルを開く △△ キーバインディング
【テスティングフレームワーク】 ○○ PHPUnit ×× SimpleTest
![Page 25: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/25.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 25 -
メニューからのテストの実行
![Page 26: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/26.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 26 -
テスト成功時のMakeGoodビュー
![Page 27: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/27.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 27 -
テスト失敗時のMakeGoodビュー
![Page 28: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/28.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 28 -
プロジェクトのプロパティー
![Page 29: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/29.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 29 -
必要なソフトウェア
PHPZend Debugger または XdebugEclipse 3.5, PDT 2.1Eclipse 3.6, PDT 2.2(0.7.0 でサポート予定)
(オプション)Stagehand_TestRunner 2.11.2 以降PHPUnit 3.4.1 以降SimpleTest 1.0.1 以降
![Page 30: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/30.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 30 -
提供を予定している主なフィーチャ
Eclipse 3.6(PDT2.2)のサポート
システムインクルードパス
プロダクトコードからの実行 スタックトレースからのファ イルオープン
![Page 31: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/31.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 31 -
今後の目標
継続的テスティング(Continuous Testing)環境への進化
素早いフィードバック
リファクタリングサポート
クイックフィックス
![Page 32: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/32.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 32 -
リリースのお知らせ
Twitterやオフィシャルサイト、ITEMAN Blogなどでお知らせします。
是非ご購読をお願いします。
![Page 33: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/33.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 33 -
ご意見、ご要望、パッチ求む
まずは使ってみてください。
ご意見、ご要望、パッチなど、お待ちしております。
![Page 34: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/34.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 34 -
http://twitter.com/piece_framework
Piece Frameworkのニュース
http://twitter.com/iteman
iteman
http://twitter.com/matsu_hide
まっつん
http://twitter.com/kumatch
kumatch
![Page 35: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/35.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 35 -
メーリングリスト、フォーラム
メーリングリスト: Googleグループ Piece Framework Users (ja)
フォーラム: http://redmine.piece-framework.com プロダクトごとに準備中です
![Page 36: Eclipse PDT + MakeGoodによるPHPコードのテスト](https://reader034.vdocuments.mx/reader034/viewer/2022042513/55660205d8b42a2a4d8b4f6b/html5/thumbnails/36.jpg)
Copyright 2010 Piece Project, All rights reserved.©- 36 -
関連サイト
Piece Frameworkオフィシャルサイト http://piece-framework.com/
GitHub http://github.com/piecePiece Frameworkプロダクトページ http://redmine.piece-framework.com/
ITEMAN Blog http://iteman.jp/blog/