TimWalker edited this page Mar 14, 2015 · 28 revisions
Clone this wiki locally

Welcome to the cucumbumbler wiki!

To Cucumbumble means to Bumble your Cucumber files.

To Bumble your Cucumber means you want to manage Cucumber to provide full application life cycle Specifications, including the aggregation of them, to specify all aspects of the system, for example, in all the testing quadrants, including: manual testing, functional, non-functional and integration with static code analysis

Cucumbumbler wraps and combines your Cucumber feature files, as well information in other forms, in a way that allows it to “Generate a Book”, that is factually backed by live automation and manual testing, and which serves as the primary specification of your system. With Cucumbumbler, the “book” itself can be executed ensuring desired behavior that is always current with the documentation describing it.

Cucumbumbler can drive manual and exploratory testing from any set of Cucumber features and can store results in traditional testing tools as well.

Cucumbumbler augments your agile processes in many ways, allowing Specification by Example (Behavior Driven Development, ATDD) to be used to specify all requirements of your system in a single, clear and consistent fashion available to all stakeholders. Truly “The Book of Your System”.

Cucumbumbler allows you organize you Cucumbers (virtually) in a rolled-up, single source of truth, that is always accurate and current as backed by the automated and manual testing required to “back” that state.

This combination allows Cucumbumbler to produce an output that create “The Book of Your Organization of Project”, that has the added benefit of providing a current status, and interacting with the system manually: exploratory or scripted or completely automated.


Cucumbumbler as a manual (scripted and exploratory) test execution engine from Cucumber

Please consider the following Feature file named both.feature:

@manual @rally_tc1234 @automatable
Scenario: Manual test a login page
   Given I go to the log in page
   And I fill in user with "Bees"
   And I fill in password with "Knees"
   And I press LOGIN
   Then I should see Log Out

When I run this feature normally with Cucumber it will run through whatever automated test framework exists.

When I run Cucumbumbler with the “-generate_book —execute” arguments, it will generate the output as an HTML “Book” so it can be used as primary documentation as a "live, single source of truth, that is always synchronized with functional behavior. With the arguments provided above, Cucumbumbler, will also run the automated tests providing an appendix with the results, linked to the text of the book that invoked it.

When I run Cucumbumbler with the “-execute_manual” I will be prompted to perform those step manually.


>>cucumbumbler both.feature
Given I go to the login page                                  Pass? [Y, N]  Y
And I fill in user with "Bees"                                Pass? [Y, N]  Y
And I fill in password with "Knees"                           Pass? [Y, N]  Y
And I press LOGIN.                                            Pass? [Y, N]  Y
Then I should see "Log Out"                                   Pass? [Y, N]  Y
1 scenario, 5 steps passed, 0 steps failed
Post results to Rally? Y
Results have been posted to Rally TC1234 User can login

The tags explained.
@manual Tells cucumbumbler that this is a manual scenario
@automatable Is used as input to cucumber that it is supported as an automatable scenario
@rally_tc1234 Tells Cucumbumbler to automatically post results to rally as Test Case #1234

Note that the @manual and @automatable are completely optional and only provided so that tools which interact with your feature files, such as cucumber can explicitly run tests that are @manual, @automatable, or both.

Cucumbumbler and the Testing Quadrants
All agile projects should have testing in each of the 4 testing quadrants (as originally expressed by Brian Marick and which has been described in agile contexts by Lisa Crispin and Janet Gregory in “Agile Testing”). When we use a BDD tool like Cucumber our requirements, documentation and tests that prove them are, literally, one artifact. Cucumbumbler allows you to store and specify all of your “4 quadrant tests” in exactly one place: your feature files. This also allow for the creation of an always current “quadrant status” dashboard.

The agile testing quadrants are explained in this excellent article by Lisa Crispin here .

Please see the User Story Page for a description of rest of Cucumbumbler.

Happy Cucumbumbling!

Cucumbumbler to generate a book

          Feature: Organize entire product or service as a "Book"
            As a test-first process implementing software (or hardware) in any industry 
            I'd like to organize a single source-of-truth in a "book" format using executable specifications
            So that I have a single, transparent, reference to the software endeavor
            Scenario: Generate a book 
               Given there are feature files present
               When I run "make a book"
               Then an HTML book is generated that has test results 

          Feature: Manual test execution of Cucumber feature files
            As an agile test manager maintaining automated and manual usage scenarios
            I'd like to maintain one set of test definitions/requirements
            So that I can manage a test suite consisting of manual and automated tests in the same process 
            Scenario: Run a manual test
              Given there are feature files present
              When I run "manual testing"
              Then Cucumbumbler interacts with a human to manually run tests

NOTE! This is a work in progress. The development of Cucumbumbler is being driven by itself so please download the repository (NOT YET AVAILABLE) and read the instructions on how to run it against it’s own feature files, generating “The Book of Cucumumbler” and tests.