Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I don’t think there can be any mention of BDD without someone chiming in that it’s all about the communication. So I’ll be that guy: it’s all about the communication! The real value is the exploration of functionality in accessible terms with different stakeholders to establish what the system needs to do transparently. With everybody talking the same language, it’s much easier to communicate goals. When it comes to implementation, developers know what they’re doing, stakeholders know what they’re getting and there shouldn’t be too many surprises (except for the things you missed / captured incorrectly / haven’t realised yet, perhaps).</p> <p>So, get out there, speak to your stakeholders and work out <em>what</em> the person commissioning the system wants it do. If this is a solo effort, you're going to need to wear a number of different hats.</p> <p>Your BDD tests will cover the behaviour of the system - units of desired functionality. You'll still need to do unit tests etc. - no change there.</p> <p>As product owner, think about <em>what</em> you want the system to do – not <em>how</em>. You likely don’t care how things work, as long as they do work. If you’re a developer, this will likely be the difficult shift in thinking. When I first started looking into BDD, I was convinced that it made sense to go through UI journeys and technical details etc. in scenarios. It doesn’t. That stuff belongs in the step definitions. As developer, you can define all of the <em>how</em> stuff there.</p> <p>As for keeping it DRY… Write your scenarios exactly how you need to in order to capture the required behaviour. Then you can worry about refactoring and identifying opportunities for step re-use. The use of regular expressions will help here too, to some extent. It’s tempting to go super-imperative and have a whole suite of re-usable steps, but you’ll likely realise it’s all very brittle when a change to a single step ripples through all of your scenarios, not just the one it was supposed to affect. If you're interested into any form of web automation, check out the web automation pyramid.</p> <p>Useful resources (and lots of examples):</p> <p><a href="http://books.openlibra.com/pdf/cuke4ninja-2011-03-16.pdf">http://books.openlibra.com/pdf/cuke4ninja-2011-03-16.pdf</a> &lt; awesome free eBook – fun to read, too.</p> <p><a href="http://www.slideshare.net/lunivore/behavior-driven-development-11754474">http://www.slideshare.net/lunivore/behavior-driven-development-11754474</a> &lt; Liz really knows her stuff!</p> <p><a href="http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/">http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/</a></p> <p><a href="https://www.google.co.uk/search?q=declarative+vs+imperative+BDD">https://www.google.co.uk/search?q=declarative+vs+imperative+BDD</a> &lt; go Team Declarative!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload