----------------------------------------------------- Background ----------------------------------------------------- Premise: The goal of information architecture documentation is to describe how piece of software should be behave. Often these documents are used by designers and developers as a specifications document for building the system. - information architecture documentation is often created in a diagramming or prototyping program that the client probably doesn't know how to use. - complex interactions and dynamic page components (AJAX) are difficult to describe in flat, paper-oriented documentation. - different information architects have different visualization and documentation styles. - information architecture documentation sometimes doesn't help developers. What if information architect was documented in simple text files that everyone on the team could understand and modify? ----------------------------------------------------- Cucumber - http://cukes.info ----------------------------------------------------- An Example: Feature: creating a new page in a wiki As an average anonymous user I want to create a page about Cucumber So that I can tell everyone how awesome it is Scenario: Creating a new page and editing its contents Given I go to "/Cucumber" Then I should see "Edit this page" When I click "Edit this page" And I fill in "body" with "Cucumber is the the best" And I press "Save" Then I should see "Cucumber is the best" ----------------------------------------------------- 'Feature' - Describes the overall business value 'Scenario' - Describes the steps to fulfill the piece of functionality, in detail. Scenarios are constructed with 3 word; 'Given', 'When', 'Then' - Given; the pre-requisites - When; the action - Then; the outcome * These keywords have been translated to 37 languages; French, Danish, Texan, LOLCAT * ----------------------------------------------------- Benefits ----------------------------------------------------- - Information Architects (etc) write the features using; given, when, then. No need to run the code Just writing the Cucumber features helps focus and clarify the intended interactions to the clients. - Features, Scenarios, and 'Given' , 'When', and 'Then'; can be used in existing IA documentation as well (process flows, wireframes, etc) - anything dynamic. - Cucumber flows right into the iterative, behavior-driven development process. - Cucumber is Ruby (also ports for .Net, Java, Python, Flex). ---------- RESOURCES ---------- Cucumber - Making BBD Fun http://cukes.info Given When Then http://wiki.github.com/aslakhellesoy/cucumber/given-when-then Gherkin http://wiki.github.com/aslakhellesoy/cucumber/gherkin Testing Your Sites In English with Cucumber - Brian Hogan http://www.slideshare.net/napcs/testing-your-sites-in-english-with-cucumber Web Testing with Cucumber and WATIR http://github.com/napcs/cucumber_watir