Finally! An open source tool for Ruby’s RSpec that helps uncover the root causes of intermittent software failures

Fixing intermittent software failures, or failures that occur only under a unique set or combination of conditions, is always a challenge. The conditions leading to failure are difficult to pinpoint. They can slip past sophisticated quality checks, make it into production and not be noticed until the product is in the hands of the user.


RoleModel Software’s new Ruby gem — Marshgrass — is designed to address the challenge of finding intermittent test failures in Ruby code. This gem allows you to subject an intermittently failing test to a variety of circumstances in an attempt to discern what combination of events leads to failure. Using Marshgrass increases the odds of quickly finding the root cause of an intermittent failure, so that it can be fixed in a fast and cost-effective way.


The first step in fixing an intermittent failure is uncovering the set of circumstances that makes it fail consistently. In programming there is no such thing as a truly “random” failure. Under the right set of circumstances, every intermittent failure will fail consistently.


Marshgrass functions as an “add-on” to the Ruby Rspec test runner, boosting Rspec’s ability to more consistently cause intermittent failures to occur. Marshgrass can subject a test to any one of the specific conditions listed below:

  • Repetitions
  • Range of speeds in execution
  • Execution at all times of day
  • Execution in all time zones
  • Execution at all the milliseconds surrounding a particular time of day

The gem is available as open source under the terms of the MIT License. See the README for usage instructions. Bug reports and contributions are welcome on Github at https://github.com/RoleModel/marsh_grass. We invite you to try the gem for yourself and let us know what you think.