{"id":141,"date":"2020-07-24T08:00:00","date_gmt":"2020-07-24T06:00:00","guid":{"rendered":"https:\/\/danilov.es\/?p=141"},"modified":"2025-03-13T11:33:37","modified_gmt":"2025-03-13T10:33:37","slug":"is-bdd-and-performance-testing-a-good-mix","status":"publish","type":"post","link":"https:\/\/danilov.es\/index.php\/2020\/07\/24\/is-bdd-and-performance-testing-a-good-mix\/","title":{"rendered":"Is BDD and Performance Testing a good mix?"},"content":{"rendered":"\n<p>After introducing Functional Test Automation to the entire platform in one of my past projects, as an organization, we started to realize the need of starting some sort of performance testing. Teams were already starting to get the benefits of using BDD as a framework, especially from the conversational perspective (between the different roles in the project), and, I thought: why not introduce performance testing into the same discussion? Yes, Performance Testing and BDD. Follow me into the next paragraphs to understand why two apparently different topics can actually mix.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why I really like BDD<\/h2>\n\n\n\n<p>I consider myself to have been lucky enough to have had the chance to see proper Behavior Driven Development working dynamics from an early stage of my career. BDD is much more than writing some Given-When-Then keyword based Test Automation scripts (an idea from which many critics of the framework never get beyond). It\u2019s a powerful tool to drive healthy communication habits inside teams, mixing 3 different perspectives: the actual code, a quality vision and business needs. On each deliverable, teams successfully balance the 3 and reach an agreement which sits at the basis of a fast, stable and consequently reliable SDLC. The beauty of the agreement is the mix of perspectives, and the fact that it\u2019s living and executing next to the runtime code. Consequently, the beauty of BDD is that it raises awareness and interest in other aspects one might not be involved in, creating a general feeling of end-to-end ownership.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problems when starting Performance Testing&nbsp;<\/h2>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Performance &#8211; one part of Quality that it\u2019s generally mistreated and forgotten until very bad things start to happen in an organization, because of various reasons:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Functionalities are thought for one user. Period. Product focus is generally on the User Experience, and it\u2019s missing its plural.&nbsp;<\/li><li>The low frequency of tackling performance in a typical conversation during grooming or development itself (between people with different profiles: Developers, QA, Product). The mix of complexity of functionality, priority of different projects and daily work sometimes just doesn\u2019t help for this conversation to start out of nowhere.<\/li><li>Except for modern organizations, if there is a Performance Testing activity, it\u2019s done by a specialized team, either on demand, asynchronously or at a late stage during development, very close to releasing.&nbsp;<\/li><li>When starting with Test Automation in an organization, the primary focus is generally raising coverage of the Functional part, leaving Performance for a much later stage.&nbsp;<\/li><li>The fear of the unknown: different tools, programming languages, approaches or philosophies, make different professionals leave this activity for sometime later. Ma\u00f1ana.&nbsp;<\/li><\/ul>\n\n\n\n<p>Isn\u2019t there any other way of solving all of these problems?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mixing BDD and Performance Testing, and making it a thing<\/h2>\n\n\n\n<p>Understanding the promises of BDD, and the struggles of kicking off Performance Testing, can make one think beyond the usual. What if:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>BDD is extended, and next to the existing scenarios, we start seeing references to multiple users?<\/li><li>Performance \u201cBehavior\u201d is discussed from the very beginning, and the \u201cagreement\u201d consists also of response times?<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Product starts to naturally understand Site Reliability aspects of the Platform, and even asks for projects of improvement?<\/li><li>The team which develops the functional code, also is aware and looks after it\u2019s performance and invests in improvements?<\/li><li>Performance Testing can reuse all of the existing Functional code and infrastructure, including living in under the same repository or folder?<\/li><li>Performance Testing is just another simple step in the CI\/CD Pipeline?<\/li><li>Covering a functionality with automation starts to mean also covering Performance?<\/li><\/ul>\n\n\n\n<p>If any of these questions has brought a smile, a spark of motivation or has made you day-dream for a while, it means that there is a match between BDD and Performance Testing, there might just be enough reasons for us to make it happen, and that it can just be a perfectly functioning mix.&nbsp;<\/p>\n\n\n\n<p class=\"has-small-font-size\"><em>And this is how project <a href=\"https:\/\/github.com\/NightCodeLabs\/pretzel\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>pretzel<\/strong><\/a> has started. Stay tuned, in the next article I\u2019ll write about how one can technically tackle that inside the Java ecosystem.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After introducing Functional Test Automation to the entire platform in one of my past projects, as an organization, we started to realize the need of&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/danilov.es\/index.php\/2020\/07\/24\/is-bdd-and-performance-testing-a-good-mix\/\">Continue Reading<span class=\"screen-reader-text\">Is BDD and Performance Testing a good mix?<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":281,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[51,52,54,53,48,49,55,50],"class_list":["post-141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-thoughts","tag-bdd","tag-behaviour","tag-development","tag-driven","tag-load","tag-performance","tag-pretzel","tag-testing","entry"],"_links":{"self":[{"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/posts\/141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/comments?post=141"}],"version-history":[{"count":5,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/posts\/141\/revisions"}],"predecessor-version":[{"id":242,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/posts\/141\/revisions\/242"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/media\/281"}],"wp:attachment":[{"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/media?parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/categories?post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danilov.es\/index.php\/wp-json\/wp\/v2\/tags?post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}