タグ

ブックマーク / www.ryuzee.com (8)

  • 【資料公開】自動テスト vs 手動テスト

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたところ自動テストと手動テストに関する良いスライドがあったので、翻訳して公開します。 ライセンスはオリジナルに準じてCC BY-SA 3.0とします。 内容としては、僕自身も一貫して主張しているテスト自動化の必要性の話で、主に以下の観点で記載されています。 作業量とコスト再利用性ユニットテストによる良い設計への誘導手動テストのリスクリスクマネジメント書き方が若干極端な箇所もあると思いますが、全体としてはかなり分かりやすいのではないでしょうか。 なお、テストの自動化に際しては、必ずしも全てのテストを自動化「しなければならない」わけではありません。 スライドではROIの例があがっていますが、テストの自動化のコスト>手動コストの1回あたりのコスト×実行回数になる場合もあり得るので、ROIやテスト自動化によって得られる効果に

    【資料公開】自動テスト vs 手動テスト
  • php phpdcd (Dead Code Detector)を試してみた

    phpdcdはPHP Dead Code Detector という名の通り、使っていないコードを検出してくれるツールである。 ウノウラボさんのPHPで利用出来るテストと開発に便利なツールで知ったので評価してみた。 なお、Dead CodeについてはWikiPediaのこのページが詳しい。 インストール 普通にpearコマンドでインストールできる。 pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear update-channels pear install phpunit/phpdcd 以上でインストールが完了する。 実行 まずは引数なしで実行してみよう。オプションが分かる。(–helpを付けたときと同じ) [root@CI01 ryuzee]# phpdcd phpdcd 0.9

    php phpdcd (Dead Code Detector)を試してみた
  • BehatとSeleniumを組み合わせ受け入れテストを自動化する

    みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Behavior Driven Development)する方法 Seleniumの課題僕が関わっている案件では受入テストを自動化しているケースももちろんあって、その際はPHPUnitとSeleniumを組み合わせています。 このテストには以下のような課題があります。 画面の操作をするphpコードが大量にあって、ソースを見ただけでは何をしているのか分かりにくいSeleniumは操作に画面の要素名利用するため、例えばサイトのデザインを大幅に変えたりすると、テストの中身も大幅に書き換えな

    BehatとSeleniumを組み合わせ受け入れテストを自動化する
  • PHPでBDD(Behavior Driven Development)する方法

    みなさんこんにちは。@ryuzeeです。 RubyであればRSpecやCucumberとか使って、むしろBDDしているケースの方が多いようですが、PHPでやっている事例はあまり聞きません。 とりあえずPHPでもBDDできることは確認できたので、その方法をご紹介します。 ※実戦投入にはもうちょっと検証は必要かもしれません。 BDDとは?BDDとはビヘイビア駆動開発(Behavior Driven Development)でテスト駆動開発から派生したものです。 テスト駆動開発とドメイン駆動設計を統合したようなイメージになります。 対象における「振る舞い」や「制約条件」の検証のために、自然言語的な記述でテストコードを記述します。 スペックファーストで仕様を作ってから実装するという流れになります(コードを書く前に振る舞いを決める)。 ということで、以下ではPHPでBDDを行う方法について解説してい

    PHPでBDD(Behavior Driven Development)する方法
  • CakePHPアプリをNetBeans+xdebugでデバッグする

    2012/5/26 追記と修正を行いました よくあるパターンの割に、Eclipse(PDT)での解説しかないので、今後利用する人のために手順を残しておく。 確認した環境は以下の2つだ。 MacOS X(Snow Leopard) + NetBeans6.9.1 + CakePHP1.3 + xdebug2.1.0。ApacheはMAMPではなく、MacPortsでインストール MacOS X(Lion) + NetBeans7.1.2 + CakePHP1.3 + xdebug2.2.0。ApacheはLion標準。PHPはHomeBrewでインストール PHPにpearを組み込む xdebugのインストールにはpeclコマンドを利用するのだが、MacPortsで何も考えずにPHPをインストールすると、pearがサポートされない形になっているので以下のようにして、pearを組み込む。 su

    CakePHPアプリをNetBeans+xdebugでデバッグする
  • CakePHPでファイル出力機能のテストをする

    みなさんこんにちは。@ryuzeeです。 CakePHPでファイル出力系の機能のテストを行う場合のTipsをご紹介します。 例えばコントローラーの中でこんなファイル出力系の機能があったとします。 function output() { $this->lauout = null; $filename = "test.txt"; header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-T

    CakePHPでファイル出力機能のテストをする
  • Hudson+phpmdでPHPコードの問題を自動検出する方法

    Hudson+PHPシリーズです(Javaとか他の言語でもいけるはずです)。 phpmdって何?phpmdはPHP Mess Ditectorの略で、PHPコードの潜在的なバグになりそうな箇所や実装上の問題を検出してくれるツールです。 例えば未使用の変数の指摘、多数のpublicメソッドのある巨大クラスの検出、一文字変数等もこのツールで検出可能です。 詳細はhttp://phpmd.org/about.htmlを参照してください。 phpmdのインストールこれは簡単で、いつものようにpearコマンドでさくっと入ります pear channel-discover pear.pdepend.org pear install --alldeps pdepend/PHP_Depend-beta pear channel-discover pear.phpmd.org pear channel-di

    Hudson+phpmdでPHPコードの問題を自動検出する方法
  • CakePHPアプリをHudsonで継続的インテグレーションする方法

    この記事はCakePHP1.2系またら1.3系を対象としており、CakePHP2.0系では別のアプローチになります。 不思議なことにCakePHPアプリの開発でHudson使って継続的インテグレーションしている事例をほとんど見たことがないんだけど、個人的にはPHPアプリだって全部HudsonでCIすべきと思っているのでやってみた。 (ちなみに最近までphpUnderControlでCIしていた) 概略 CakePHPアプリでCIやろうとして問題になるのは、 CakePHPでのテストライブラリがSimpleTestでありJUnit互換のテスト結果を出力できないこと さらにSimpleTestでは一応XMLでの結果出力ができるのに、CakePHPreporterにcake_xml_reporterとかが無くて、html出力かテキスト出力しかできない という2点にあるので、この2点をクリアする

    CakePHPアプリをHudsonで継続的インテグレーションする方法
  • 1