タグ

testに関するczblueのブックマーク (66)

  • RSpecによるユニットテストの書き方 — recompile.net

    2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと

    RSpecによるユニットテストの書き方 — recompile.net
  • 何故バグ報告の99%が役に立たないのかもしくは何故プロのテスターが存在するのか - oops

    テストにはプロがいます。「お仕事」で開発する場合はQA(Quality Assurance/品質保証)部門という「テストのプロ」がテストします。 バグ修正におけるテスターの役割は極めて重要で、「プログラマの手元で任意に再現可能な状態に持ち込めれば、バグ修正は8割終わっている」と言っても当に過言ではありません。詳細聞き出しに10時間、修正30分、修正確認テスト30分、なんてのも実務ではザラです。この場合、プログラマも11時間拘束される(=時給x11時間分のコストが掛かる)わけですから、バグ修正のコストは聞き出しに掛かるコストがほとんどを占めることになります。 (誤報告一発で万単位の金が簡単に吹っ飛ぶとも言える) まずそもそもの問題として「素人」がテストを行うと以下のような論外ケースが頻繁に起こります。上に行くほどクソです。 誤報告 実際に起こったことと、現象が違う、手順が違う、設定

    czblue
    czblue 2012/04/08
  • BDD + Alpaca-Webkit = headless acceptance test framework for PHP web application. - chobi_e's blog

    Alpaca-webkitはcapybara-webkitのwebkit_serverと通信を行ってPHPでwebkitブラウザを動作させるためのツールキットです。まだまだ鋭意製作中なのでがんがん変わりますがどういったことができるか、ということの説明をかいておきましょう。 Capybara-webkit Capybara-webkitはthoughtbot社が作成しているQtWebkitを利用してブラウザでのテストが行えるライブラリです。Capybara-webkit自体はrubyのライブラリとc++で書かれたQtWebkitのサーバーの二つが同梱されています。 このQtWebkitのサーバープログラムはソケット通信で内部のWebkitブラウザに指示を出しJavaScriptの実行や、HTMLの操作などなどが行えます。普通、PHPでこういったブラウザ関連のテストをする場合は現状Selen

  • PHPUnit でテスト駆動開発を始めよう

    9. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this->calc->add(1, 2); $this->assertSame(3, $result); } } 10. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { 1 $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this-

    PHPUnit でテスト駆動開発を始めよう
  • テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!

    ここ数日 ruby をやってるんですけど、ruby といえばテストらしいので Test::Unit やら RSpec やらを調べてました。しかし僕はこれまでまともな TDD をやってこなかったので、先にテストとは何ぞや?TDD とは何ぞや?ってのを調べたりしていました。 この記事は、ずぶの TDD 素人がテストについて知り始めたまとめです。 1. きっかけは RSpec のドキュメント そもそも RSpec の↓紹介文の冒頭から意味不明に感じたんです。 FAQ:「RSpec って、要は Test::Unit でやっていることを別の書き方にしただけでは?」 この FAQ への短い答えはイエスです。 『スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)』 Rubyist Magazine えっ... じゃあ要らんやろソレ。いちいち手作業でチェック

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
  • テストというのは、ソースコードの冗長化だと思う - きしだのHatena

    テストというのは、基的にはソースコードの冗長化だと思う。来ならプロダクトコードだけ書けばよいところを、信頼性を高めるために複数の視点でのコードを追加する。 また、サーバーの冗長化で、2台構成を3台構成にするよりも、はるかに1台構成を2台にするのが難しいように、テストも、10のテストを20にするよりも、最初のテスト(プロダクトコードも含めると2目のコード)を書くのが一番難しい。 テストがソースコードの冗長化であるなら、アクセスのないサイトでサーバーをクラスタリングするのが単なる金や設定時間の無駄であるように、長期的な信頼性の求められないプロダクトにテストを書くことも金の無駄だ。 アクセスが多いのにサーバー冗長化の金を払わない顧客に対してクラスタリング構成を構築する義理がないように、信頼性が求められるのにテストの金を払わず時間も確保しない顧客のためにテストを書いてやる必要もない。もち

    テストというのは、ソースコードの冗長化だと思う - きしだのHatena
  • C++でテスト駆動開発

    2. 自己紹介  HN: 秋Twitter: @akineko  Blog: http://d.hatena.ne.jp/Akineko/ 絶賛更新停滞中!  職歴: ホテル→Webデザインゲームプログラマ  Aimingという会社でオンラインゲームの サーバープログラマやってます  C++とかアジャイル開発が好きです

    C++でテスト駆動開発
  • 最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記

    Railsエンジニアになってから1年半くらいが経ち、社内のRailsプロジェクトを全部で5つくらい触って、今やってるAbilie*1でようやく人並みにテストを書いてる気がしてきたので、現時点でやってるテストの方法をまとめておく。 テストのルール的なの rspecでは必ずモデルのテストは書くようにしてる。ヘルパーも大体書いてるけど、コントローラやルーティングのテストはあまり書いてない。 というのも、コントローラーのコードを極力短くしてモデルを太らせているのでコントローラのテストはあんまり意味が無い気がしていて、その代わりにCapybaraでテストを書いておけば十分なんじゃないかなと思ってきたから。Capybaraは書いてるので、そういう意味では書いてるとも言える。 社内の管理者だけが使える管理画面も作ってるけど、そっちはテストあんまり書いてない。ここは動かなくなっても一般ユーザーには影響が

    最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記
  • ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組

    WACATE 2011 夏に誘われたのがキッカケでソフトウェアテストを勉強しはじめて10ヵ月くらいがたちました。 先日、わんくま名古屋でソフトウェアテストの勉強法についてLTしたのですが、みなさんにいろいろ聞かれたのでここにまとめておこうと思います。 当は1年の区切りで書こうと思ったけど、まぁいいでしょう。 追記ここから わんくまで発表したLT資料はこちらです うさみみのソフトウェアテスト勉強法 View more presentations from Kyon Mm 追記ここまで こういうのを書くときに時系列で書くべきか、コツを書くべきか悩みますね。 でも、みんなが知りたいのは僕の歴史じゃなくってコツだと思うので後者で書きます。前者はTwitterとか勉強会とかお事とかお茶でもしているときに聞いてみてください。 以下では多くの書籍を紹介していますが、僕がこの10ヵ月で読んだ。ってい

    ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組
  • 第56回PHP勉強会@関東で PHPUnit について話してきた | Born Too Late

    最近 HTML5 化した Slideshare ですが, エラーで表示できないスライドが多すぎてまともに閲覧できないようです. この記事に掲載している Flash 版は今まで通りの問題なく表示できるのですが... スライドが完成したのが勉強会への出発 15 分前で, 通しで練習することすらできず, 発表はかなりひどいものとなっていまいました. 最低限, スライドの流れぐらいは頭の中に入れて発表すべきですね… スライドだけ見てわかるような作りにはなっていないので, 以下で補足したいと思います. ただし, 序盤は省略し, 論となる書法編とパターン編についてのみとなります. それぞれ該当するスライド番号も付記してありますので, よければご活用ください. 書法編 1: ヘルパーメソッドを使う (25 ~ 30) テスト対象のオブジェクト, それを生成するのに必要な依存オブジェクトの生成には, ヘ

    第56回PHP勉強会@関東で PHPUnit について話してきた | Born Too Late
  • Introduction to Continuous Testing

    This presentation describes introduction to Continuous Testing for PHP.Read less

    Introduction to Continuous Testing
    czblue
    czblue 2011/07/23
  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス
  • Growing Object-Oriented Software, Guided by Tests - higepon blog

    xUnit Test Patternsで2007年のテスト事情まで追いついた。Growing Object-Oriented Software, Guided by Testsは2009年末に出版されているので更に最新のテスト事情が分かるだろうと思って読んだ。Cybozu Developers Conference にて id:t-wada さんと @kakutani さんにご講演いただいたときに推薦されていた。 個人的には xUnit Test Patterns をスキップして書を手にとっても良いと思う。網羅性はないのだが、良いタイトルからも分かるとおり実践的な例を通してテストと実装がどうやって進むかを示してくれる。オークションに参加するアプリケーションを一から構築して行く。学習用に都合の良い例だが手抜きはない。end to end テストから始まり、サーバーとの通信部分は非同期、G

    Growing Object-Oriented Software, Guided by Tests - higepon blog
  • PFIインターンへ行ってきた(前編)〜結合テストの自動化環境を整えてきた〜 - obfuscation’s blog

    2011年3月1日〜3月31日の間、PFIインターンに行ってきた。エントリは前編、後編にわけて書いてみようと思う。前編の今回はインターンの内容、インターンで開発した内容や設計、設計に至るプロセスやら私の成果について説明し、後編ではインターンのきっかけやインターンを実行する段階での私の心境、心構え、行動思想的な部分、環境適応やら震災云々について書こうと思う。 インターンの内容、その対象について説明し、どういう部分に悩みながら開発していったか紹介する(長いけど!)。最後に最終的な成果であるテストツールについて紹介し、社内でのインターン最終発表スライドでエントリである前編を締める。 インターン内容 ミッション(テーマ):PFIの製品である統合型検索エンジンSedueの結合テスト(機能テスト)を自動化すること テーマの決定については、PFIで需要のありそうなQA(品質保証)とテスト関連という分

    PFIインターンへ行ってきた(前編)〜結合テストの自動化環境を整えてきた〜 - obfuscation’s blog
  • テスト駆動開発のテストは、テストか?―TDD から BDD へ - An Agile Way [ITmedia オルタナティブ・ブログ]

    アジャイル開発の中の1つのプラクティスであるTDD(Test Driven Development、テスト駆動開発)に使われるユニット・テスト、というものの役割について、よくテスト界の人との意見の相違がある。テストとしての完全性、や、品質保証についての考え方から見ると、テストとは呼べないのでは?ということ。 最近、アメリカテスト界の有名人であり、アジャイルコミュニティへの貢献も大きい、Brain Marick(www.testing.com/cgi-bin/blog) 氏とメールで話す機会があった。 アメリカでのコンセンサスは、TDDのテストはテストとしては二義的であり、一義的には、「設計ツール」だ これは、以前「テストの役割=進捗管理+設計戦略」 blogs.itmedia.co.jp/hiranabe/2005/08/sd4__c05e.html で 紹介した、t-wadaさんの「テス

    テスト駆動開発のテストは、テストか?―TDD から BDD へ - An Agile Way [ITmedia オルタナティブ・ブログ]
    czblue
    czblue 2011/04/05
  • PHPUnitでできる単体テスト

    はじめに 単体テストとは、システムの構成要素であるクラスやメソッド単位での動作を確認する作業のことを言います。 Webシステムは基的に不特定多数に公開するものであり、公開前にはきちんとテストを行っておくことが重要です。 PHPにはテストツールとしてPHPUnitという単体テストのツールがあり、PHPUnitを利用するとクラス内のメソッドに対してテスト用のクラスを自動で生成し、効率よくテストすることができます。 PHPUnitを利用して単体テストする場合のプロセスは テスト対象となるクラス、PHPプログラムの作成 1.で作成したクラスからPHPUnit内のクラスを用いてテスト用のクラスを作成 2.で作成したテスト用のクラスに目的に応じてテストメソッドの実体を記述 テスト実行、結果の確認 となります。 記事では、連載第4回『GPS携帯を使った口コミサイト構築』の逆ジオコーディング処理をテ

    PHPUnitでできる単体テスト
  • PHPUnitによるテストの自動化

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

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

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

  • CakePHPとPHPUnit(訳) - 24時間CakePHP

    この訳について CakePHPのコアデベロッパーの中心となる、mark storyがCakePHP2.0のテストのフレームワークをSimpleTestからPHPUnitに変更するということについて、経緯とその有用性、移行についての悩みどころについて詳細な記事を書いてくれました。 元記事: http://mark-story.com/posts/view/cakephp-and-phpunit この訳はその記事の対訳にあたります。 注意点 翻訳の記事をブログに掲載する許可は得ています。 英語力に不安がある人が翻訳してますので、英語が読める方は元記事を読むことを強く推奨します。 (一応)個人的な記事ということで、ラフな口語訳をしていますが、割とフォーマルな英文だったので失敗してるかもしれません。許して! 対訳 CakePHP 2.0 の開発が進行中であるということについての最近のBakeryの

    CakePHPとPHPUnit(訳) - 24時間CakePHP
  • xUnit Test Patterns - higepon blog

    xUnit Test Patterns: Refactoring Test Code 良さを伝えるのは結構難しい。勉強会も開かれているので広く読まれている事は間違いない。ただ読むのはしんどい。「どこから読み始めても分かるように」という筆者のありがたい配慮により、とにかく冗長な構成。全く同じ文章をコピペしたのではないか?という箇所もちらほら。おかげで833ページ。 読む価値はある。筆者は間違いなくテストを書く事と真剣に向き合っている。書でしか読めないパターンも多い。Mock Object、Stub、Test Spy の違い。Slow Test に立ち向かうための Fixture 。種々の Result Verification 手法などお腹いっぱいの内容。 書が出たのは 2007年5月。やっと 2007年のテスト事情まで追いついた。次は2009年末に出たGrowing Object-Or

    xUnit Test Patterns - higepon blog