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

Preview:

Citation preview

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

Piece Project久保敦啓kubo@iteman.jp

オープンソースカンファレンス2011 Tokyo/Spring

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 (CodeIgniter) Behat (BDDフレームワーク )

SimpleTest CakePHP

テスティングフレームワーク

テストランナー

コマンドラインインターフェイス

Webインターフェイス

統合開発環境 (IDE)

ユーザーインターフェイス

エディタ+コマンドライン

エディタ+ Web IDE+コマンドライン

IDE+ Web IDEのみ

開発環境

Subversionと git

1.該当のバグが存在しない直近のリビジョンを特定する

2.現在のリビジョンとの中間のリビジョンをチェックする

3.バグが再現するかどうかをチェックする

4.2に戻る

バグが混入したリビジョンの特定

$ git bisect start$ git bisect bad$ git bisect good v1.0$ git bisect bad...$ git bisect goodb047b02ea83310a70fd603dc8cd7a6cd13d15c04 is first bad commit...

git bisect

ワークフローを機能として実装する

人間の判断が必要な箇所以外を徹底して自動化する

「使い方を機能として実装する」

テストの実行

失敗したアサーション行への移動

エラーの原因の特定

致命的なエラーの発生行への移動

テスト実行関連ワークフロー

テストを特定する

テストを実行する

結果を確認する

テストの実行

1.失敗したアサーションを特定する

2.ファイルを開く

3.失敗したアサーションの行に移動する

失敗したアサーション行への移動

1.スタックトレースからエラーになったファイルと行を特定する

2.対象ファイルを開く

3.対象行に移動する

4.1に戻る

エラー原因の特定

1.エラーが発生したファイルと行を特定する

2.対象ファイルを開く

3.対象行に移動する

致命的なエラーの発生行への移動

継続的テストランナー

Eclipse PDT 素早いフィードバック

MakeGoodとは?

PHPUnit CIUnit (CodeIgniter) SimpleTest CakePHP

各種フレームワークのサポート状況

ファイル保存時のすべてのテストの実行

失敗・エラー・致命的なエラーの自動的な追跡

テストの実行・デバッグ

マルチバイト文字のサポート

主な特徴

Eclipse for PHP Developers Helios SR2

http://www.eclipse.org/downloads/

Tools for PDT http://sourceforge.jp/projects/pdt-tools/releases/51060

パッチ済みプラグイン 致命的な不具合を解決するために必要

推奨環境

Eclipseに更新サイトeclipse.piece-framework.comを設定し、そこからインストールできる

インストール

テスト実行の並列化 すべてのテストの実行を高速化する

Aptana Studio 3のサポート

モッキングフレームワークサポート

明示的な依存関係の定義 テストとクラスを結びつける

Test Outlineビュー

今後の予定

@piece_framework Piece Frameworkのニュース

@iteman iteman

@matsu_hide まっつん

Twitter

GitHub http://github.com/piece

Piece Frameworkプロダクトページ http://redmine.piece-framework.com

MakeGoodプロダウトページ http://redmine.piece-

framework.com/projects/makegood

関連サイト

Pro Git http://progit.org/book/ja/ 江渡 浩一郎、『パターン、 Wiki、 XP ~時

を超えた創造の原則 (WEB+DB PRESS plusシリーズ ) 』、技術評論社、 2009年 , ISBN 978-4774138978

参考

Recommended