CINXE.COM
All You Need to Know About Behaviour-Driven Software
<!DOCTYPE html> <html lang="en" class="no-js"> <head> <meta charset="UTF-8"> <!--[if lt IE 9]> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <script src="http://behaviour-driven.org/wp-content/themes/vito/js/html5.js"></script> <![endif]--> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- WP_Head --> <title>All You Need to Know About Behaviour-Driven Software</title> <!-- This site is optimized with the Yoast SEO plugin v3.7.1 - https://yoast.com/wordpress/plugins/seo/ --> <meta name="description" content="What is behaviour-driven software development? Learn all about this method, its history, and its principles, in this informative article."/> <meta name="robots" content="noodp"/> <link rel="canonical" href="http://behaviour-driven.org/need-know-behaviour-driven-software.html" /> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel='dns-prefetch' href='//s.w.org' /> <link rel='stylesheet' id='cptch_stylesheet-css' href='http://behaviour-driven.org/wp-content/plugins/captcha/css/front_end_style.css?ver=4.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='http://behaviour-driven.org/wp-includes/css/dashicons.min.css?ver=4.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='cptch_desktop_style-css' href='http://behaviour-driven.org/wp-content/plugins/captcha/css/desktop_style.css?ver=4.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='cntctfrm_form_style-css' href='http://behaviour-driven.org/wp-content/plugins/contact-form-plugin/css/form_style.css?ver=4.0.3' type='text/css' media='all' /> <link rel='stylesheet' id='vito_googleFonts-css' href='http://fonts.googleapis.com/css?family=Lato%3A400italic%2C400%2C700&ver=4.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='bootstrap-css' href='http://behaviour-driven.org/wp-content/themes/vito/css/bootstrap.css?ver=3.1' type='text/css' media='all' /> <link rel='stylesheet' id='main-stylesheet-css' href='http://behaviour-driven.org/wp-content/themes/vito/style.css?ver=1.0' type='text/css' media='all' /> <script type='text/javascript' src='http://behaviour-driven.org/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-content/themes/vito/js/modernizr.min.js?ver=1'></script> <!-- Custom Styles --> <style type="text/css"> /* Body ---> Background Color ============================= */ body {background-color: ##F1F1F1!important;} /* Header ---> Text Color ============================= */ #header, #jqueryslidemenu ul.nav > li > a {color: ##777777!important;} /* Content ---> Text Color ============================= */ body {color: !important;} /* Links ---> Text Color ============================= */ .entry a, .widget a, #footer a, .metadata a {color: !important;} /* Headings ---> Text Color ============================= */ h1, h2, h3, h4, h5, h6, h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: !important;} </style> <!-- /WP_Head --> <link rel="shortcut icon" type="image/png" href="/wp-content/uploads/2016/11/favicon-6.png"/> </head> <body class="single single-post postid-10 single-format-standard vito ver1.0.12"> <div id="container" class="container"> <div class="row"> <section id="main" class="col-md-8"> <header id="header"> <div class="row"> <div class="logo_container col-md-4 col-sm-4"> <a href="/"><img class="logo" src="/wp-content/uploads/2016/11/logo-4.png" width="297" height="46" alt="vfl06_saalfeld_logo"/></a> <a class="ql_logo" href="http://behaviour-driven.org/" rel="home"></a> <button id="ql-main-nav-btn" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#ql-navigation"> <i class="fa fa-navicon"></i> </button> </div><!-- /logo_container --> <div class="nav_wrap col-md-8 col-sm-8"> <div class="collapse navbar-collapse" id="ql-navigation"> <nav id="jqueryslidemenu" class="jqueryslidemenu navbar " role="navigation"> <ul id="nav" class="nav"><li id="menu-item-18" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18"><a href="/">Home</a></li> <li id="menu-item-20" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-20"><a href="http://behaviour-driven.org/category/casino/">Casino</a></li> <li id="menu-item-19" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19"><a href="http://behaviour-driven.org/contact/">Contact</a></li> </ul> </nav> </div> </div><!-- /nav_wrap --> <div class="clearfix"></div> </div><!-- row--> </header> <div class="clearfix"></div> <div id="content"> <article id="post-10" class="post-10 post type-post status-publish format-standard hentry category-casino" > <div class="post-inside container-fluid"> <div class="row"> <div class="post-content col-md-9 col-lg-10"> <h1 class="post_title">All You Need to Know About Behaviour-Driven Software</h1> <div class="entry"> <p>For our first article, we had no doubt that we should give our readers some basic info on what exactly behaviour-driven development really is. We will try to keep it as casual as possible, in case you are not that much of a technical person yourself. Still, the subject is rather complex, so we cannot guarantee that you will not see some technical phrases and references. For a full overview of behaviour-driven development, you can find a variety of dedicated websites, including this very helpful Wikipedia <a href="https://en.wikipedia.org/wiki/Behavior-driven_development" target="_blank">article</a>. </p> <h2>What Is Behaviour-Driven Development?</h2> <p><img src="/wp-content/uploads/2016/11/board--300x212.jpg" alt="board" width="300" height="212" class="alignright size-medium wp-image-23" srcset="http://behaviour-driven.org/wp-content/uploads/2016/11/board--300x212.jpg 300w, http://behaviour-driven.org/wp-content/uploads/2016/11/board--768x543.jpg 768w, http://behaviour-driven.org/wp-content/uploads/2016/11/board--1024x724.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />Behaviour-driven development (or BDD for short) emerged from the process known as test-driven development (TDD). The concept behind BDD is to provide development and management teams with a shared process and shared tools, so that they can effectively collaborate while developing software. To this end, it combines the basic principles of TDD with object-oriented analysis and domain-driven design, to make the process of creating software as optimized and effective as possible. </p> <p>In its core, BDD is simply the idea that software development should be governed by both technical proficiencies and business interests alike. However, besides the ideological concept, BDD does make use of specialized software in order to achieve the desired goals. The main tool of the method is simple domain-specific language (also known as DSL). Instead of complex lines of code, this language uses normal English words and logical constructs to express how the software should behave. </p> <h2>History & Development</h2> <p><img src="/wp-content/uploads/2016/11/entrepreneur-0-300x199.jpg" alt="entrepreneur-0" width="300" height="199" class="alignright size-medium wp-image-25" srcset="http://behaviour-driven.org/wp-content/uploads/2016/11/entrepreneur-0-300x199.jpg 300w, http://behaviour-driven.org/wp-content/uploads/2016/11/entrepreneur-0-768x508.jpg 768w, http://behaviour-driven.org/wp-content/uploads/2016/11/entrepreneur-0-1024x678.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />As we already mentioned, BDD is a branch of the test-driven development method, which also uses domain-specific language to convert natural language phrases and statements into executable tests. We are talking about sentences that start with a conditional word (should, given, when, if, etc.) and define an outcome. For example: </p> <p><strong>If</strong> I have two apples<br /> <strong>And</strong> my friend takes one<br /> <strong>Then</strong> I will have one apple</p> <p>Using this as a starting point, many people and organisations developed BDD development frameworks over the years. In 2009, Dan North coined the most widely accepted definition of behaviour-driven development: </p> <p><em>‘BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.’</em></p> <h2>Basic Principles of BDD</h2> <p>BDD follows the basic principle that each unit of software must be individually tested. The process usually goes like this: </p> <ol> <li>A test is designed for the specific software unit</li> <li>The test is made to fail </li> <li>The unit is then implemented into the test</li> <li>The test is done again, verifying that the implementation of the unit makes it succeed</li> </ol> <p>This basic outline is perfect, because it allows the testing of both high and low-level software, as well as anything in between. When using the BDD methodology, the tests should be specified in terms of the desired behaviour of the unit in question. This behaviour is basically the requirements set by the business entity that commissioned the creation of the software. BDD is a pretty well-rounded concept, but the developments in the field continue to this day. Make sure you check back often for the latest news about this great software development method. </p> <div class="clearfix"></div> </div><!-- /entry --> <div class="clearfix"></div> </div><!-- /post_content --> <div class="metadata col-md-3 col-lg-2"> <div class="metadata"> <ul> <li class="meta_date"><time class="entry-date" datetime="2016-11-12T13:29:32+00:00"><a href="http://behaviour-driven.org/need-know-behaviour-driven-software.html">November 12, 2016</a></time></li> <li class="meta_comments"><span>Comments Off<span class="screen-reader-text"> on All You Need to Know About Behaviour-Driven Software</span></span></li> <li class="meta_author">Steve Fox</li> <li class="meta_category"><a href="http://behaviour-driven.org/category/casino/" rel="category tag">Casino</a></li> </ul> <div class="clearfix"></div> </div><!-- /metadata --> <div class="clearfix"></div> </div><!-- /metadata --> </div><!-- /row --> </div><!-- /post-inside --> <div class="clearfix"></div> </article> <div class="clearfix"></div> <nav class="navigation post-navigation" role="navigation"> <h2 class="screen-reader-text">Post navigation</h2> <div class="nav-links"><div class="nav-previous"><a href="http://behaviour-driven.org/welcome-behaviour-driven-org.html" rel="prev">Welcome to Behaviour-Driven.org!</a></div><div class="nav-next"><a href="http://behaviour-driven.org/leading-developers-online-casino-software.html" rel="next">The Leading Developers of Online Casino Software</a></div></div> </nav> </div><!-- /content --> </section> <aside id="sidebar" class="col-md-4"> <div class="sidebar-inside"> <ul class="nav nav_social"> </ul> <div id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="http://behaviour-driven.org/"> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> </label> <input type="submit" class="search-submit" value="Search" /> </form></div> <div id="recent-posts-2" class="widget widget_recent_entries"> <h4>Recent Posts</h4> <ul> <li> <a href="http://behaviour-driven.org/lessons-uk-online-casinos-mobile-market.html">Lessons for UK Online Casinos from the Mobile Market</a> </li> <li> <a href="http://behaviour-driven.org/leading-developers-online-casino-software.html">The Leading Developers of Online Casino Software</a> </li> <li> <a href="http://behaviour-driven.org/need-know-behaviour-driven-software.html">All You Need to Know About Behaviour-Driven Software</a> </li> <li> <a href="http://behaviour-driven.org/welcome-behaviour-driven-org.html">Welcome to Behaviour-Driven.org!</a> </li> </ul> </div> <div id="archives-2" class="widget widget_archive"><h4>Archives</h4> <ul> <li><a href='http://behaviour-driven.org/2016/12/'>December 2016</a></li> <li><a href='http://behaviour-driven.org/2016/11/'>November 2016</a></li> </ul> </div><div id="categories-2" class="widget widget_categories"><h4>Categories</h4> <ul> <li class="cat-item cat-item-1"><a href="http://behaviour-driven.org/category/casino/" >Casino</a> </li> </ul> </div> <div class="clearfix"></div> </div><!-- sidebar-inside --> </aside> <div class="clearfix"></div> </div><!--/row --> </div><!-- /container --> <footer id="footer"> <div class="container"> <div class="row"> <div class="col-md-12"> <p>Copyrights 2016 <a href="/">behaviour-driven.org</a> </p> </div> </div> </div> </footer> <!-- WP_Footer --> <script type='text/javascript' src='http://behaviour-driven.org/wp-includes/js/hoverIntent.min.js?ver=1.8.1'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-content/themes/vito/js/pace.min.js?ver=0.2.0'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-content/themes/vito/js/bootstrap.min.js?ver=2.1.0'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-includes/js/comment-reply.min.js?ver=4.6.1'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-content/themes/vito/js/script.js?ver=1.0'></script> <script type='text/javascript' src='http://behaviour-driven.org/wp-includes/js/wp-embed.min.js?ver=4.6.1'></script> <!-- /WP_Footer --> </body> </html>