{"id":28414,"date":"2020-04-13T10:08:38","date_gmt":"2020-04-13T10:08:38","guid":{"rendered":"https:\/\/stackify.com\/?p=28414"},"modified":"2024-03-18T10:20:06","modified_gmt":"2024-03-18T10:20:06","slug":"what-is-behavior-driven-development","status":"publish","type":"post","link":"https:\/\/stackify.com\/what-is-behavior-driven-development\/","title":{"rendered":"What Is Behavior-Driven Development?"},"content":{"rendered":"\n<p>We\u2019ve written about the <a href=\"https:\/\/stackify.com\/load-testing-vs-performance-testing-vs-stress-testing\/\">importance of testing<\/a> before. If you\u2019re in development, you\u2019re no doubt familiar with <a href=\"https:\/\/stackify.com\/agile-methodology\/\">agile methodology<\/a>. But sometimes a test-driven approach seems at odds with going fast. And how do you best communicate the importance of testing to everyone on your team? If you\u2019ve felt frustrated with test-driven development or don\u2019t have buy-in from your team, behavior-driven development is there to help.<\/p>\n\n\n\n<p>Let\u2019s delve into why you should use behavior-driven development and how to implement it. Plus, we\u2019ll discuss tips and tools to make behavior-driven development work best for you.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/bdd-feat-image.png\" alt=\"\" class=\"wp-image-43591\" srcset=\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/bdd-feat-image.png 1024w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/bdd-feat-image-300x150.webp 300w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/bdd-feat-image-150x75.webp 150w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/bdd-feat-image-768x383.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is Behavior-Driven Development?<\/strong><\/h2>\n\n\n\n<p>As a developer, how do I know that the software I wrote is working? Why, <a href=\"https:\/\/stackify.com\/fundamentals-web-application-performance-testing\/\">test it<\/a>, of course! <a href=\"https:\/\/www.agilealliance.org\/glossary\/tdd\/\">Test-driven development<\/a> (TDD) describes how to do this: First, write the test (that way you\u2019re clear on what your objective is). Then, write the code to make the test pass. Great! Now what?<\/p>\n\n\n\n<p>Though TDD provides a framework to check whether the code you wrote works as expected, it doesn\u2019t provide clear guidance on which features to start with when developing a product. The test functions are also not obvious to people who don\u2019t come from a software development background, which can make communication about the development cycle between the business side and the engineering side of an organization difficult. It\u2019s these limitations of TDD that behavior-driven development (BDD) wants to improve on.<\/p>\n\n\n\n<p>BDD is a methodology rather than a specific tool. It describes a way of talking about how your software should behave and checking that it\u2019s behaving that way. BDD grew out of a need to not just make tests for the sake of having test coverage, but to direct testing and development to the most important behaviors the software should have. It also gives a framework for talking about tests between the business side and the tech side.<\/p>\n\n\n\n<p>So how do you describe behavior? In BDD, <a href=\"https:\/\/www.atlassian.com\/agile\/project-management\/user-stories\">user stories<\/a> are supplemented with executable scenarios written in a clear, standardized way. In this way, development always follows from clear business needs and the desired outcome is explicitly stated.<\/p>\n\n\n\n<p>But before diving into specifics, let\u2019s discuss why you should use BDD.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why Use Behavior-Driven Development?<\/strong><\/h3>\n\n\n\n<p>Communication between business and development isn\u2019t always as good as it should be. Engineers may feel tempted to add features that are \u201cfun\u201d rather than features that add the most business value. Managers may not understand why development takes longer than they feel it should, especially if they aren\u2019t included in the process. And no one ever said, \u201cBoy, I wish I could write some more documentation on this project!\u201d<\/p>\n\n\n\n<p>So how can we improve communication between business and development? BDD aims to solve that problem.<\/p>\n\n\n\n<p>BDD aims to improve communication among the business side, testers, and developers. It also acts as a road map for developers to focus on the most important features first\u2014that is, the features that clearly add value.<\/p>\n\n\n\n<p>BDD promotes giving useful names to tests so that it\u2019s easier to take action if a test fails. Tests are written in plain English so that the code is self-documenting. That means that you can avoid undocumented code and <a href=\"https:\/\/geekandpoke.typepad.com\/geekandpoke\/2012\/04\/the-new-developer.html\">onboarding troubles.<\/a><\/p>\n\n\n\n<p>Lastly, BDD aims to make the test process more intuitive to newcomers and nonengineers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How to Implement BDD<\/strong><\/h3>\n\n\n\n<p>BDD principles can be applied to any type of testing, but because of their focus on behavior, they lend themselves best to functional tests. You\u2019ll remember that instead of a \u201ctest\u201d we\u2019re going to talk about \u201cbehavior.\u201d In this vocabulary, functional tests become \u201cthe specifications of the behavior of the product.\u201d<\/p>\n\n\n\n<p>The emphasis on \u201cspecification\u201d highlights a core viewpoint of BDD: that the creation of unit tests and the creation of features and functional tests are really two sides of the same coin. BDD emphasizes that these two activities shouldn\u2019t be seen as separate. According to Daniel Terhorst-North, <a href=\"https:\/\/dannorth.net\/introducing-bdd\/\">the creator of BDD<\/a>, this vision grew out of the need to have increased collaboration among developers, testers, and domain experts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Writing the User Story and the Given-When-Then Statement<\/strong><\/h3>\n\n\n\n<p>The desired behavior should come out of the standard user story framework:<\/p>\n\n\n\n<p><strong>As a<\/strong> (role),<br><strong>I would like<\/strong> (feature)<br><strong>so that<\/strong> (benefit)<\/p>\n\n\n\n<p>But we\u2019ll add more. A core element of BDD is that user scenarios are written in the given-when-then style, developed by Terhorst-North and Chris Matts.<\/p>\n\n\n\n<p><strong>Given<\/strong> (a specific context)<br><strong>When<\/strong> (some action is carried out)<br><strong>Then<\/strong> (a particular set of observable consequences should occur)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>A Practical Example<\/strong><\/h3>\n\n\n\n<p>For example, we want to have an \u201cadd to cart\u201d feature on an online retail site. The user story might look like this:<\/p>\n\n\n\n<p><strong>Scenario: <\/strong>Add item to shopping cart<\/p>\n\n\n\n<p><strong>As an<\/strong> online customer,<br><strong>I would like<\/strong> to be able to click on \u201cadd to cart\u201d for each item<br><strong>so that<\/strong> the item is saved to my shopping cart<\/p>\n\n\n\n<p>We can flesh it out into testable format with the given-when-then style. Be specific in what needs to happen. That said, test one thing, <em>and one thing only<\/em>! You can add more tests for different behaviors.<\/p>\n\n\n\n<p><strong>Given<\/strong><strong><br><\/strong>A user is looking at an item on the website<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> | item |\n | ---- |\n | book |\n | coat |\n | shoes| <\/pre>\n\n\n\n<p><strong>When<\/strong><strong><br><\/strong>The user clicks on \u201cadd to cart\u201d for the item<\/p>\n\n\n\n<p><strong>Then<\/strong><strong><br><\/strong>That item is added to the user\u2019s cart<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> | item&nbsp; |\n | ----- |\n | book&nbsp; |\n | coat&nbsp; |\n | shoes | <\/pre>\n\n\n\n<p>Nice! We have an easily understandable and executable scenario to test.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Given-When-Then: A More Complex Example<\/strong><\/h3>\n\n\n\n<p>We can expand on the basic given-when-then structure by adding constructors such as \u201cand.\u201d Here\u2019s a given-when-then statement for processing payment:<\/p>\n\n\n\n<p><strong>Scenario<\/strong>: Credit card payment<\/p>\n\n\n\n<p><strong>Given<\/strong><strong><br><\/strong>The user pays for the item via credit card<br>AND<br>the credit card details are valid<br>AND<br>there is sufficient credit on the account<\/p>\n\n\n\n<p><strong>When<\/strong><strong><br><\/strong>The user clicks \u201csubmit payment\u201d<\/p>\n\n\n\n<p><strong>Then<\/strong><strong><br><\/strong>$50 is deducted from the user\u2019s credit card<br>AND<br>$50 is added to the store account<br>AND<br>the purchase is recorded as successful<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tips on Writing Good Scenarios<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remember that test names should be as expressive as possible. BDD originally started from the idea that a test name should be a sentence describing the exact outcome that should occur. In this way, the test suite becomes the documentation for the software.<\/li>\n\n\n\n<li>A single test can only test behavior that can be described in a single sentence!<\/li>\n\n\n\n<li>Write the test name in simple business language so that everyone in the business can understand it.<\/li>\n\n\n\n<li>The focus is all about business value. As you finish with one test and move on to the next, you should ask, <strong>\u201cWhat\u2019s the next most important thing that the software should do?\u201d<\/strong> Now let this guide your development. (See how development is now not only test driven, but also value driven?)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1-1024x683.jpg\" alt=\"\" class=\"wp-image-43592\" srcset=\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1-1024x683.jpg 1024w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1-300x200.jpg 300w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1-150x100.jpg 150w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1-768x512.jpg 768w, https:\/\/stackify.com\/wp-content\/uploads\/2024\/03\/photo-1488590528505-98d2b5aba04b-1.jpg 1050w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Limits of Behavior-Driven Development<\/strong><\/h3>\n\n\n\n<p>Like any method, BDD isn\u2019t without its critics. Some drawbacks to note are as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>BDD requires careful specification before any development happens, which may slow a team down.<\/li>\n\n\n\n<li>You need a content expert for domain\u2013specific language surrounding desired behavior. If your content expert is in high demand, this can become a bottleneck for the team.<\/li>\n\n\n\n<li>It\u2019s easier for developers who are already experienced in TDD to switch to BDD than it is for newcomers.<\/li>\n\n\n\n<li>BDD is also not a cure for everything. In organizations with siloed teams or where increased cooperation among teams isn\u2019t a priority, BDD may just add work for testers.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Behavior-Driven Development Tools<\/strong><\/h3>\n\n\n\n<p>There are various tools available to get started with BDD. BDD was originally implemented in <a href=\"https:\/\/jbehave.org\/\">JBehave&nbsp;<\/a>for Java. <a href=\"https:\/\/github.com\/cucumber\/cucumber\">Cucumber<\/a> is a very popular cross-platform tool that turns the <a href=\"https:\/\/cucumber.io\/docs\/gherkin\/reference\/\">Gherkin language\u2019s<\/a> given-when-then scenarios into automated test suites. BDD packages are also available for Python, Ruby, and .NET, to name a few.<\/p>\n\n\n\n<p>Are you interested but unsure where to start? If you want to validate the behavior of your code without committing to automated testing, <a href=\"https:\/\/stackify.com\/prefix\/\">Prefix<\/a> offers a solution. It runs in your browser to <a href=\"https:\/\/stackify.com\/view-sql-with-prefix\/\">review your code performance.<\/a> Just note that it only supports .NET or Java web applications on Windows.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h3>\n\n\n\n<p>Behavior-driven development can help you improve collaboration and automation. One test for one feature ensures that problems can be easily traced. So even if you aren\u2019t using BDD-specific tools, you can use the BDD principles to write better tests.<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019ve written about the importance of testing before. If you\u2019re in development, you\u2019re no doubt familiar with agile methodology. But sometimes a test-driven approach seems at odds with going fast. And how do you best communicate the importance of testing to everyone on your team? If you\u2019ve felt frustrated with test-driven development or don\u2019t have [&hellip;]<\/p>\n","protected":false},"author":93,"featured_media":36899,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[52],"class_list":["post-28414","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","tag-developer-tips"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v25.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What Is Behavior-Driven Development? - Stackify<\/title>\n<meta name=\"description\" content=\"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is Behavior-Driven Development? - Stackify\" \/>\n<meta property=\"og:description\" content=\"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Stackify\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Stackify\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-13T10:08:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-18T10:20:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"881\" \/>\n\t<meta property=\"og:image:height\" content=\"440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michelle Hoogenhout\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@stackify\" \/>\n<meta name=\"twitter:site\" content=\"@stackify\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michelle Hoogenhout\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\"},\"author\":{\"name\":\"Michelle Hoogenhout\",\"@id\":\"https:\/\/stackify.com\/#\/schema\/person\/4e3d308bec068b4fcf042e572f409c14\"},\"headline\":\"What Is Behavior-Driven Development?\",\"datePublished\":\"2020-04-13T10:08:38+00:00\",\"dateModified\":\"2024-03-18T10:20:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\"},\"wordCount\":1369,\"publisher\":{\"@id\":\"https:\/\/stackify.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg\",\"keywords\":[\"developer tips\"],\"articleSection\":[\"Developer Tips, Tricks &amp; Resources\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\",\"url\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\",\"name\":\"What Is Behavior-Driven Development? - Stackify\",\"isPartOf\":{\"@id\":\"https:\/\/stackify.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg\",\"datePublished\":\"2020-04-13T10:08:38+00:00\",\"dateModified\":\"2024-03-18T10:20:06+00:00\",\"description\":\"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/stackify.com\/what-is-behavior-driven-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage\",\"url\":\"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg\",\"contentUrl\":\"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg\",\"width\":881,\"height\":440},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/stackify.com\/#website\",\"url\":\"https:\/\/stackify.com\/\",\"name\":\"Stackify\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/stackify.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/stackify.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/stackify.com\/#organization\",\"name\":\"Stackify\",\"url\":\"https:\/\/stackify.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/stackify.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/05\/logo-1.png\",\"contentUrl\":\"https:\/\/stackify.com\/wp-content\/uploads\/2024\/05\/logo-1.png\",\"width\":1377,\"height\":430,\"caption\":\"Stackify\"},\"image\":{\"@id\":\"https:\/\/stackify.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Stackify\/\",\"https:\/\/x.com\/stackify\",\"https:\/\/www.instagram.com\/stackify\/\",\"https:\/\/www.linkedin.com\/company\/2596184\",\"https:\/\/www.youtube.com\/stackify\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/stackify.com\/#\/schema\/person\/4e3d308bec068b4fcf042e572f409c14\",\"name\":\"Michelle Hoogenhout\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/stackify.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acd0b866d301d3db0da340b84d90037a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acd0b866d301d3db0da340b84d90037a?s=96&d=mm&r=g\",\"caption\":\"Michelle Hoogenhout\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What Is Behavior-Driven Development? - Stackify","description":"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stackify.com\/what-is-behavior-driven-development\/","og_locale":"en_US","og_type":"article","og_title":"What Is Behavior-Driven Development? - Stackify","og_description":"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.","og_url":"https:\/\/stackify.com\/what-is-behavior-driven-development\/","og_site_name":"Stackify","article_publisher":"https:\/\/www.facebook.com\/Stackify\/","article_published_time":"2020-04-13T10:08:38+00:00","article_modified_time":"2024-03-18T10:20:06+00:00","og_image":[{"width":881,"height":440,"url":"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg","type":"image\/jpeg"}],"author":"Michelle Hoogenhout","twitter_card":"summary_large_image","twitter_creator":"@stackify","twitter_site":"@stackify","twitter_misc":{"Written by":"Michelle Hoogenhout","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/#article","isPartOf":{"@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/"},"author":{"name":"Michelle Hoogenhout","@id":"https:\/\/stackify.com\/#\/schema\/person\/4e3d308bec068b4fcf042e572f409c14"},"headline":"What Is Behavior-Driven Development?","datePublished":"2020-04-13T10:08:38+00:00","dateModified":"2024-03-18T10:20:06+00:00","mainEntityOfPage":{"@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/"},"wordCount":1369,"publisher":{"@id":"https:\/\/stackify.com\/#organization"},"image":{"@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg","keywords":["developer tips"],"articleSection":["Developer Tips, Tricks &amp; Resources"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/","url":"https:\/\/stackify.com\/what-is-behavior-driven-development\/","name":"What Is Behavior-Driven Development? - Stackify","isPartOf":{"@id":"https:\/\/stackify.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage"},"image":{"@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg","datePublished":"2020-04-13T10:08:38+00:00","dateModified":"2024-03-18T10:20:06+00:00","description":"Why you should use behavior-driven development and how to implement it. Plus tips and tools to make behavior-driven development work best for you.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stackify.com\/what-is-behavior-driven-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stackify.com\/what-is-behavior-driven-development\/#primaryimage","url":"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg","contentUrl":"https:\/\/stackify.com\/wp-content\/uploads\/2020\/04\/behaviordrivendevelopment-881x440-1.jpg","width":881,"height":440},{"@type":"WebSite","@id":"https:\/\/stackify.com\/#website","url":"https:\/\/stackify.com\/","name":"Stackify","description":"","publisher":{"@id":"https:\/\/stackify.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stackify.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/stackify.com\/#organization","name":"Stackify","url":"https:\/\/stackify.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stackify.com\/#\/schema\/logo\/image\/","url":"https:\/\/stackify.com\/wp-content\/uploads\/2024\/05\/logo-1.png","contentUrl":"https:\/\/stackify.com\/wp-content\/uploads\/2024\/05\/logo-1.png","width":1377,"height":430,"caption":"Stackify"},"image":{"@id":"https:\/\/stackify.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Stackify\/","https:\/\/x.com\/stackify","https:\/\/www.instagram.com\/stackify\/","https:\/\/www.linkedin.com\/company\/2596184","https:\/\/www.youtube.com\/stackify"]},{"@type":"Person","@id":"https:\/\/stackify.com\/#\/schema\/person\/4e3d308bec068b4fcf042e572f409c14","name":"Michelle Hoogenhout","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stackify.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/acd0b866d301d3db0da340b84d90037a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acd0b866d301d3db0da340b84d90037a?s=96&d=mm&r=g","caption":"Michelle Hoogenhout"}}]}},"_links":{"self":[{"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/posts\/28414"}],"collection":[{"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/users\/93"}],"replies":[{"embeddable":true,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/comments?post=28414"}],"version-history":[{"count":0,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/posts\/28414\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/media\/36899"}],"wp:attachment":[{"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/media?parent=28414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/categories?post=28414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stackify.com\/wp-json\/wp\/v2\/tags?post=28414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}