タグ

testに関するs-edyのブックマーク (18)

  • PHPUnit と Selenium RCで機能テストをやってみる : エクスギア Blog

    PHPのテストライブラリとしては一番有名どころのPHPUnitと実際のブラウザをJavaScriptを使って画面遷移をテストすることができるSelenium RCを使って実際に結合テストを行ってみたので今回紹介したいと思います。 PHPUnit PHPUnitPHPの一番有名なテストライブラリです。テストケースを用意することで仕様変更にも強いアプリケーション開発が可能になります。 さまざまなことができるPHPUnitですが、PHPUnitだけでは画面遷移のような機能テストは難しいものです。 なぜなら、PHPだけで画面遷移を確認するためにはブラウザの動きをシミュレーションしたライブラリを使ったりしてテストする方法になってしまうからです。 たとえばsymfony1系ではsfTestBrowserというライブラリが用意されていてこのライブラリを利用することでテストが行えるようになっていますが、

  • 防御的プログラミング(2): 柴田 芳樹 (Yoshiki Shibata)

    防御的プログラミングに関して、いくつか記事を書いています。 防御的プログラミング 防御的プログラミングとテスト駆動開発 防御的プログラミングしない後ろ向きの理由 防御的プログラミングしない後ろ向きの理由(2) 防御的プログラミングとカバレッジ 防御的にプログラミングするというのは、公開APIの仕様にその内容を反映するということです。つまり、不正なパラメータが渡された時に、どのように振る舞うか(どのような例外をスローするかとか)を仕様書に記述する訳です。しかし、開発組織として防御的プログラミングの重要性を認識していない場合には、次のようなことが起きています。 開発者の多くが言葉としての「防御的プログラミング」を聞いたこともない。 APIの仕様書には正常な場合の処理内容しか書かれておらず、不正なパラメータが渡された場合の振る舞いが何も記述されていない。 結果として、APIの実装コードでは不正パ

    防御的プログラミング(2): 柴田 芳樹 (Yoshiki Shibata)
    s-edy
    s-edy 2010/10/16
  • Hudson+phpcpdで継続的に重複コードをチェックする

    Hudson等を使った継続的インテグレーションでは、テストの自動実行の他にも、ドキュメントの自動作成、コーディング規約の自動チェック、重複コードのチェック(DRY原則のチェック)等を行うことができるし、実行するべきである。 今回は、PHP+Hudsonの環境でコードの重複を継続的にチェックできるようにしてみた。 phpcpdPHPでコードの重複を検査するには、phpcpdというツールを使うのが定番である。 phpcpdはpearコマンドでインストール可能だ。 なお、phpcpdを利用するためには、pearが1.9.1以上である必要がある。 インストール手順 pear upgrade pear pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear install phpunit/ph

    Hudson+phpcpdで継続的に重複コードをチェックする
    s-edy
    s-edy 2010/10/02
    やってみたい
  • Hudsonでsymfony自動テスト環境をつくる | Act as Professional

    HudsonというJavaでつくられたCI(継続的インテグレーション)ツールを使って、symfonyの自動テストを継続的インテグレーションされる環境をつくる方法です。 継続的インテグレーションや自動テスト環境とは? XPやアジャイル開発手法でのプラクティスです。とても開発者を幸せにしてくれるものです。 プログラマーがユニットテストなどの自動テストを書く 実際の機能となるコードを書く 自分が変更した範囲のテストコードが通ることを確認する バージョン管理システムにコミットする HudsonなどのCIツールなどによって、すべての自動テストが走る。(結合テストとも呼ばれる) テスト結果にエラーがある場合、メールなどで通知される こうすることによって、開発者は常にテストが通るソースコードを維持し続けることができます。 万が一、他の機能を壊すコードを書いてしまったりバグを埋め込んでしまえば、いつのコミ

    Hudsonでsymfony自動テスト環境をつくる | Act as Professional
  • ソフトウェア品質の12の属性

    システム開発において「品質の向上」という標語がしばしば掲げられますが、 「品質の属性」については無頓着なケースが多いのではないでしょうか。 ひとくちに品質といっても多様な属性があります。 顧客と品質の話で揉めたことはありませんか? 品質には多様な属性があり、単一の軸で良しあしを決められないという側面があります。 そのため、単に「品質」と言ってしまうと認識に齟齬が生じるのです。 Karl E. Wiegers氏が著書 「ソフトウェア要求」 で挙げた、すべてのプロジェクトが検討すべき12の属性は以下のとおりです。 可用性availability 動作可能時間の指標。システム故障までの平均時間MTTF(Mean Time To Failure)を 平均修復時間MTTR(Mean Time To Repair)とMTTFの合計で割った値。稼働率とも呼ばれる。 効率性efficiency 同じ処理性

  • TDDはテスタビリティの保証をしてくれるのかも - プログラマーの脳みそ

    TDD Boot Camp 北陸行ってきました。 TDDはテストドリブンデベロップメントの略で、自働テストを書いてから実装を書くというスタイル。ここでよく誤解されるのだけど、業務でおなじみ単体テストや結合テストといった網羅的なテストを記述してから実装を書くわけではない。目の前の1歩分、ひとつだけテストを書き、すぐさま実装を書いて自働テストをグリーンにする、というやり方をするのだ。こればかりは実際にやってみないと誤解は解けないかもしれない。 さて、深夜のテストTL - Togetterや、TDDはテスト手法か否か - Togetterで議論されている「TDDは品質保証の手法ではない」という部分に関する議論。ここでいう「品質保証」はバグがないこと、ソフトウェア品質の12の属性でいう信頼性(reliability)が高いことを指す。 TDDのスタイルには網羅的な検査をしてバグをあぶりだすようなフ

    TDDはテスタビリティの保証をしてくれるのかも - プログラマーの脳みそ
    s-edy
    s-edy 2010/03/20
  • いまからでも間に合う開発者テスト - mixi engineer blog

    はじめまして。開発部じゃない加藤和良です。 最近、mixi では Buildbot をつかった継続的インテグレーションをはじめています。安定版の mixi のソースコードにコミットすると Buildbot がそれを検知し、自動的にテストが走るようになりました。 ここでの「テスト」は Test::Simple や prove(1) をつかった、Perl でかかれた開発者テストを指しています。mixi の開発者テストをとりまく環境は、ここ数年でかなり改善されました。今回はその歩みをふりかえりながら、テストの無いコードベースをどこからどうやって変えていったかという話をしたいと思います。 開発環境 はじめに、前提となる mixi の開発環境について説明します。mixi では複数人の開発者がひとつのマシンで作業を行います。それぞれの開発者は、あらかじめ割り当てられたポートで Apache を起動し、

    いまからでも間に合う開発者テスト - mixi engineer blog
    s-edy
    s-edy 2010/03/03
  • Blue Ridge 1.0: JavaScript Unit Testing for Rails. Scandalous!

    Blue Ridge 1.0: JavaScript Unit Testing for Rails. Scandalous! You wouldn’t consider developing a Rails application without having a solid test suite for your Ruby code, but you’ve somehow convinced yourself to cross your fingers and look the other way when it comes to JavaScript. It doesn’t have to be that way. Meet Blue Ridge, a Rails plugin that brings the goodness of test-driven and behavior-d

    Blue Ridge 1.0: JavaScript Unit Testing for Rails. Scandalous!
    s-edy
    s-edy 2010/02/01
    railsからblue-ridgeを使う方法。
  • GitHub - relevance/blue-ridge: Framework for JavaScript Testing (currently a Rails Plugin)

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - relevance/blue-ridge: Framework for JavaScript Testing (currently a Rails Plugin)
    s-edy
    s-edy 2010/02/01
    Javascriptのテストフレームワーク
  • JSpec - JavaScript Testing Framework

    JSpec JavaScript Testing Framework JSpec is a extremely small, yet very powerful testing framework. Utilizing its own custom grammar and pre-processor, JSpec can operate in ways that no other JavaScript testing framework can. This includes many helpful shorthand literals, a very intuitive / readable syntax, as well as not polluting core object prototypes. JSpec can also be run in a variety of ways

    s-edy
    s-edy 2010/01/08
    javascriptのテストフレームワーク.
  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ
    s-edy
    s-edy 2009/12/14
  • symfony/lime + phpUnderControl を使ってみる

    こんにちは、亀です。アシアルも技術者の人数がそこそこ増えてきて、技術ブログの当番が回ってくるまで日数がかかるようになったためか、久方ぶりのブログです。 さてさて、今回はちょっとツール使う系の話です。 ちょっと前にPHP勉強会で「phpUnderControl」というツールの事が話題に上がっていたのを見たのですが、これが個人的にはなかなか惹かれるツールでした。 phpUnderContorl とは phpUnderControlとは、「継続インテグレーション」というアジャイル開発手法(厳密には、アジャイルで提唱されたというより昔からあった概念のようです)を実現するための自動ビルド/テスト/開発支援ツールです。 PHPはビルドいらずのスクリプト言語なので、自動ビルドと言われても( ゚Д゚)ハァ?って感じですが、phpUnderControlは単純なビルドにとどまらず、色々な事をやってくれます

    symfony/lime + phpUnderControl を使ってみる
  • limeにプラグイン機構を乗っけてみた - Lism.in * blog - nekoya (id:studio-m)

    symfonyのテストフレームワークlimeはPHP版のTest::Moreとして単体で使うにも具合がいいけど、Test::More単体の機能しか備えてないので、拡張モジュールでサポートされているようなテストが出来ない。 例えば、例外のテストなんかはTest::Exceptionが提供するthrows_okで簡単に書けるけど、これを標準のlimeでやろうとすると、 <?php try { $threw = false; $obj->hoge(); // throw Exception } catch (Exception $e) { $threw = true; $t->is( $e->getMessage(), 'HOGEHOGE' ); } $t->ok( $threw === true, 'threw Exception' ); みたいなテストを書くことになって面倒。(追記:サンプル

    limeにプラグイン機構を乗っけてみた - Lism.in * blog - nekoya (id:studio-m)
  • symfony - open-source PHP5 web framework

    Services Platform.sh for Symfony Best platform to deploy Symfony apps SymfonyInsight Automatic quality checks for your apps Symfony Certification Prove your knowledge and boost your career SensioLabs Professional services to help you with Symfony Blackfire Profile and monitor performance of your apps

    symfony - open-source PHP5 web framework
    s-edy
    s-edy 2009/05/22
    sfFormについて
  • WEBアプリ開発に便利な機能&負荷テストツール集:phpspot開発日誌

    15 Free Functionality And Load Testing Tools For Web Applications WEBアプリ開発に便利な機能&負荷テストツール集。 プログラム変更後の品質チェックを行える機能テスト・ユニットテスト、負荷に耐えられるか確認するために負荷テストツール、で品質向上に役立てられます。 Selenium等の定番以外にも沢山の機能テストツールや負荷テストツールがあるみたいです。 機能テストツール集 Seleniumのようなブラウザを自動で直接動作させて表示結果を確認するツール うまく運用すれば、機能を変更した際の正常動作確認に神経をすり減らすことがなくなります SeleniumHQ おなじみのテスト自動化ツール テストケース定義で自動でブラウザ上でテストしてくれます Watir Rubyのブラウザ自動化ライブラリだそう。 Windowsだと、IE、F

    s-edy
    s-edy 2009/05/13
  • Web API/Mashup開発者に必須!オフラインでも外部アクセスをテストできる·FakeWeb MOONGIFT

    今はネットワークを使ったWeb APIを提供するサービスが増え、それを利用したMashupも増えてきている。様々なデータを容易にとれ、Webシステムを開発できるのは魅力だが、開発中にもネットワークが必須というのが大きな足かせになる。 Mashupのテストがしやすくなる便利なライブラリ また、アクセス自体に料金がかかる場合、開発中の利用を躊躇してしまう。そのような経験がある方はFakeWebを使うべきだ。 今回紹介するオープンソース・ソフトウェアはFakeWeb、Webアクセスを偽装する便利なライブラリだ。 この手のものは一時期考えなくもなかったが、自分でサーバを立てる方法がいいかと思っていた。だがFakeWebの場合は違う。指定したURLへのHTTP(恐らくHTTPSも)接続を横取りし、予め指定した結果を返すライブラリだ。 複数アクセスによって返却値を変えられる 予め返却されるデータと、接

    Web API/Mashup開発者に必須!オフラインでも外部アクセスをテストできる·FakeWeb MOONGIFT
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
    s-edy
    s-edy 2009/01/24
  • ウノウラボ Unoh Labs: 見ないと損する ソフトウェアテスト関連サイト色々

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: 見ないと損する ソフトウェアテスト関連サイト色々
    s-edy
    s-edy 2008/09/11
  • 1