RushCheck
a lightweight random testing tool for Ruby

Shipping out RushCheck ver 0.4

(2006/10/06)

I am happy to announce the next version of RushCheck. I have done many bug fixes and change some main interfaces. Especially, the notation of pre-condition with guards is changed. From this version, the number of a block of assertion must be equal to the number of arguments of Assertion.new.

before:
Assertion.new(Integer, String) do |x, y, g|
  g.guard { # a pre-condition here }
  ...
end
after:
RushCheck::Assertion.new(Integer, String) do |x, y|
  RushCheck::guard { # a pre-condition here now! }
  ...
end

Sorry for this incompatibility, but I think it becomes more simpler and makes a sense. Since the tutorial is now translated into a hypertext, it is easier to refer notations.

At the end of last month, I visited Chalmers university for a week to join a internal meeting for developing a proof assistant Agda. The end of that week, on Friday afternoon, Prof. John Hughes was kindly to give a chance to discuss about QuickCheck. He talked about recent development and success of Erlang’s QuickCheck and showed me several examples. Because they are so impressive, I will steal and implement them into RushCheck from now on (in not this version, but the next, hopefully). I showed him the previous implementation (ver 0.3) of RushCheck and slides(PDF) for RushCheck ver 0.3. I thank not only him but also the members of AIM5 that we had a discussion about QuickCheck. In the discussion I got many good idea.

I want to introduce this random testing technique to Ruby’s developer. Even it is better to write testcase in a functional language, such as Erlang or Haskell, however, for Ruby’s programmer, it is easier to write testcase in Ruby itself. I wish RushCheck helps Ruby testing programmer. The next chance may be Kansai OpenSource workshop, and I will submit my talk at Kansai-area in Japan. Please give me a comment when you try to use this library, thanks!


Written by Daisuke IKEGAMI
Full of CC licensed ripley's debris
HTML and CSS Design by Nicolas Fafchamps
Generated with Rote and Rog