{"id":14004,"date":"2024-04-23T11:06:55","date_gmt":"2024-04-23T10:06:55","guid":{"rendered":"https:\/\/ee.yelkdev.site\/?p=14004"},"modified":"2024-12-09T21:45:25","modified_gmt":"2024-12-09T21:45:25","slug":"how-to-test-conversational-assistants-using-behaviour-driven-development","status":"publish","type":"post","link":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/","title":{"rendered":"Test Conversational Assistants with BDD"},"content":{"rendered":"<p>In a <a href=\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-evaluate-conversational-assistants-powered-by-llms\">previous blog post<\/a>, I discussed the importance of testing conversational Assistants and the challenges involved in this process. I also discussed the benefits of using behaviour-driven development (BDD) to test conversational Assistants, and how it can help address some of these challenges.<\/p>\n<p>This blog will present a hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms. We&#8217;ll outline what the Assistant should do, the tools it needed and how we judged its success. Then we&#8217;ll test the Assistant using BDD techniques and evaluate its performance.<\/p>\n<p>You can find the complete code for this example in <a href=\"https:\/\/github.com\/EqualExperts\/agents-behave\" target=\"_blank\" rel=\"noopener\">this repository<\/a>.<\/p>\n<h2>Our Assistant example<\/h2>\n<p>We wanted to develop a Large Language Model (LLM) Assistant capable of facilitating hotel room bookings for users. We wanted the Assistant to precisely interpret user requests and, when required, seek further information. It could also utilise specific tools to fulfil these requests, including functionalities for booking rooms and retrieving hotel pricing per night.<\/p>\n<p>Note: This scenario has been intentionally simplified for illustrative purposes. In real-life applications, numerous factors associated with booking hotel rooms, including payment methods and cancellation policies, need to be considered. Nonetheless, for the sake of this example, we will concentrate on the fundamental aspects.<\/p>\n<h2>How did we assess our Assistant&#8217;s performance?<\/h2>\n<h3>Conversation simulation<\/h3>\n<p>&nbsp;<\/p>\n<p>To evaluate the performance of our Assistant, we needed to:<\/p>\n<ul>\n<li>simulate conversations between the user and the Assistant,<\/li>\n<li>analyse these interactions to gauge the Assistant&#8217;s effectiveness,<\/li>\n<li>ensure that the booking function, one of the tools available to the Assistant, is triggered with the correct parameters.<\/li>\n<\/ul>\n<p>To accomplish this, we used the following components:<\/p>\n<p>HotelReservationsAssistant: This is the Assistant we wanted to test. It should be capable of booking hotel rooms and interacting with users in a conversational manner.<br \/>\nTestUser: An LLM system capable of engaging in dialogue with the Assistant, with the intention of reserving a hotel room for specific dates. This enabled us to assess the Assistant against various user backgrounds and needs.<br \/>\nConversationRunner: An entity that orchestrated the dialogue between the user and the Assistant.<br \/>\nConversationAnalyser: An LLM system for analysing conversational dynamics. Here we employed a straightforward scoring framework paired with criteria to assess the Assistant&#8217;s performance.<\/p>\n<p>The following diagram illustrates the interaction between these components:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14010 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/conversation_runner_5.png\" alt=\"\" width=\"1011\" height=\"611\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/conversation_runner_5.png 1011w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/conversation_runner_5-300x181.png 300w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/conversation_runner_5-768x464.png 768w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" \/>\n<h3>Choosing a model<\/h3>\n<p>&nbsp;<\/p>\n<p>Out of these components, the HotelReservationsAssistant, TestUser, and ConversationAnalyser were powered by LLMs. One of the first decisions we needed to make was deciding which model to use for each of these components.<\/p>\n<p>We analysed several models to determine the most suitable for our scenario, regarding cost and performance.<\/p>\n<p>The HotelReservationsAssistant had to be able to interact with tools to book hotel rooms and retrieve pricing information. At the moment, the models we evaluated, besides GPT-4, were still not capable of handling function-based interactions reliably. Therefore, we used GPT-4 for the Assistant functionalities.<\/p>\n<p>As for the TestUser, we considered using Mixtral due to its cost-effectiveness and efficiency in orchestrating the TestUser. GPT-4 would perform better, but it is more expensive, whereas the Mixtral model was sufficiently efficient for this task.<\/p>\n<p>Finally, for the ConversationAnalyser we again used GPT-4. (Evaluating an LLM with another LLM is a subject of ongoing research, and it&#8217;s a complex task in itself. We believe that, at least for now, the other models are not yet capable of providing a reliable evaluation of the Assistant&#8217;s performance.)<\/p>\n<h2>Testing<\/h2>\n<p>Referring to <a href=\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-evaluate-conversational-assistants-powered-by-llms\" target=\"_blank\" rel=\"noopener\">our previous blog post<\/a>, we aimed to assess the Assistant&#8217;s performance across two distinct yet complementary aspects: tool interactions and conversational quality.<\/p>\n<h3>Tool interactions<\/h3>\n<p>&nbsp;<\/p>\n<p>We needed to verify that the Assistant correctly triggered the tools with the appropriate arguments and that the tools executed successfully. We achieved this by using common testing techniques. The tools used by the HotelReservationsAssistant, namely make_reservation and find_hotels, were injected into the Assistant. When running the tests, we injected mock functions to verify that these tools were triggered with the correct parameters.<\/p>\n<p>This part of the test was deterministic. There was no ambiguity in the expected outcomes; the tools were either triggered correctly with the right parameters, or they were not. And if not, the test was considered a fail.<\/p>\n<h3>Conversational quality<\/h3>\n<p>&nbsp;<\/p>\n<p>We needed to assess the Assistant&#8217;s ability to engage in dialogue effectively, maintain context, and provide relevant responses. This involved evaluating the Assistant&#8217;s conversational quality, including its ability to understand user intent and deliver appropriate responses.<\/p>\n<p>The conversational quality evaluation was more nuanced. We defined a set of criteria that the Assistant should meet during the conversation. These criteria included aspects such as asking for all the information needed to make a reservation, being polite and helpful, and not asking the user for unnecessary information.<\/p>\n<p>We then used an LLM to analyse the conversation and provide feedback on the Assistant&#8217;s performance based on these criteria. The LLM evaluated the conversation against the predefined criteria and provided a score based on how well the Assistant met these standards.<\/p>\n<p>Here we were dealing with non-deterministic tests. The evaluation of the Assistant&#8217;s performance was subjective, and may have varied depending on the LLM&#8217;s interpretation of the conversation. Due to the inherent variability of LLMs, the same conversation may have yielded different results upon multiple executions.<\/p>\n<p>Note: Evaluating an LLM with another LLM is a complex and controversial topic. We are aware of the limitations of this approach, but this is not the focus of this blog post.<\/p>\n<h2>Using BDD to test the Assistant<\/h2>\n<p>Using BDD presents some advantages over traditional testing methods, such as a more user-centric approach and a shared understanding of the system&#8217;s behaviour.<\/p>\n<p>These tests aimed to ensure that the Assistant behaved as expected when interacting with different types of users with different requests. This means the tests all followed a similar structure: a type of user with a specific booking request. This made these tests very suitable for BDD.<\/p>\n<p>The Python behave library was used to implement the BDD tests. Here was our first scenario:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14009 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_1_2.png\" alt=\"\" width=\"944\" height=\"913\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_1_2.png 944w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_1_2-300x290.png 300w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_1_2-768x743.png 768w\" sizes=\"(max-width: 944px) 100vw, 944px\" \/>\n<p>Running the test with this scenario simulated a conversation between the user and the Assistant, evaluated the Assistant&#8217;s performance based on the predefined criteria, and provided feedback on how well the Assistant met these standards.<\/p>\n<p>Below is the conversation history generated by running this test:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14008 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_1_5.png\" alt=\"\" width=\"653\" height=\"1387\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_1_5.png 653w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_1_5-141x300.png 141w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_1_5-482x1024.png 482w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/>\n<p>And here is the feedback from the Conversation Analyser:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14007 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/score_1.png\" alt=\"\" width=\"947\" height=\"239\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/score_1.png 947w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/score_1-300x76.png 300w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/score_1-768x194.png 768w\" sizes=\"(max-width: 947px) 100vw, 947px\" \/>\n<p>We then could try different scenarios, with a user that was not as helpful as John Smith, for example:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14006 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_2.png\" alt=\"\" width=\"926\" height=\"820\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_2.png 926w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_2-300x266.png 300w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/scenario_2-768x680.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/>\n<p>Despite a challenging interaction, the Assistant managed to ensure that the booking was completed satisfactorily:<\/p>\n<img decoding=\"async\" class=\"aligncenter wp-image-14005 size-full\" src=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_2_4.png\" alt=\"\" width=\"634\" height=\"1395\" srcset=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_2_4.png 634w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_2_4-136x300.png 136w, https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/chat_2_4-465x1024.png 465w\" sizes=\"(max-width: 634px) 100vw, 634px\" \/>\n<p>We&#8217;ve shown two scenarios where the Assistant successfully booked a hotel room for two different types of users. This success was not achieved on the first try; it required several iterations to refine the prompts and improve the Assistant&#8217;s performance.<\/p>\n<p>The automated tests were instrumental in identifying issues with the prompts and enhancing them. Changes were made to the prompts based on the feedback from the tests, which ultimately led to the successful completion of the scenarios.<\/p>\n<p>If later we need to change the Assistant&#8217;s prompts, we can run these tests again to ensure that the Assistant continues to behave as expected.<\/p>\n<h2>Caveats and lessons learnt<\/h2>\n<p>The example provided here emerged from extensive trials and errors and remains imperfect. The Assistant continues to face challenges with numerous edge cases.<\/p>\n<h3>It&#8217;s all about the prompt<\/h3>\n<p>&nbsp;<\/p>\n<p>The quality of the prompts was crucial. They had to be clear, concise, and unambiguous to ensure that the LLM behaved as expected.<\/p>\n<p>We learnt that sometimes, a small change in the prompt could have a significant impact on the LLM&#8217;s response. Having these automated tests in place proved to be very helpful in identifying issues with the prompts and improving them. This was true for all the prompts used for the Assistant, the TestUser, and the Conversation Analyser.<\/p>\n<h3>Open-source models limitations<\/h3>\n<p>&nbsp;<\/p>\n<p>To reduce costs, both in this developmental phase and in potential future production scenarios involving CI\/CD pipelines, we evaluated Mixtral for the Assistant. Our goal was to create prompts that would direct the model to use specific tools and return a JSON response detailing the tool name and its arguments.<\/p>\n<p>However, our experiments revealed that Mixtral struggles with complex tasks. While it can handle simple, isolated examples, it falls short when dealing with conversations that include multiple function calls. The repository contains these trials; although they work with the Assistant when equipped with the Mixtral model, the results are less than satisfactory.<\/p>\n<h3>Failures of the TestUser<\/h3>\n<p>&nbsp;<\/p>\n<p>At times, tests would fail because the TestUser didn\u2019t behave as expected. These cases are essentially false negatives since the Assistant functioned correctly. The TestUser&#8217;s accuracy largely depended on the prompt, which should be refined in future updates.<\/p>\n<h3>Conversational analyser limitations<\/h3>\n<p>&nbsp;<\/p>\n<p>The Conversation Analyser is a simple tool that evaluates the Assistant&#8217;s performance based on predefined criteria. It is not a comprehensive solution and would not always provide accurate feedback. Enhancing this tool to include more sophisticated evaluation mechanisms is a potential area for improvement. This may involve human evaluation to ensure a more precise assessment of the Assistant&#8217;s performance, especially until we can better trust the capabilities of the LLM.<\/p>\n<h3>Costs and performance<\/h3>\n<p>&nbsp;<\/p>\n<p>The expense of running these tests is significant. The GPT-4 model is costly, and the Mixtral model is less effective. It is essential to ensure that the costs remain under control. Moreover, the performance of the tests is concerning. They are slow, and the duration required to conduct them is considerable. However, we anticipate that with the ongoing advancement of LLMs, achieving faster and more cost-effective solutions will become increasingly feasible.<\/p>\n<h3>Non-deterministic tests<\/h3>\n<p>&nbsp;<\/p>\n<p>The use of LLMs in testing introduces an element of non-determinism. The same test may produce different results upon multiple executions. This variability is a typical characteristic of LLMs and should be carefully considered during test evaluations. A potential solution involves running the tests multiple times and averaging the outcomes. However, this method may not always be practical due to significant costs and time limitations.<\/p>\n<h2>Conclusion<\/h2>\n<p>In this blog, we have demonstrated how to test a conversational Assistant using BDD.<\/p>\n<p>We have discussed the importance of simulating conversations between the user and the Assistant, analysing these interactions, and evaluating the Assistant&#8217;s performance based on predefined criteria. We have also explored the benefits of using BDD to test the Assistant and the challenges encountered during the development process.<\/p>\n<p>We think that creating automated tests for conversational Assistants using BDD is a promising approach. It can help improve the development of conversational Assistants and sustain a higher degree of confidence in their performance when moving towards production.<\/p>\n<p>The example provided is a simplified scenario and does not reflect the complexities of a real-world application. Nevertheless, it serves as a fundamental approach that can be customised for practical application. We have also shared several caveats and lessons learnt during the development of this example, which we hope will prove beneficial to others.<\/p>\n<p>We encourage you to explore the complete code for this example at the <a href=\"https:\/\/github.com\/EqualExperts\/agents-behave\" target=\"_blank\" rel=\"noopener\">agents-behave repository<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a previous blog post, I discussed the importance of testing conversational Assistants and the challenges involved in this process. I also discussed the benefits of using behaviour-driven development (BDD) to test conversational Assistants, and how it can help address some of these challenges. This blog will present a hands-on example of how to test [&hellip;]<\/p>\n","protected":false},"author":176,"featured_media":19993,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[412,3],"tags":[427,677,676,392],"location":[394],"class_list":["post-14004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-tech-focus","tag-artificial-intelligence","tag-bdd","tag-conversational-assistants","tag-llm"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testing Conversational Assistants with BDD: A How-To Guide<\/title>\n<meta name=\"description\" content=\"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test Conversational Assistants with BDD | Equal Experts\" \/>\n<meta property=\"og:description\" content=\"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Equal Experts\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-23T10:06:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-09T21:45:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pedro Sousa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Test Conversational Assistants with BDD | Equal Experts\" \/>\n<meta name=\"twitter:description\" content=\"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.\" \/>\n<meta name=\"twitter:creator\" content=\"@EqualExperts\" \/>\n<meta name=\"twitter:site\" content=\"@EqualExperts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pedro Sousa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\"},\"author\":{\"name\":\"Pedro Sousa\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/f7bbf522f0c4e821b968aeaffa0e1816\"},\"headline\":\"Test Conversational Assistants with BDD\",\"datePublished\":\"2024-04-23T10:06:55+00:00\",\"dateModified\":\"2024-12-09T21:45:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\"},\"wordCount\":1866,\"publisher\":{\"@id\":\"https:\/\/www.equalexperts.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp\",\"keywords\":[\"Artificial Intelligence\",\"BDD\",\"Conversational Assistants\",\"LLM\"],\"articleSection\":[\"AI\",\"Tech Focus\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\",\"url\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\",\"name\":\"Testing Conversational Assistants with BDD: A How-To Guide\",\"isPartOf\":{\"@id\":\"https:\/\/www.equalexperts.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp\",\"datePublished\":\"2024-04-23T10:06:55+00:00\",\"dateModified\":\"2024-12-09T21:45:25+00:00\",\"description\":\"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage\",\"url\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp\",\"contentUrl\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp\",\"width\":1170,\"height\":720,\"caption\":\"How to test conversational Assistants using behaviour-driven development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.equalexperts.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test Conversational Assistants with BDD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.equalexperts.com\/#website\",\"url\":\"https:\/\/www.equalexperts.com\/\",\"name\":\"Equal Experts\",\"description\":\"Making Software. Better.\",\"publisher\":{\"@id\":\"https:\/\/www.equalexperts.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.equalexperts.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.equalexperts.com\/#organization\",\"name\":\"Equal Experts\",\"url\":\"https:\/\/www.equalexperts.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg\",\"contentUrl\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg\",\"width\":719,\"height\":340,\"caption\":\"Equal Experts\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EqualExperts\",\"https:\/\/www.linkedin.com\/company\/equal-experts\/?viewAsMember=true\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/f7bbf522f0c4e821b968aeaffa0e1816\",\"name\":\"Pedro Sousa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b4ac7bb5c46dc0c3d8f9ec6993ee785f58fd64364dfa65b205f510a9f9099ba9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b4ac7bb5c46dc0c3d8f9ec6993ee785f58fd64364dfa65b205f510a9f9099ba9?s=96&d=mm&r=g\",\"caption\":\"Pedro Sousa\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Testing Conversational Assistants with BDD: A How-To Guide","description":"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.","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:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/","og_locale":"en_GB","og_type":"article","og_title":"Test Conversational Assistants with BDD | Equal Experts","og_description":"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.","og_url":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/","og_site_name":"Equal Experts","article_published_time":"2024-04-23T10:06:55+00:00","article_modified_time":"2024-12-09T21:45:25+00:00","og_image":[{"width":1170,"height":720,"url":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png","type":"image\/png"}],"author":"Pedro Sousa","twitter_card":"summary_large_image","twitter_title":"Test Conversational Assistants with BDD | Equal Experts","twitter_description":"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.","twitter_creator":"@EqualExperts","twitter_site":"@EqualExperts","twitter_misc":{"Written by":"Pedro Sousa","Estimated reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#article","isPartOf":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/"},"author":{"name":"Pedro Sousa","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/f7bbf522f0c4e821b968aeaffa0e1816"},"headline":"Test Conversational Assistants with BDD","datePublished":"2024-04-23T10:06:55+00:00","dateModified":"2024-12-09T21:45:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/"},"wordCount":1866,"publisher":{"@id":"https:\/\/www.equalexperts.com\/#organization"},"image":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp","keywords":["Artificial Intelligence","BDD","Conversational Assistants","LLM"],"articleSection":["AI","Tech Focus"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/","url":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/","name":"Testing Conversational Assistants with BDD: A How-To Guide","isPartOf":{"@id":"https:\/\/www.equalexperts.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage"},"image":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp","datePublished":"2024-04-23T10:06:55+00:00","dateModified":"2024-12-09T21:45:25+00:00","description":"A hands-on example of how to test a conversational Assistant using BDD. Our aim was to build an Assistant that helps users book hotel rooms.","breadcrumb":{"@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#primaryimage","url":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp","contentUrl":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2024\/04\/Blog_Thumbnail-31.png-1.webp","width":1170,"height":720,"caption":"How to test conversational Assistants using behaviour-driven development"},{"@type":"BreadcrumbList","@id":"https:\/\/www.equalexperts.com\/blog\/ai\/how-to-test-conversational-assistants-using-behaviour-driven-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.equalexperts.com\/"},{"@type":"ListItem","position":2,"name":"Test Conversational Assistants with BDD"}]},{"@type":"WebSite","@id":"https:\/\/www.equalexperts.com\/#website","url":"https:\/\/www.equalexperts.com\/","name":"Equal Experts","description":"Making Software. Better.","publisher":{"@id":"https:\/\/www.equalexperts.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.equalexperts.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.equalexperts.com\/#organization","name":"Equal Experts","url":"https:\/\/www.equalexperts.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg","contentUrl":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg","width":719,"height":340,"caption":"Equal Experts"},"image":{"@id":"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EqualExperts","https:\/\/www.linkedin.com\/company\/equal-experts\/?viewAsMember=true"]},{"@type":"Person","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/f7bbf522f0c4e821b968aeaffa0e1816","name":"Pedro Sousa","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b4ac7bb5c46dc0c3d8f9ec6993ee785f58fd64364dfa65b205f510a9f9099ba9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b4ac7bb5c46dc0c3d8f9ec6993ee785f58fd64364dfa65b205f510a9f9099ba9?s=96&d=mm&r=g","caption":"Pedro Sousa"}}]}},"_links":{"self":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts\/14004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/comments?post=14004"}],"version-history":[{"count":0,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts\/14004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/media\/19993"}],"wp:attachment":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/media?parent=14004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/categories?post=14004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/tags?post=14004"},{"taxonomy":"location","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/location?post=14004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}