タグ

testingに関するnobeansのブックマーク (203)

  • BDDツール spock の Mock - なんとなくな Developer のメモ

    Groovy の BDDツール spock における Mock の使い方を簡単にご紹介します。spock の Mock は定義が簡単なので個人的にはかなり有用だと考えています。 例えば、以下のような記述でモックの処理内容が定義できます。(実行回数と戻り値の組み合わせも可) 戻り値の箇所ではクロージャを使って例外の発生などを行う事も可能です。 モックの定義例 モックオブジェクト名.メソッド名(引数の制約, ・・・) >> 戻り値 モックオブジェクト名.メソッド名(引数の制約, ・・・) >>> [戻り値1回目, 戻り値2回目, ・・・] 実行回数 * モックオブジェクト名.メソッド名(引数の制約, ・・・) なお、引数の制約では以下のような記述が可能です。 引数の制約例 モックオブジェクト名.メソッド名() //引数なし モックオブジェクト名.メソッド名(_) //何でもよい モックオブジェ

    BDDツール spock の Mock - なんとなくな Developer のメモ
  • Coplien氏とMartin氏、TDDとCDDそしてプロフェッショナルの定義について大いに語る。

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    nobeans
    nobeans 2011/08/15
    2008年の対談記事。未見だったけど面白い/DbC(CDD?)がもっと身近に感じられるように訓練すればCopeの意見に頷けるようになるのかしら
  • Mocks and Stubs aren't Spies

    grab the unicorn by the horn and ride to a realm of higher knowledge At this point, we all know the difference between mocks and stubs... right? Well, perhaps not. That's OK, I'll try to explain it. And if I do a poor job you can always go read the article. (I've tried to have these samples follow Fowler's samples so that the two articles can be read together easily). So in unit tests, when your s

  • Canoo RIA Blog

  • BDDについて自分なりにまとめてみた - UKSTUDIO

    BDDについて自分なりにまとめてみた Published on 2011-07-02 Updated on 2011-07-02 BDDという言葉も割と人によって指すものが違うようなので「俺の中でのBDDはこうだよ」って内容のエントリ。別に絶対的なものでもないと思うので参考までに 結論から とりあえず結論だけ知りたい人向けに。 BDDにはふたつの種類がある TDDの言い換えのBDD(開発寄り) ATDD(受け入れテスト)でのBDD(ユーザ寄り) 振る舞い BDDは振る舞い駆動開発と言われたりするように、テストという言葉のかわりに振る舞いという言葉を使う。日語的には仕様と言うほうがわかりやすいかもしれない。多分、BDDのイメージが掴みにくいのはこの振る舞いという言葉にあると思う。と言うのも振る舞いと言うのは、人の立場よって変わるからだ。例えば、プログラマがあるクラスを実装している時に言う振

  • CUnitによるテスト駆動開発

    はじめに CodeZineでの僕のデビュー記事『Cで実現する「ぷちオブジェクト指向」』、おかげさまでなかなか好評だったようです。まだまだCは現役だと実感しました。 前回に引き続きCのお話です。テストをよりどころに実装をすすめ、信頼できるコードを書くためのプラクティス「テスト駆動開発」(TDD:Test Driven Development)を、Visual C++ 2005 Express EditionとUnit Test Framework: CUnitで行います。 対象読者 そこそこのコードは書けるようになったけれど、どうも詰めが甘い/くだらないバグに出くわす/あっちを直すとこっちが壊れ、ぐだぐだになってしまう…そんな症状に悩まされている脱ビギナを目指すプログラマ。 テスト、してますか? 「プログラムは思ったとおりには動かない、作ったとおりに動く」 思ったとおりに作ってないと思ったと

    CUnitによるテスト駆動開発
  • TDD Boot Camp 札幌 2.0 開催しました!(運営編) - やさしいデスマーチ

    日、札幌では4回目となる TDD Boot Camp 札幌 2.0 を開催され、 TDD界のリーダーであるid:t-wada氏に札幌で2回目の登壇をしていただきました。今回はTDDに関連する部分は、参加者のブログにお任せし、自分の方からは主催者視点でのレポートとしたいと思います。これを機会に他地域でのTDD Boot Campの開催の参考になったり、開催したいなと思って頂ければ幸いです。 開催まで 今回は札幌開催で4回目ということもあり、開催自体の準備は少なかったです。これは言い換えれば、はじめての時は色々と試行錯誤が必要ということでもあります。 参加人数の動向 札幌開催での参加人数は次のようになっています。 日付 No 参加者 備考 2010.12.18 0.5 6名 Javaのみ 2011.1.23-24 1.0 26名 @t_wada氏登壇、言語自由(Java, Ruby, VB,

    TDD Boot Camp 札幌 2.0 開催しました!(運営編) - やさしいデスマーチ
    nobeans
    nobeans 2011/06/05
    "小さなステップで1人づつ仕留めましょう"/確実に殺られる...gkbr
  • Gradle でテストを並列実行してみる - bluepapa32’s Java Blog

    Gradle の Java プラグインには テストを並列で実行するための機能が標準で用意されています。 通常は テスト用のプロセスは 1つしか立ち上がりませんが、 test.maxParallelForks = 5のように設定すれば 最大 5プロセスで並列実行できるようになります。 もちろん、最近、お気に入りの Spock でも ちゃんと並列処理できます。 並列処理は クラス単位で行われるため 時間のかかる (しかも、CPU時間の少ない) メソッドが多い場合は リファクタリングしてクラスを分けた方がよいです。 内部クラスでも それぞれ ちゃんと並列処理してくれるので、ファイルはそのままで クラスだけ分けることもできます。 例えば... class HelloSpock extends spock.lang.Specification { def "30秒後に目が覚めて挨拶する"() { H

    Gradle でテストを並列実行してみる - bluepapa32’s Java Blog
  • 日科技連|ソフトウェア品質|SQiP研究会

    URL変更のお知らせ SQiPのページへアクセスいただきまして有り難うございます。 サイトは、2016年1月12日よりURLが変更になりました。 お手数ですが、ブックマークの変更をお願い致します。 http://www.juse.or.jp/sqip/ JSTQB認定テスト技術者資格のページはこちら

    nobeans
    nobeans 2011/06/02
    テスト工数を増減させる4つの要因
  • 日科技連|ソフトウェア品質|SQiP研究会

    URL変更のお知らせ SQiPのページへアクセスいただきまして有り難うございます。 サイトは、2016年1月12日よりURLが変更になりました。 お手数ですが、ブックマークの変更をお願い致します。 http://www.juse.or.jp/sqip/ JSTQB認定テスト技術者資格のページはこちら

    nobeans
    nobeans 2011/06/02
    "テストを設計するとは的を射たテストケースを抽出するために工夫をすること"/"目的を具体化した観点でテスト対象を絞り、技法を選択する"
  • 日科技連|ソフトウェア品質|SQiP研究会

    URL変更のお知らせ SQiPのページへアクセスいただきまして有り難うございます。 サイトは、2016年1月12日よりURLが変更になりました。 お手数ですが、ブックマークの変更をお願い致します。 http://www.juse.or.jp/sqip/ JSTQB認定テスト技術者資格のページはこちら

    nobeans
    nobeans 2011/06/02
    "「テストケースをレビュー」するのではなく、「委託先への要求の解をレビュー」してください"
  • 日科技連|ソフトウェア品質|SQiP研究会

    URL変更のお知らせ SQiPのページへアクセスいただきまして有り難うございます。 サイトは、2016年1月12日よりURLが変更になりました。 お手数ですが、ブックマークの変更をお願い致します。 http://www.juse.or.jp/sqip/ JSTQB認定テスト技術者資格のページはこちら

    nobeans
    nobeans 2011/06/02
    "プロジェクトでテストを計画して、目的に合うゴールを設定して下さい。それが十分かどうかを判断する指標です。"/"過去の数字をそのまま適用しても役に立たないことが多く"
  • なぜUnitTestは理解されない?

    TwitterでこんなTweetが流れた… エビデンスとしてNUnitGUIのスクリーンショットと、対応するテストコードが含まれている部分のVSのスクリーンショットを取る作業が終りません・・・ UnitTestのエビデンスって…なに? 一般的にテストのエビデンスというと、次の2点を指す。 テスト手順を明らかにするもの(ex. テスト設計書、テスト仕様書、...) テスト結果の証拠(ex. 画面ハードコピー、DBスナップショット、...) UnitTestでは、これはこのように解釈できる。 テスト手順を明らかにするもの = テストコード テスト結果の証拠 = 今実行すればテストが全てグリーンになること これがなぜか理解されず、軋轢とストレスと大きな工数追加になっている現場がずいぶんある。 なぜUnitTestはいつまでも理解されないのだろう。 余談。これらのことは、Seleniumなどを使

    なぜUnitTestは理解されない?
    nobeans
    nobeans 2011/05/27
    "TDD/BDDを実践しようとしている人は、それが絶対的に正しい行為だと自信を持ってほしい。結合テストの自動化を目論んでいる人は、それが絶対的に正しい行為だと自信を持ってほしい。"
  • Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指して

    Java EE 5まではいろいろな面で生産性が低かったと言わざるを得ないところがあった 今まで仕事上、Java EEのサーバーを実行基盤として用いるさまざまなシステムの開発に関わってきましたが、JavaEE(古くはJ2EE)のサーバーというと経験上 xmlの設定ファイルの記述がきわめて面倒 J2EE1.4までは、EJBを使った場合Pojoとしてサービスやエンティティを作成できない サーバーの再起動にものすごく時間がかかる ライセンス料が高い サーバーを気軽にダウンロードして試せない というような非常に悪いイメージがあったというのが正直なところでした。 それゆえ、JavaをSEとEEに分類するのは今では無意味になってきている? - 達人プログラマーを目指してでも紹介したように、Seasar2やSpringといった軽量コンテナというしくみが登場し、事実上EJBコンテナの機能はほとんど利用せず、

    Java EEサーバーが重くてテスト不能というイメージはもう過去の話かもしれない - 達人プログラマーを目指して
  • 【資料公開】自動テスト vs 手動テスト

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

    【資料公開】自動テスト vs 手動テスト
  • テストコードのリファクタリング - 千里霧中

    ユニットテストの再利用や継続的利用を行おうとすると、テストコードにも保守性等に優れた良い設計が求められるようになります。そこで出番が増えてくるのがテストコードのリファクタリングです。 ただ現状、テストコードのリファクタリングはいくつか課題を抱えています。今回はその課題の1つである「リファクタリング前後でテストコードの振る舞いが変わっていないかチェックするテスト」(以下リファクタリングの回帰テスト)の実現方法についてまとめます。 テストの回帰テスト まずリファクタリングの回帰テストを真っ当に考えていきます。テストコードをテスト対象としてみると、一般的に以下の特徴が見えてきます。 SetupメソッドやMockオブジェクト等を通して、テスティングフレームワークから間接入力を受けます。 Assertionメソッド等を通して、テスティングフレームワークに対して間接出力を行っています。またMockオブ

    テストコードのリファクタリング - 千里霧中
  • テスト駆動開発チートシート - やさしいデスマーチ

    TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。

    テスト駆動開発チートシート - やさしいデスマーチ
    nobeans
    nobeans 2011/04/29
    素晴らしい
  • より良いテスト駆動開発を行うためのチートシートの紹介

    みなさんこんにちは。@ryuzeeです。 planetgeek.chというサイトでUrs Enzler氏がTDDのチートシートを公開していたのでご紹介します。 Clean Code and Clean TDD Cheat Sheets (PDFファイルでダウンロード可能です) 以下で、チートシート内の一部を意訳にてご紹介しましょう。 Unit Test Smellsテストが何もテストしていない一見するとテストが有効に機能しているように見えるが、実はテスト対象をテストしていない テストに過度なテスト準備が必要とされるテストが環境をセットアップするのに長いコードを必要としている。こういうノイズがテストが当にテストしたいのが何なのか?ということを分かりにくくする。 大きすぎるテスト有用だが大きすぎるテスト。たぶんテストが1つではなく複数の機能をチェックしているか、テストが1つ以上のことをやろう

    より良いテスト駆動開発を行うためのチートシートの紹介
  • クオリティエンジニアの役割とは「お客様の視点を提供すること」 ~ セールスフォース・ドットコムの作り方(後編)

    クラウド上に構築した企業向けアプリケーションを提供するセールスフォース・ドットコム。同社は千人以上の開発者を抱える開発部門全体でアジャイル開発手法を採用し、サービス開発を行っています。 同社はどのようにしてアジャイル開発手法を採用し、品質を重視した開発を進めているのか。2月17日に行われたデベロッパーズサミット2011で、株式会社セールスフォース・ドットコム CTO 及川喜之氏のセッション「salesforce.comの作り方 どのように世界最大規模のアジャイル開発を実現したか」が行ったセッションの内容を紹介します。 (記事は「大規模アジャイル開発の実態~ セールスフォース・ドットコムの作り方(前編)」の後編です) クオリティエンジニアの役割について 開発においてクオリティエンジニアが果たす役割は結構大きい。スクラムチーム内のコミュニケーションのハブとして積極的に働いている。デベロッパは

    クオリティエンジニアの役割とは「お客様の視点を提供すること」 ~ セールスフォース・ドットコムの作り方(後編)
  • ユニットテストの網羅性の扱いについて - 千里霧中

    テストの網羅性については様々なものがある。基的な網羅性の観点としては、構造ベース、仕様ベース、外部の標準や指標ベースなどが挙げられる。 そして観点ごとに、様々な網羅性の指標がある。ユニットテストの場合だと、例えば以下がある。 コードの構造網羅 コードの構造を網羅する。ここでいうコードの構造としては、制御フロー、データーフロー、例外フローなどがある。具体的な指標としては、コードカバレッジが有名。コードの構造網羅では、コードカバレッジなどを基準にして、基準以上の網羅性を確保できるようにテストを設計する。 なお、構造網羅というと、一般的な定義ではコード以外の構造も扱われるが、このブログでは便宜上「構造網羅をコードの構造を網羅すること」という定義に絞り込んで説明する。 仕様網羅 コードの仕様を網羅する。コードの仕様には、対象(対象の粒度はテストレベルに依存する。例えば関数やクラス、モジュールを単

    ユニットテストの網羅性の扱いについて - 千里霧中