Dashboard > GreenPepper Open Documentation Refactoring > ... > 5. Scenario specification > Writing a Scenario specification
  GreenPepper Open Documentation Refactoring Log In View a printable version of the current page.  
  Writing a Scenario specification
Added by Francois Denommee, last edited by Francois Denommee on Nov 24, 2009  (view change)
Labels: 
(None)

Writing a Scenario specification

When do we use the ScenarioInterpreter

The ScenarioInterpreter is used to express interactions with the system under development that must be performed in a particular order. This form of specification provides information about the business flow.

When a sequence of action is executed, confirms that each action has successfully been performed.

First row: Identification of the Scenario

As for all other interpreters, the first row of the ScenarioInterpreter specifies the name of the interpreter and the name of the sequence of actions to be tested. What makes the ScenarioInterpreter particular is that it only have to be defined once for all the sequences of actions expressed in a page. Obviously, the ScenarioInterpreter must be defined before any sequence of actions.

Example of a bank Account management system

Example context : The system under development must be able to manage two different types of bank account. The system should allow to execute the usual transactions within an account.

So the first line could be expressed as

scenario bank account management

or more simply as

scenario bank

Following rows: Actions & Verifications

The second and following rows are used to express specific actions or verifications. The business expert should express the action in human readable format rather than using computer like language.

With this interpreter, only 1 cell is required to express the action (in comparison to the DoWithInterpreter).

Example: In our bank example, the first action would be to create a bank account .

If we want to take the account number as a parameter, we would have:

open checking account 12345-67890

But, if we want to consider the type of account, the account number, the owner first name and last name as parameters, we would have:

open checking account 12345-67890 under the name of Spongebob Squarepants

Example: Verify the balance of an account

In our example, there would be two parameters: the account number and the amount of balance.

verify that balance of account 12345-67890 is $0.00

Final expression of our example

scenario bank

Our first business rule says that a new account should have a balance of 0.00 dollars.

open checking account 12345-67890 under the name of Spongebob Squarepants
verify that balance of account 12345-67890 is $0.00

Our next rule says that the bank should not take any fees when we deposit money in our account.

deposit $100.00 in account 12345-67890
verify that balance of account 12345-67890 is $100.00

The following rule says that a customer should be able to withdraw funds if the balance of his account is sufficient.

withdraw $50.00 from account 12345-67890
verify that balance of account 12345-67890 is $50.00
can't withdraw $75.00 from account 12345-67890
verify that balance of account 12345-67890 is $50.00
can withdraw $25.00 from account 12345-67890

Execution of specification

Based on those executable specifications, the developers are now ready to code the functionality and the fixture (the fixture is the link between the system under development and the executable specification). Once this is done, the specification can be executed by clicking on the Execute button on the top of the page.

During execution, will color rows or words inside a row in green if the execution has passed and color it in red if the execution has failed.

The examples provided in this page are used to explain how to write the fixture for the ScenarioInterpreter.

DEMONSTRATION LICENSE - This Confluence site is for demonstration purposes only. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.4.3 Build:#705 Mar 21, 2007) - Bug/feature request - Contact Administrators