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