タグ

testingとproc*に関するsh19910711のブックマーク (12)

  • テストをテストする方法-ミューテーションテスト- #gadvent - うさぎ組

    はじめに これはG* Advent Calendarの12日目の記事です。今日はミューテーションテストについて書きます。明日はid:nobusue さんです。 概要 PITというツールの紹介です。「Javaプロダクトコードを機械的に変更してからテストを実行したときに、テストはそれを検知できるのか?」ということを調べてくれるツールで、SpockのテストやGradleからの実行に対応しています。 ミューテーションテスト ミューテーションテストとはざっくりと言えば「プロダクトコードを変更したなら、その振る舞いも変わるはず。テストはその変更された振る舞いを網羅できているかを調べる」というテストです。 対象規模が小さければ手動で毎回やってもいいわけですけど、ツール化されていると楽なことこの上ないです。ということで、今回はJavaプロダクトコードをミューテートするライブラリであるPITについて紹介しま

    テストをテストする方法-ミューテーションテスト- #gadvent - うさぎ組
  • Spockでデータベースが絡むテストを書くためにやるべきこと その1 - Qiita

    Spockとは SpockはJavaやGroovy向けのテストフレームワークです。 JUnitなどと比較して以下の点が使いやすいです。 データドリブンなテストが書きやすい Mockが書きやすい テスト結果が見やすい(PowerAssert) 基的な使い方はこちら方のブログにわかりやすく書かれています。 http://bufferings.hatenablog.com/entry/2014/01/17/234736 やりたいこと データベースにアクセスするテストコードを書く場合、テスト開始時にデータベースにテスト用のデータを流し、テストが終了したら元のデータを復元するということを行えると便利です。 しかし残念ながら、Spockにはその仕組みが用意されていないためDbUnitのようなデータベースを操作する仕組みが必要になります。 今回はSpockとDbUnitを連携させて、上記の仕組みを作っ

    Spockでデータベースが絡むテストを書くためにやるべきこと その1 - Qiita
  • Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 - Cside::Weblog

    2014-01-15 Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 perl 自分は Test::Base が好きでよく使うのだけど、subtest 的な、テストのグルーピングができないのがずっっっと不満だったので、Test::Base::SubTest というモジュールを書いた。 https://metacpan.org/release/CSIDE/Test-Base-SubTest-0.1 https://github.com/Cside/Test-Base-SubTest 以下の様な拡張記法が使えるようになる。### でsubtestの 1 単位を表現する。 use Test::Base::SubTest; filters { input => [qw(eval)] }; run_is input =

    Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 - Cside::Weblog
  • テストをTODO扱いにする

    Test::MoreでテストをTODO扱いにすることが出来ます。どういうことかというと、 test自体は普通に行う。 失敗してもそれはTODO扱いとして、トータルの結果では成功したことにする。 という感じ。 いくつかの機能が未実装の(というかほとんどなにもしてない)シャーペンモジュール(正しくはmechanical pencil、でも長いから嫌)があるとします。 package Pencil; use strict; use warnings; sub new { my $class = shift; return bless {}, $class; } sub leads { # TODO } sub supply_leads { # TODO } 1; #!/usr/bin/perl use strict; use warnings; use Test::More tests => 3

  • TDD use Perl - Qiita

    あけましておめでとうございます。 昨年は JS くらいしか書いてないような気がするので Perl +TDD で年始め。 題材には これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE の問題を流用します。文量がありますが良記事なので、未読の方は一度読んでおくと良いです。(Perl環境は用意されているとします) 今回利用するモジュールとかツールとか Test::Harness ... テストを実行するコマンド prove を利用できるようにする App::Cpanminus ... CPANモジュールをインストールするコマンド cpanm を利用できるようにする Carton ... 開発するディストリビューションで依存するモジュールを管理するツー

    TDD use Perl - Qiita
  • jenkins + prove で失敗したテストを並列しないで再テストする試み - soh335 memo

    深淵な理由で(特に並列度をあげると)たまに落ちてしまうテストがあって、その度にあぁこれはたまに落ちちゃうやつなんですよねみたいな会話するのもいかがかと思っていた。 なので、落ちたテストがあった場合に並列しないで再度 prove してあげてそれでも落ちたらレポートするがいいかなぁと思ったのでこういう感じでやってみた。 JUNIT_NAME_MANGLE=none JUNIT_OUTPUT_FILE=output.xml prove -lvr -j5 --harness TAP::Harness::JUnit t JUNIT_OUTPUT_FILE は TAP::Harness::JUnit が生成する xml を指定する環境変数。 JUNIT_NAME_MANGLE に関しては TAP::Harness::JUnit - search.cpan.org に説明がある。 デフォルトだと hud

    jenkins + prove で失敗したテストを並列しないで再テストする試み - soh335 memo
  • より高速なテスト環境を実現するために - Route54

    テストを書くことは良い事です。どんどん書いて品質を上げたいところではありますが、テストの数が数万〜数十万に及ぶようなプロジェクトでは、フルテストに要する時間が無視できない程膨れ上がってしまいます。 今回は、そんな増えすぎたテストコードの影響でフルテストに時間がかかっているプロジェクトのために、テスト高速化を実現するためのモジュールとその使い方について紹介したいと思います。 モジュールは、App::Ikarosというもので、現在version 0.02がリリースされています。 使い方等はここにまとめてあるので(随時更新する予定)、この記事ではどのようなことができるモジュールなのかをざっと説明しようと思います。 まず、ざっくりとですがApp::Ikarosが提供する機能には以下の様なものがあります。 多数のノードによる分散テスト実行 forkproveによるテスト実行の高速化 Devel::C

    より高速なテスト環境を実現するために - Route54
  • Perlテストのリファクタリング的なあれ - Articles Advent Calendar 2011 Test

    はじめに こんにちはこんにちは!最近アレでアレな zentooo です。 ちょっと前まで自分で書いたテスト用データをDBにほげほげするモジュールの話を書こうかと思っていたのですが、disで有名なあの方に会社で「それはいけてないわ」と言われ、確かに自分でもこれはいけてないわー、という気分になってself-reject!したので今日は予定を変えて全体的にふわっとしたことを書きます。 ※書いてしまってから昨日の記事と内容かぶってる!と気づきましたがそのままで testがモリモリ肥大化する テスト自体はとりあえず書くことは書くんだけど、何も考えずにテストを書いていると、こんな感じになっちゃったー、ってことがよくありますね。僕もよくあります。 subtest with_case1 => sub { my $data_for_test = +{ }; # 上のデータからオブジェクト作ったりDBにins

    Perlテストのリファクタリング的なあれ - Articles Advent Calendar 2011 Test
  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

  • ちょっと他言語に行ったら例えば RSpec にハマった人のために - Articles Advent Calendar 2011 Test

    はじめに こんにちは。ikasam_a です。 ちょっと3年ほど Ruby でプロダクトコード書いてて RSpec に体がすっかり慣れたのが私です。今日は、そんな人が例えば 「Perl でテストを書くときにも、同じような書き方とかしたい!」みたいな中毒が出る場合に、どういうアプローチを取れるかという話をします。 Perl で宣言的テスト RSpec といえば DSL によって宣言的に仕様を書くようにテストが書ける、というのがウリなわけですが、Perl で宣言的にテストを書くにはどういう手段があるか、ちょっと調べてみました。

    ちょっと他言語に行ったら例えば RSpec にハマった人のために - Articles Advent Calendar 2011 Test
  • Test::Moreのsubtestで困っていること - $shibayu36->blog;

    最近はperlでテスト書く時はTest::Classを使うようにしている。その理由の一つとして、subtestだけのテストだと少しだけ困ることがあるからだ。 具体的には以下の事がある。 subtestは書かれている順に実行されるため、前のテストの状態に依存したコードが書かれがち 特定のsubtestだけを実行するのが面倒 前のテストの状態に依存したコードが書かれがち 僕の中では、テストが前のテストの状態に依存しないようにすべきと思っている。各テストの依存度が増えると、その後テストを追加したいときにコードの見る範囲が増え、テストが書きづらくなってしまうからだ。 しかし、subtestは単に書かれた順にテストが実行されるので、前のテストの状態に依存したコードが書きやすいと思っている。例えば以下の様なコードが書かれがち(少し極端な例だが)。 use Test::More; # insert_en

    Test::Moreのsubtestで困っていること - $shibayu36->blog;
  • JUnitをGroovyで扱うための環境設定メモ(Eclipse4.2) #junitbook - Diary of absj31

    JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus) 作者: 渡辺修司出版社/メーカー: 技術評論社発売日: 2012/11/21メディア: 単行(ソフトカバー)購入: 14人 クリック: 273回この商品を含むブログ (69件) を見る先日11/21に発売し、関連する読書会も同時多発的に日(11/23、札幌・東京・大阪)開催されるという盛り上がりを見せている書籍『JUnit実践入門 』。 私個人としても書籍写経に際し今回はJavaの他にもGroovyでJUnitテストコードを扱えるようになってみよう、と思い、ひとまずはEclipseでその辺の環境を整えるべく試してみました。以下その際の環境設定メモなど。 Eclipseインストールor日語化設定 事前にJavaをインストール。 Mac OS X 開発環境構築手順:Java実行環境(jdk7)

    JUnitをGroovyで扱うための環境設定メモ(Eclipse4.2) #junitbook - Diary of absj31
  • 1