anchor.diff:  .A test report generated by Serenity
   image::serenity-test-report.png[]
   
  -Note how this scenario is deliberatly pitched at a fairly high level, in business terms, describing the business motivations behind the feature without committing to a particular implementation. 
  +Note how this scenario is deliberately pitched at a fairly high level, in business terms, describing the business motivations behind the feature without committing to a particular implementation.
   
   When a tester or a developer automates and executes this scenario, or a BA reviews the results, they will often want to see a bit more detail. For example, the tester will want to see how the screens played out (if it's a web test), what test data was used and so on. And the BA might want to see what the screens look like for each step.
   
   Serenity BDD does below for you
   
  -  - Makes it easy to write, execute, and report on automated acceptance tests in terms like this, that BAs and testers as well as developers can relate to. 
  -  - Structure your automated acceptance tests into steps and sub-steps like the ones illustrated above. This tends to make the tests clearer, more flexible and easier to maintain.  
  +  - Makes it easy to write, execute, and report on automated acceptance tests in terms like this, that BAs and testers as well as developers can relate to.
  +  - Structure your automated acceptance tests into steps and sub-steps like the ones illustrated above. This tends to make the tests clearer, more flexible and easier to maintain.
     - When the tests are executed, Serenity produces illustrated, narrative-style reports like this:
  -  
  +
   [[fig-aggregate-report]]
   .An aggregate report generated by Serenity
   image::serenity-aggregate-report.png[]
  
positive.code: I want to be able to place items I want to buy in a virtual cart before placing my order
  ----
  
  If we were implementing this story, we would typically define a set of acceptance criteria to flesh out and understand the requirements. For example, we might have the following criteria in our list of acceptance criteria: 
   
    - Show total price for all items
    - Show line item prices
    - Show shipping costs
  
negative.code: To get the most out of Serenity BDD, it is useful to understand some of the basic Serenity BDD behind Behaviour Driven Development and Automated Acceptance Testing. Serenity BDD is commonly used for both Automated Acceptance Tests and Regression Tests, and the principles discussed here apply, with minor variations, to both.
  
  Behaviour Driven Development or BDD, is a development approach where team members explore, and build a shared understanding of application requirements through conversations around examples. In Agile teams practicing BDD, this is often done before or early on in a sprint, in a special meeting sometimes called "the three amigos" or "the three-way handshake", where (at least) a BA (Business Analyst, Product Owner/Manager), a developer and a tester get together to work through examples from the acceptance criteria. The examples being discussed are concrete illustrations of how the system should work, or how a user might use a feature. These examples help provoke discussion, uncovering assumptions and omissions that would have otherwise lead the development team into error further down the track.
  
  Let's look at an example. Suppose we are building the shopping cart component of an online craft sales site.
  In Agile terms, the corresponding user story might look like this:
  
  [source,gherkin]
  