Another kind of “BDD”: Bullet Driven Development

Cucumber is great but …

I’ve used Cucumber for test automation for a lot of my career, and honestly I’ve been pretty happy. It’s a great way to pull one’s thinking out of the granular code level, and starting thinking about domain or enterprise level problems. I don’t think I’ve ever reached the BDD holy grail of Product writes it, Dev implements it, and QA verifies it, all from the same spec, but … well hell, who actually drinks from a grail these days anyhow.

“Futo” is Japanese for “envelope”

The idea goes something like,


The Killer App
* loads successfully
* does some things
* calculates some stuff
* charges happy customers
* ???
* profit !

“Chizu” is Japanese for “Map”

Implementation, inspired by Cucumber’s step_definitions layer, looks like this:


On "loads successfully" do

On "does some things" do

On "profit !" do
expect(earnings).to be > costs

For the curious

The initial code is on Github and RubyGems, an early prototype so far (works though). Some developer friends are planning to try it out with a React Native project over the summer and fall as well, so I’m hoping to have lots of a̶n̶n̶o̶y̶i̶n̶g̶ ̶b̶u̶g̶s̶ great progress over the summer and fall 2020.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Add Lightness | Better Testing, Better Software

Add Lightness | Better Testing, Better Software


A software dev in test thinking against the grain. “To go faster, simplify, then add lightness.” ~Colin Chapman #cleancode #minaswan #innovate