タグ

ブックマーク / jcunit.hatenablog.jp (8)

  • (第四回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog

    はじめに ブログでご案内しているように、javacのバグによりJDK1.7.0_79以前でコンパイルエラーが生じることがわかった。 この問題を回避するために、jcunit 0.6.4をリリースしたので、pom.xmlを以下のように更新して欲しい。 <dependency> <groupId>com.github.dakusui</groupId> <artifactId>jcunit</artifactId> <version>[0.6.4,)</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> (第四

    (第四回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog
    uehaj
    uehaj 2016/04/11
    Conditionの値とその組み合わせは、テストケース群の分類基準で、その分類ごとに期待結果の表現をまとめられるのか。これはすげー。テストケース自動生成には確かに必要な機能に思える
  • (第ニ回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog

    さて、39件も失敗した前回のテストだが、どのテストがどのように失敗しているかつぶさに見ていこう。 失敗するテストは以下の通り。 { 1, 3, 4, 6, 7, 8, 9, 10,11,12,13,14,15,17,18,19, 24,25,26,27,28, 30,31,32,33,34,35,36,37,38, 40,41,42,43,45,46,48,49,51} これらが成功していたり、これら以外のものが失敗していたらJCUnitにバグがあることになる。ぜひ知らせて欲しい。 分析 前提として今回のテストで用いたテストメソッドはこうなっている。 @Test public void solveEquation() { QuadraticEquation.Solutions s = new QuadraticEquation(a, b, c).solve(); double v1 = a

    (第ニ回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog
  • (第一回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog

    今回からしばらく、JCUnitの使い方を解説するために簡単なプログラムをテストしてみたいと思う。 例題としてQuadraticEquationSolver(2次方程式ソルバー)を取り上げる。a,b,cの三つの入力をとり、これらを係数とする2次方程式を解の公式を使って解く他愛もないプログラムだ。 準備 0.6.0リリース。 - jcunit's blog を参考に、JCUnitをDependencyに持つMavenプロジェクトを用意して欲しい。 SUT(テスト対象ソフトウェアについて) Javaで2次方程式を解くプログラムを作るとしたらどんなものだろうか。大体、こんな感じになるのではないか。 public class QuadraticEquationSolver { public static class Solutions { public final double x1; public

    (第一回)JCUnitで2次方程式を解くプログラムをテストする。 - jcunit's blog
    uehaj
    uehaj 2016/03/11
    "53件のテスケースが生成され、39件も失敗するのだ。 これもなかなか興味深いことではなかろうか"
  • 0.6.0リリース。 - jcunit's blog

    長い道のりであったが、0.6.0をリリースした。 Maven coordinateは以下のとおり。 <dependency> <groupId>com.github.dakusui</groupId> <artifactId>jcunit</artifactId> <version>[0.6.0,)</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> 古いJUnitを使っていると実行時にエラーが出るようなので、JUnitについての依存もバージョンを指定するほうがよいようだ。 今回の新機能は以下の通り。 レ

    0.6.0リリース。 - jcunit's blog
    uehaj
    uehaj 2016/03/08
    ペアワイズ法や状態機械の遷移テストケースの自動生成が可能なテスティングフレームワーク新版がリリース/"こんな風にテストを作るといい感じに2つほどバグが見つかる"
  • Theories runner - jcunit's blog

    皆さん、JUnitのTheories runnerは使っていますか? 僕は使っていません。 可能な値の組み合わせをすべて<直積>でテストしようとするのでテストケース数が爆発してしまうのと、 一つのテストメソッドに対してそれらの組み合わせを一つのテストケースとして実行してしまうので、 問題が生じた時に追跡・局所化が難しいと思うからです。 まあそうは言っても、JUnitに最初からバンドルされてるランナーだし、爆発してしまうテストケースを 上手に減らすのはJCUnitの存在意義なので、今日はTheoriesランナーをJCUnitで使う方法を考えてみた。 Theoriesのサポートは次回のリリース(0.5.6)に含まれることになる。 @RunWith(TheoriesWithJCUnit.class) public class TheoriesExample1 { @DataPoints("pos

    Theories runner - jcunit's blog
    uehaj
    uehaj 2015/10/27
    "JUnitのTheories runnerは使っていますか? 僕は使っていません。..可能な値の組み合わせをすべて<直積>でテストしようとするのでテストケース数が爆発してしまう.. 問題が生じた時に追跡・局所化が難しい"
  • JCUnit 0.5.1 リリース(更新) - jcunit's blog

    (早速機能拡張をしてるので、10/5現在の最新版は0.5.4です。 JCUnit 0.5.4リリース。 - jcunit's blog ) 今回の目玉は何といってもFSM(有限状態機械)のサポートだ。github.com ユーザがSUT(テスト対象ソフトウェア)を有限状態機械としてモデルすると、pairwiseを使って、カバレッジもよくて件数もそんなに多くないテストスイートを自動でつくってそのまま実行してくれるという(私にとって)夢のような機能だ。 まあ、ほんとにカバレッジが十分にいいかとかは、これからちゃんと評価するのだけれど。 実際にはテストケースの生成はpairwiseでなくても別によいので、JCUnitによるモデルベーステスティング(Model-based testing, MBT)のサポートと言ってもよい。 Model-based testing - Wikipedia, the

    JCUnit 0.5.1 リリース(更新) - jcunit's blog
    uehaj
    uehaj 2015/10/05
    SUT(テスト対象ソフトウェア)を有限状態機械としてモデルすると、pairwiseを使って、カバレッジもよくて件数もそんなに多くないテストスイートを自動でつくってそのまま実行してくれるという夢のような機能
  • JCUnitによる有限状態機械のテスト - 有限状態機械テストの方法(その1) - jcunit's blog

    はじめに かれこれ三カ月くらい頑張って、有限状態機械(以下、FSM)をJCUnitを使ってテストする機能を作ってみた。 今回はひとまず0.4.20としてリリースした。MavenのCoordinateは以下のとおり。 <dependency> <groupId>com.github.dakusui</groupId> <artifactId>jcunit</artifactId> <version>0.4.20</version> </dependency> テストは十分ではないので、バグはまだあると思う。 この追加はかなり大きなものだったし、実用性という点でもひとつの区切りになるものだと思う。 デバッグが終わったら、0.5.0としてリリースしなおしたい。 使い方を解説する記事を書こうと思ったのだが、かなりの分量になりそうなので、何回かに分けてここのブログに掲載したい。 大幅な変更は難しいか

    JCUnitによる有限状態機械のテスト - 有限状態機械テストの方法(その1) - jcunit's blog
    uehaj
    uehaj 2015/01/30
    有限状態マシンの自動テストケース生成。なんかすごい「テスト開始時の状態、状態遷移関数、状態遷移関数に与えられる引数の履歴のそれぞれを因子・水準として、ペアワイズでテストを生成・実行」
  • テストケースの内容に応じてテストメソッドの実行を制御する方法。 - jcunit's blog

    JCUnitのように、テストケースの集合を自動で生成する仕組みを作ったのに、確認すべき内容や実行すべきシナリオがテストケースの内容によって違う場合、それらの確認内容を振り分けるロジックをユーザにif文でちまちま書かせるのはいささかだせえ。 そこで、テストケース(各因子がとる水準)の内容に応じてあるテストメソッドが実行されるべきかどうかを制御できる仕組みを作った。 なおこの機能は0.4.12で利用可能である。 実例と記法。 さっそくだが、例を掲げる。 public boolean aIsNonZero() { return a != 0; } public boolean discriminantIsNonNegative() { return b * b - 4 * c * a >= 0; } @Test @When("aIsNonZero&&discriminantIsNonNegati

    テストケースの内容に応じてテストメソッドの実行を制御する方法。 - jcunit's blog
    uehaj
    uehaj 2014/11/23
  • 1