Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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 TEST COMPLETED 1 scenario, 5 steps passed, 0 steps failed TEST PASSED Post results to Rally? Y Results have been posted to Rally TC1234 User can login Done.
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.
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 methodology 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.