loader
Generating audio...

arxiv

Paper 2503.05561

Test Case Generation for Dialogflow Task-Based Chatbots

Authors: Rocco Gianni Rapisarda, Davide Ginelli, Diego Clerissi, Leonardo Mariani

Published: 2025-03-07

Abstract:

Chatbots are software typically embedded in Web and Mobile applications designed to assist the user in a plethora of activities, from chit-chatting to task completion. They enable diverse forms of interactions, like text and voice commands. As any software, even chatbots are susceptible to bugs, and their pervasiveness in our lives, as well as the underlying technological advancements, call for tailored quality assurance techniques. However, test case generation techniques for conversational chatbots are still limited. In this paper, we present Chatbot Test Generator (CTG), an automated testing technique designed for task-based chatbots. We conducted an experiment comparing CTG with state-of-the-art BOTIUM and CHARM tools with seven chatbots, observing that the test cases generated by CTG outperformed the competitors, in terms of robustness and effectiveness.

Paper Content:
Page 1: Test Case Generation for Dialogflow Task-Based Chatbots Rocco Gianni Rapisarda Dep. of Informatics, Systems and Communication University of Milano-Bicocca Milan, Italy r.rapisarda2@campus.unimib.itDavide Ginelli Dep. of Informatics, Systems and Communication University of Milano-Bicocca Milan, Italy davide.ginelli@unimib.it Diego Clerissi Dep. of Informatics, Bioeng., Robotics and Systems Engineering University of Genova Genova, Italy diego.clerissi@dibris.unige.itLeonardo Mariani Dep. of Informatics, Systems and Communication University of Milano-Bicocca Milan, Italy leonardo.mariani@unimib.it Abstract —Chatbots are software typically embedded in Web and Mobile applications designed to assist the user in a plethora of activities, from chit-chatting to task completion. They enable diverse forms of interactions, like text and voice commands. As any software, even chatbots are susceptible to bugs, and their pervasiveness in our lives, as well as the underlying technological advancements, call for tailored quality assurance techniques. However, test case generation techniques for conversational chatbots are still limited. In this paper, we present Chatbot Test Generator ( CTG ), an automated testing technique designed for task-based chatbots. We conducted an experiment comparing CTG with state-of-the-art BOTIUM and CHARM tools with seven chatbots, observing that the test cases generated by CTG outperformed the competitors, in terms of robustness and effectiveness. Index Terms —Chatbot Testing, Test Automation, Coverage, Flakiness, Mutation Testing I. I NTRODUCTION Task-based chatbots are chatbots designed to deliver func- tionalities through conversations. Notable examples are chat- bots for assisting users, booking services, and completing transactions [1], [2]. In recent years, task-based chatbots (hereafter simply chatbots) have gained popularity thanks to their integration into Web and Mobile applications, and advances in underlying technologies have made them ubiquitous in a multitude of domains, such as e-commerce, booking, tech support, healthcare, and more [1]–[5]. Further, chatbots have become significant in the context of business companies, as they allow for a reduction in personnel expenses by providing a potentially active 24/7 service. As chatbots continue to permeate our daily lives supported by a large number of design platforms, such as Dialogflow [6], Amazon Lex [7], IBM Watson Assistant [8], and Rasa [9], ensuring their reliability has become a critical concern. Unlike regular test case generation approaches that validate software through interactions taking the form of, for instance, API calls, HTTP requests, or clicks on visual elements, chatbots requirethe generation of actual conversations, that is, natural language sentences that correspond to actual user requests. Further, responses also take the form of natural language sentences that must be interpreted to determine their correctness. It is thus imperative to design ad-hoc techniques that can generate test cases that thoroughly exercise software whose interface is conversational [10], [11]. The initial effort in test case generation for chatbots was mainly focused on exercising speech recognition capabili- ties [12]–[16], and other non-functional characteristics [17]. The generation of test cases (i.e., conversations) to thoroughly validate the functionalities implemented by the chatbot under test required extensive manual intervention [9], [18]–[24]. So far, two approaches have targeted automatic test case generation for chatbots: BOTIUM [25], which is a state-of-the-practice tool originally developed by Botium GmbH (now Cyara [26]), andCHARM [27], which extends BOTIUM with the capability to generate more diverse test cases. However, both approaches arenot able to thoroughly cover the conversational input space of a chatbot and often generate incorrect test cases , due to the challenge of predicting the responses that must be produced by tested chatbots. To address the need for an automated testing solution capable of generating robust and effective test cases that can be used, this paper presents Chatbot Test Generator ( CTG ), an automated testing tool designed for Dialogflow task-based chatbots. CTG exploits the tests generated by BOTIUM as seed tests that are systematically augmented to produce test cases that cover alternative conversational paths . Moreover, CTG is the first dynamic test generation approach for chatbots, that is, it executes the test cases and records the chatbot responses to obtain test cases that can be faithfully re-executed as regression tests, compared to statically generated tests that may include incorrect oracles. Finally, CTG generates test cases with setup and teardown operations that prepare and clean up the environment, preventing any accidental interferencearXiv:2503.05561v1 [cs.SE] 7 Mar 2025 Page 2: with the generated test cases. We conducted an experiment comparing CTG with BOTIUM and CHARM , state-of-the- art tools, observing that the test cases generated by CTG outperformed those generated by competing approaches, in terms of both robustness and effectiveness. In particular, CTG generated 95% correct test cases, compared to BOTIUM and CHARM that generated 61% and 82% correct tests, respectively. Moreover, the tests generated by CTG killed the highest number of mutants in five out of the seven chatbots considered in our mutation testing experiment. This result suggests that the tests obtained with CTG can be used to create better regression test suites than using state-of-the-art approaches. This paper provides the following contributions: (i) it proposes CTG , the first dynamic test case generation tool for Dialogflow task-based chatbots, (ii) it presents a systematic strategy to generate reliable conversations that cover the possible conversational paths, including the usage of entity values, alternative utterances, and set up and tear down of the testing environment, and, (iii) it presents empirical results that show how CTG outperforms the BOTIUM andCHARM state-of-the-art tools when generating tests for seven task-based chatbots. The paper is organized as follows. Section II introduces the key elements of task-based chatbots. Section III describes CTG . Section IV presents our experiment. Section V discusses related work. Then, Section VI provides final remarks. II. D IALOGFLOW TASK-BASED CHATBOTS Chatbots, also known as virtual assistants or conversational agents, are software programs designed to interact with human users through textual, vocal, images, or other communication channels [2]. Chatbots can be categorized based on their oper- ational focus (i.e., informative, conversational, and task-based), their context (i.e., domain-specific or domain-independent), and thetechnology and modules they are composed of (e.g., natural language processors, speech recognition systems, machine learning models) [1], [2]. Task-based chatbots are chatbots designed to efficiently complete specific tasks through user conversations, prioritizing functionality over casual chat. They aim to fulfill a user’s intent, such as booking a service or guiding users through procedures. Dialogflow [6] is a Natural Language Understanding (NLU) platform, part of the Google Cloud Platform, and one of the most popular platforms for multi-language chatbot design [28]. The platform offers a user-friendly Web interface, advanced machine learning and voice recognition modules for NLU, and native support with Google Cloud services. Further, it integrates with existing services (e.g., Slack, Telegram, Messenger) and custom external services, via Cloud Functions for Firebase. Finally, it exposes APIs that enable connections with existing testing tools, such as Botium [25]. In terms of structure, a Dialogflow chatbot is composed of several components encapsulating the main concepts of a conversation [29], [30]: •Intents : they represent the possible goals of a user that the chatbot considers as tasks to achieve; users express their intent using utterances (e.g., the intent to order apizza can be expressed by the sentence I would like to order a pizza ); •Actions : they are the actions that a chatbot may perform to complete a task; actions can be either plain text responses/requests (e.g., asking the question What pizza would you like to order? ), graphical objects to interact with, or requests invoking external services; •Entities : the data types that can be used in a conversation, either representing simple literals (e.g., Pepperoni pizza ), regular expressions, or compositions of other entities; •Flows : the possible user-bot interactions composing con- versations, which can include context data representing the time-bounded memory of the chatbot. Testing a task-based chatbot requires generating conversa- tions that thoroughly cover the intents, entities, and flows that are defined in a chatbot. III. C HATBOTS TESTGENERATOR Chatbot Test Generator (CTG) is an automated test gener- ator tool for Dialogflow chatbots, developed in Node.js. Its architecture is shown in Figure 1. Starting from a set of BOTIUM seed tests that exercise the intents defined in the chatbot under test (e.g., one seed test per intent), CTG generates augmented tests that cover inputs often ignored by test case generation. The seed tests represent the backbone of the conversations explored by CTG . Further, CTG is able to set up and tear down the environment of the chatbot, preventing any side-effect between test executions. Unlike other approaches that generate tests for chatbots using static analysis (i.e., without executing the chatbot), CTG incrementally generates test cases by sending user messages and recording bot responses at runtime, thus producing test cases that resemble actual conversations, being more reliable for regression testing than statically generated tests. CTG consists of four key components. The GENERATOR orchestrates the entire test generation process. The EXPANDER retrieves alternative utterances and entity values that can be used as replacements for those present in the seed test cases, then it unrolls the user-bot interactions to explore additional conversational paths based on the extracted alternative values, potentially exercising unexplored intents. The EXECUTOR runs the generated tests, using BOTIUM connector module to interact with the chatbot deployed on Dialogflow, and records the conversation (i.e., user requests and bot responses). The CLEANER is configured according to a cleaning routine defined by the tester to set up and tear down the environment, including the persistence layer of the chatbot under test, thus favoring testing in a neutral environment. In the following, we present the main algorithms of CTG in detail. A. Generator Algorithm 1 shows the generateTests function implemented by the GENERATOR . The function takes in input the seed tests ST, used as a basis for the generation process, the cleaning routine CR, used to configure the CLEANER with the logic to connect to the chatbot and to set up and tear down its back-end, Page 3: Cleaning Routine User requests Bot responsesBot Domain Data cleaningSeed Tests Persistence layer Augmented Tests Entities UtterancesData extractionFig. 1. CTG architecture. Algorithm 1 CTG test case generation process. Input: 1ST: the seed tests2CR : the cleaning routine to set up the connection with the chatbot 3bot : the bot under test Output: 4AT: the augmented tests Dependencies: 5function EXPAND (st, botMsg, bot ) ▷Alg.2 6function SETUP(CR) ▷Alg.3 7function TEAR DOWN(CR) ▷Alg.3 89function GENERATE TESTS (ST, CR, bot ) 10 AT← ∅11 forstinSTdo12 startMsgs ←EXP.expand (st, null, bot ) 13 fori= 0;i <|startMsgs |;i+ + do 14 at←() 15 at.seed ←true16 AT[st]←AT[st]∪ {at} 17 end for18 fori= 0;i <|AT[st]|;i+ + do 19 conn←CLEANER.setUp (CR) 20 ifAT[st][i].seed then 21 userMsg ←startMsgs [i] 22 do23 if|userMsg |= 1 then 24 AT[st][i].addUserMsg (userMsg ) 25 botMsg ←EXEC.sendMsg (userMsg, conn ) 26 AT[st][i].addBotMsg (botMsg ) 27 userMsg ←EXP.expand (st, botMsg, bot ) 28 else29 forj= 1;j <|userMsg |;j+ + do 30 at′←() 31 at′.addUserMsg (AT[st][i].getUserMsgs ()) 32 at′.addUserMsg (userMsg [j]) 33 at′.seed←false 34 AT[st]←AT[st]∪ {at′} 35 end for36 AT[st][i].addUserMsg (userMsg [0]) 37 botMsg ←EXEC.sendMsg (userMsg [0], conn ) 38 AT[st][i].addBotMsg (botMsg ) 39 userMsg ←EXP.expand (st, botMsg, bot ) 40 end if41 whileuserMsg ̸=null 42 else43 userMsgs ←AT[st][i].getUserMsgs () 44 forj= 0;j <|userMsgs |;j+ + do 45 botMsg ←EXEC.sendMsg (userMsgs [j], conn ) 46 AT[st][i].addBotMsg (botMsg ) 47 end for48 end if49 conn←CLEANER.tearDown (CR) 50 end for51 end for52 return AT53end function and the reference to the chatbot under test bot, used to extract the alternative utterances and entity values from the chatbot, and returns the collection ATof augmented tests for each seed test (e.g., AT[sti][j]is the jthaugmented test for seed test i). The seed tests ST must cover the conversational flows that should be used to generate alternative conversations. Although seed tests could be obtained in multiple ways, including manually implementing them, in our assessment we used BOTIUM to generate seed tests, since BOTIUM can automatically generate a set of test cases that exercise the main conversational flow defined in a chatbot. The function generateTests iterates over each seed test caseto generate corresponding alternative test cases (lines 11-51). The GENERATOR starts by using the EXPANDER to retrieve all alternative messages that a user can use to start a conversation according to the set of salutation messages expected by the chatbot (line 12). To perform such a task, the EXPANDER accesses the chatbot structural files, extracting the alternative utterances and entity values. For each message that can be used to start a conversation, a new empty augmented test case is created and added to the output set (lines 13-17). Each new test case is flagged as “seed” (line 15), since the algorithm discriminates tests that cover the seed conversational flow from the alternatives that may originate by the expansion of the input data in future interactions (e.g., after the greetings, the conversation may take a new path if the user orders a pizza instead of a hamburger). For each new test case (lines 18-50), the connection to the chatbot is established through the CLEANER (line 19). If the test is flagged as “seed” (line 20), a proper salutation message is used to initiate the test from the available ones (line 21). Then, the conversation is iteratively built and executed until no more messages can be sent to the chatbot (lines 22-41). Within each iteration, if the EXPANDER has not identified any alternative message to be sent, the only possible message is sent to the chatbot using the EXECUTOR , which exploits Botium APIs to communicate with the bot deployed on Dialogflow. The bot response is collected and encoded as expectation in the test, and the next user message to be sent is retrieved from the alternative messages identified by the EXPANDER (lines 23-27). In case, instead, there are multiple alternatives for the user message to be sent, for each alternative, a new augmented test case is created (lines 29-35): every alternative test inherits the initial part of the conversation already established within the seed test from which the new test is created (line 31) and such test is added to the output set of augmented tests associated with the seed test (line 34). Then, the user-bot interaction proceeds for the seed test (lines 36-39), using the first user message among the alternatives that, by construction, indicates a seed test (i.e., userMsg [0], line 36). Once an augmented test has reached the end of the execution, the alternative augmented test cases that are pending are retrieved and completed using the same strategy (lines 42-48). Eventually, at the end of each test case interaction with the bot, theCLEANER is called to restore the chatbot to its original Page 4: state (line 49). The aforementioned procedure is repeated until no more seed tests are present, and finally the whole set of augmented tests is returned (line 52). B. Expander Algorithm 2 shows the expand function implemented by the EXPANDER . The function takes in input a test case t, a bot message botMsg occurring in the test, the reference to the chatbot bot, and returns all the alternative user responses alt that can be sent to the chatbot for the message botMsg . To perform its tasks, the EXPANDER accesses the Dialogflow data defined for the bot and exploits the BOTIUM test case structure, outlined in the example in Figure 2. In BOTIUM , a test case is a conversation that alternates user sentences, occurring after the tag #me, and bot sentences, occurring after the tag #bot . For each chatbot intent, defined by user utterances and corresponding chatbot responses ( User Utterances and Bot Responses sections in Figure 2), used internally by the chatbot to train a model to recognize sentences flexibly, BOTIUM exploits the dataset and builds the seed test cases as finite combined sequences of user-bot interactions, where the bot messages can be used as oracles to compare with actual responses during test execution. When a sentence refers to an entity, the bot identifies it with the @symbol (e.g., in the example, the bot is asking for the service the user wants). The chatbot has a number of entity values that can be accepted for each entity. During the conversation, the user must choose one of them to produce a response that is understandable by the bot. The EXPANDER accesses this information to find any alternative utterance and entity value that can be used in the conversation. If the bot message to answer is assigned with the value null (lines 7-9), this means that the conversation has just started. The user message for which the alternatives must be found is the one starting the test case (e.g., the first #me message of Figure 2); then, the EXPANDER can extract the alternative sentences by accessing the user utterances file associated with that message ( User Utterances section in Figure 2). If, instead, the bot message is a prompt referring to one or more required entity values (lines 10-11), where an entity is determined by the presence of the “@” symbol, the alternative messages are obtained by combining the entity values extracted for each entity from the chatbot ( @service values section in Figure 2); the logic of entity value extraction and combination is encapsulated by the method getEntityValues , not shown for space reasons. Else, if the bot message is a simple plain text response (lines 12-15), the next user message is retrieved from the test case (line 13), and the alternative user responses are extracted from the utterances file related to the user message (line 14). Finally, the set of alternatives messages discovered is returned to the GENERATOR (line 16), at its disposal for the test generation process. C. Cleaner Algorithm 3 shows the setUp andtearDown functions of theCLEANER component. The setUp function is called at thebeginning of the generation process (line 19 from Algorithm 1) to establish a connection to the chatbot under test and to its persistence layer; it takes in input the cleaning routine CR to inject to the CLEANER the logic to manage the exact cleaning process for the target chatbot (e.g., how to remove events from a Google Calendar for a calendar managing chatbot), and returns a connection conn to communicate with the chatbot. More in detail, the service account configuration pertaining the external service that the chatbot connects to, if any, is built (line 7); a service account could refer, for instance, to the Google API managing Google Calendar, thus requiring data such as private keys and project ids to later connect to such service. Next, the connection to the chatbot is opened and returned (lines 8-9). Eventually, the connection pointer and the cleaning routine are used in the tearDown function, called at the end of each test generation process (line 49 from Algorithm 1), to restore the chatbot to its original state, by querying the service for any persistent item to clean (lines 13-15), such as events from a given calendar; finally, the connection is closed (lines 16-17). IV. E MPIRICAL EVALUATION To study the effectiveness of Chatbot Test Generator ( CTG ) we considered the following research questions: •RQ1-Correctness :How often does CTG generate seman- tically correct tests? This research question studies the reliability of the generated test cases, considering the rate of wrong tests (i.e., tests that may fail even for passing executions) that are generated. •RQ2-Coverage :How thoroughly can CTG exercise conversations? This research question studies how thor- oughly the generated tests exercise the intents and entities implemented in chatbots. •RQ3-Mutations :What is the defect detection capability of the tests generated by CTG ?This research question studies how well test cases can reveal faults injected in conversations implemented in task-based chatbots. The three research questions are investigated by comparing the test cases generated by CTG with the test cases generated by the baseline approach BOTIUM [25] and the state-of-the- art approach CHARM [27], with seven task-based chatbots selected from open-source third-party repositories. In the rest of this section, we describe the subject chatbots used for the evaluation (Section IV-A ), the competing techniques Algorithm 2 CTG alternatives expander process. Input: 1t: the test case to expand data from 2botMsg : the bot message used to retrieve the next user message 3bot : the bot under test Output: 4alt: the alternative responses (e.g., entities, utterances) 56function EXPAND (t, botMsg, bot ) 7 ifbotMsg =null then 8 userMsg ←getFirstUserMsg (t) 9 alt←getUtterances (userMsg, bot ) 10 else ifbotMsg.contains (“@”) then 11 alt←getEntityV alues (botMsg, bot ) 12 else13 userMsg ←getNextUserMsg (t, botMsg ) 14 alt←getUtterances (userMsg, bot ) 15 end if16 return alt17end function Page 5: Chatbot Data #me Hi, I need an appointment #bot Hello, for which @service ? #me For servicei … @service valuesintent IHi, I need an appointment Hello, I need your service …User Utterances Hello, for which @service? How can I assist you ? … Bot Responses … service2…Test Case for intent I service1servicenFig. 2. Overview of a B OTIUM test case and Dialogflow chatbot data. Algorithm 3 CTG cleaning process. Input: 1CR : cleaning routine. Output: 2conn : the connection session to the chatbot Dependencies: 3function CLEAN (CR) ▷Extern 4function ITEMS() ▷Extern 56function SETUP(CR ) 7serviceAccount ←buildService (CR) 8conn←connect (serviceAccount, CR ) 9 return conn10end function1112function TEARDOWN (CR ) 13 ifconn̸=null∧ |conn.items ()| ≥1then 14 conn.clean (CR) 15 end if16 conn←null17 return null18end function TABLE I SUBJECT CHATBOTS . Name Domain # Intents# Entities (# Values) E-Commerce Shopping 11 0 (0) Room Reservation Hotels 6 1 (3) Weather Forecast Weather 4 0 (0) Currency Converter Currencies 3 0 (0) Temperature Converter Temperatures 5 2 (12) Appointments Scheduler Cars 3 1 (10) News Info 3 1 (9) (Section IV-B ), the experimental procedure defined to answer the research questions (Section IV-C ), the empirical results obtained for the three research questions (Sections IV-D ,IV-E , and IV-F), and the threats to validity (Section IV-G). A. Subject Chatbots To investigate the research questions, we selected seven Dialogflow chatbots from the ASYM0B repository of open- source third-party chatbots [31], which has already been used in previous studies [27], [29], [30]. The selected chatbots are representative of different domains (e.g., hotels booking, weather forecasting), and designed to cover non-trivial conversa- tional aspects (e.g., nested intents, input contexts, and back-end components to interact with external services). Table I reports the name, the domain, and the conversational size of each selected chatbot (i.e., the number of intents, custom entities, and entity values). Since the Weather Forecast and News chatbots did not include a configuration file for the back-end component, wehad to define one ourselves to integrate with free API services alternative to the original, unavailable, ones. We specifically used the OpenWeather and News APIs. We carefully inspected and tested the modified chatbots to ensure they preserved their integrity, conversational structure, and coherence. B. Competing Techniques We selected the BOTIUM [25] baseline and the CHARM [27] state-of-the-art approaches to compare with CTG .BOTIUM [25] is an automated quality assurance framework for chatbot testing designed by Botium GmbH (now Cyara [26]), widely used in both industrial and academic contexts [11], [27]. It offers support for generating and executing test cases on various chatbot design platforms, including Dialogflow [6], Amazon Lex [7] and Rasa [9]. It represents the state-of-the-practice ap- proach for test case generation for chatbots. CHARM [27] is an open-source testing tool for Dialogflow chatbots implemented in Python. Similarly to CTG , it uses BOTIUM as a back-end for test generation and execution. CHARM extends the test case generation capabilities of BOTIUM with mutations over utterances of seed test cases, such as language back-translations and synonym substitutions. C. Experimental Procedure To address RQ1-Correctness , we studied the rate of errors present in the tests generated by CTG ,BOTIUM andCHARM . We separately deployed each subject chatbot on Dialogflow. Then, we used the testing techniques to automatically generate test cases for each chatbot, configuring each tool to use the multistepconvos BOTIUM feature, which causes the generation of test cases that tentatively cover full user-bot conversations, according to the conversations defined in the tested chatbots. As seed tests required by the CTG generation phase (Algorithm 1), we set one BOTIUM seed test per intent. To assess the correctness of the tests, we executed each test 15 times. We then manually inspected the failures to determine the presence ofsemantically wrong test cases, due to malformed utterances, wrong oracles, incoherent interactions, or flaky interactions1. The remaining tests were deemed as correct . 1A flaky test is a test that passes and fails periodically without any code changes [32]. Page 6: To address RQ2-Coverage , we executed the correct test cases resulting from RQ1 and collected the set of intents and entities exercised by each test. To obtain this information, we run the tests in verbose mode and implemented a script to parse the collected logs, extracting the information about the executed elements of the conversation. We derive two main indicators of the capability of the tests to exercise conversations: intent coverage andentity coverage [33]. Intent coverage is the percentage of intents in the chatbots that are exercised by the test cases, and measures the capability of the tests to cover at least once each user’s intent implemented in the chatbot. Entity coverage measures the percentage of actual entity values that are exercised in the tests in comparison to the set of entity values that the chatbot is designed to recognize. For instance, theAppointments Scheduler chatbot could be used to schedule appointments about driver license orvehicle registration (these are possible values for the entity type AppointmentType ); thus, it indicates how extensive the conversation has been exercised in terms of the kind of values used. To address RQ3-Mutations , we injected mutants into subject chatbots using Mutabot [30], a mutation testing tool for Di- alogflow conversational chatbots. Mutabot generates mutations at multiple levels, including structural changing affecting a conversation (e.g., removing an intent from a chatbot), intents (e.g., flagging an intent as fallback2or changing its priority3), and entities (e.g., removing or changing entity definitions). In our evaluation, we applied the following operators affecting the main conversational characteristics of the selected chatbots: 1) intent removal, 2) entity removal, 3) intent parameter removal, 4) intent priority change, 5) intent flagging as fallback, 6) entity renaming, and 7) entity value change. After generating the mutants, we manually inspected the resulting chatbots to detect and discard the equivalent4mutants, which we could determine by comparing the original and the mutated code elements, and detecting those that had no impact on the behavior of the chatbot (e.g., changing the priority of an intent when there are no other intents to compete with). We independently deployed the mutated chatbots on Dialogflow, and tested them with the test suites produced for RQ1, measuring the rate of mutants killed by each technique. To avoid any side effect and guarantee replicability and fairness in the results, we reset the state of the chatbots after each run. The resources needed to replicate our experiments, including tools, chatbots, and generated tests, are publicly available at https://gitlab.com/ctg-experiment1/ctg-experiment. D. Results for RQ1-Correctness Table II lists the number of test cases generated for each chatbot and technique. Overall, CHARM generated a smaller set of test cases (106 test cases) compared to BOTIUM and CTG , since it often failed at generating tests for intents whose 2A fallback intent is designed to respond to the user requests that the chatbot could not understand. 3The intent priority determines the order of activation when multiple intents compete for a user request. 4An equivalent mutant is a mutant that cannot be killed by any test case [34].TABLE II GENERATED TEST CASES FOR EACH CHATBOT AND TECHNIQUE . Chatbot BOTIUM CHARM CTG E-Commerce 196 20 196 Room Reservation 233 21 233 Weather Forecast 11 11 16 Currency Converter 39 17 39 Temperature Converter 15 15 19 Appointments Scheduler 21 12 24 News 10 10 19 Total 525 106 546 TABLE III RESULTS OF RQ1: S EMANTICALLY WRONG (SW) AND CORRECT (C) TEST CASES FOR EACH CHATBOT AND TECHNIQUE (%). ChatbotBOTIUM CHARM CTG SW C SW C SW C E-Commerce 0% 100% 0% 100% 0% 100% Room Reservation 80% 20% 24% 76% 4% 96% Weather Forecast 36% 64% 18% 82% 40% 60% Currency Converter 18% 82% 24% 76% 0% 100% Temperature Converter 27% 73% 53% 47% 0% 100% Appointments Scheduler 24% 76% 0% 100% 43% 57% News 0% 100% 0% 100% 0% 100% Total 39% 61% 18% 82% 5% 95% execution is constrained, such as nested intents that can be exercised only after other intents have been exercised, or intents requiring some input contexts defined by former interactions. The consequence is that CHARM misses to exercise several alternative conversations, in particular in the E-Commerce and Room Reservation chatbots. On the other hand, the performance of BOTIUM andCTG is comparable (525 test cases generated by BOTIUM and 546 test cases generated by CTG ), since both techniques are able to discover alternative execution paths. However, the EXPANDER component of CTG can also retrieve alternative entity values (see lines 10-11 of Algorithm 2) when the available user utterances are incomplete, and the chatbot must interact with the user to fill the slots with missing entities (e.g., the case of a user requesting for an appointment without specifying the kind of service requested forces that chatbot to produce additional interactions to ask what service is needed to the user). If all the cases are covered by the utterances available in the training data, CTG does not activate the expansion mechanism and the conversations tentatively generated by CTG andBOTIUM are the same. In fact, CTG andBOTIUM , even addressing the same conversational flow, generate different tests since they rely on different information: CTG generates tests dynamically, based on actual bot responses, while B OTIUM generates tests statically, guessing responses from source files. Although the number of test cases generated by BOTIUM and CTG is comparable, the test cases generated by CTG were more robust than those generated by the other techniques. Notice that the test generation timings were comparable and required few seconds across the various tools. Nevertheless, since CTG dynamically generates tests by interacting with the chatbot to record actual responses, the generation time depends on external services that could potentially introduce delays. However, no significant impact was observed for the subject chatbots. Table III reports the results of RQ1. The column SWindicates Page 7: Test Case#me hello #bot Hi! I’m your room booking bot. I can help you to find a perfect room for your meeting and manage your reservations.#me hello #bot Good day! I’m your room booking bot. I can help you to find a perfect room for your meeting and manage your reservations. Expected Actual Fig. 3. A flaky test case generated by all the techniques. the percentage of semantically wrong test cases that fail when executed, while Cindicates the percentage of correct test cases that can be reliably executed. All techniques generated no semantically wrong test cases for E-Commerce andNews chatbots, where dialogues could be reliably extracted from the implementation. Generating reliable test cases was more challenging for the other chatbots. CTG generated the highest number of correct test cases for five out of seven chatbots, while CHARM outperformed the other techniques in the other two chatbots. Overall, BOTIUM generated 61% correct test cases, reporting the lowest performance compared to the other techniques. CHARM achieved 82% correct test cases on average. CTG outperformed the competing techniques, achieving 95% correct test cases on average. Note that CHARM , in addition to generating a slightly smaller percentage of correct test cases than CTG, generates fewer tests in total. The reasons for semantically wrong test cases that fail even in case of correct responses are various. We identified four main cases, which we discuss below. (1) Oracle Weaknesses: Chatbots are often designed to provide multiple, semantically equivalent, responses to the same user requests. This can be the source of flakiness, since the expected response specified in a generated test, although correct, can differ with respect to the actual response provided by a chatbot when the test is executed, resulting in spurious failure of an assert statement. This limitation is common to all the compared techniques, since BOTIUM serves as the backbone for test execution, where the oracle is defined by default through text matching between the chatbot expected and actual responses. Figure 3 shows an example of a flaky test case generated by all the compared techniques for the Room Reservation chatbot. The test case simply submits a salutation message and encodes an expectation about the response of the chatbot (column Expected ). However, the Room Reservation chatbot can respond in multiple ways. For example, the actual response could start with Good day rather than Hi, causing a test failure. Implementing a flexible oracle strategy is an open challenge for all compared techniques. (2) Dirty Environment: Flakiness may also occur when the same scenario affecting the chatbot state is exercised multiple times without proper cleanup of the state. While CTG uses theCLEANER component to properly set up and tear down the environment, the test cases generated by both BOTIUM and CHARM may interfere with each other. (3) Dynamic Responses: Both BOTIUM andCHARM generate test cases statically by combining the user utterances and the bot responses as they are taken from the chatbot design files, thus they could miss any dynamic response that may depend on the actions executed by the chatbot. On the other hand, CTG can collect dynamic responses according to the status of the conversation, as shown in Figure 4 for the AppointmentsTest Cases#me I would like to set an appointment for 3pm on Tuesday #bot What services are you looking to get? DMV offers Driver license and vehicle registration services. #me Driver License #bot Let me see if we can fit you in on 2024-05-07 at 15:00! Yes It is fine!#me I would like to set an appointment for 3pm on Tuesday #bot What services are you looking to get? DMV offers Driver license and vehicle registration services. #me Driver License #bot I’m sorry, there are no slots available for 2024-05-07 at 15:00. Scenario #1 Scenario #2 Fig. 4. Test cases generated by CTG capturing dynamic responses. Test Case- - - - #me now into Euros #bot Invalid currency conversion parameters#me Convert 30 Dollars #bot What is the currency-to? #me now into Euros #bot At the moment 30USD are 27.642EUR BOTIUM CTG Fig. 5. A same test case comparison generated by B OTIUM and CTG. TABLE IV RESULTS OF RQ2: I NTENT AND ENTITY COVERAGE . ChatbotBOTIUM CHARM CTG Intents Entities Intents Entities Intents Entities E-Commerce 91% - 36% - 91% - Room Reservation 83% 100% 50% 0% 83% 100% Weather Forecast 50% - 50% - 50% - Currency Converter 66% - 66% - 66% - Temperature Converter 60% 33% 60% 50% 60% 50% Appointments Scheduler 66% 10% 66% 20% 66% 20% News 66% 11% 66% 11% 66% 56% Total 74% 26% 51% 26% 74% 47% Scheduler chatbot, where the final chatbot responses depend on the actual finalization of the user request (e.g., if a slot is available, the appointment will be confirmed). (4) Complex Conversational Flow: The generation strategies implemented by BOTIUM andCHARM occasionally neglect the preliminary steps of conversations or skip some necessary interactions. Differently, CTG can address nested intents and interactions, by iteratively building the conversations as long as user requests and bot responses can be exchanged (see lines 22-41 in Algorithm 1). Incorrect user-bot interactions sequences can lead the chatbots to fail understanding the requests, resulting in semantically wrong test cases. For example, Figure 5 shows two test cases generated for the Currency Converter chatbot. The test case generated by BOTIUM (left side), due to its limited ability to explore nested intents, starts the conversation with a sentence, now into Euros , that is not meaningful alone. In fact, the bot responds with an Invalid currency conversion parameters , failing the test that expects a meaningful response. In contrast, the test case generated by CTG (right side) implements the entire conversation, including the initial request for a given amount to be converted into a new currency. The test can be repeatedly executed without problems and can be reliably used for regression testing. To summarize, while oracle weaknesses affect all compared techniques, the other limitations do not affect CTG. E. Results for RQ2-Coverage Table IV reports intent and entity coverage achieved for each chatbot and testing technique. Concerning intent coverage, all the techniques performed the same with five chatbots: Currency Converter (66%), Page 8: Appointments Scheduler (66%), News (66%), Temperature Converter (60%), and Weather Forecast (50%). Additionally, BOTIUM andCTG both covered all intents but one in Room Reservation (83%) and in E-Commerce (91%), while CHARM performed significantly worse in Room Reservation (50%) and E-Commerce (36%), due to the lower number of generated test cases (see again Table II). Overall, CTG andBOTIUM scored the same (74% of intents covered on average), followed by CHARM with 51%. Concerning entity coverage, BOTIUM andCTG cover all entities in every chatbot for at least one value. Instead, CHARM does not cover the entity in Room Reservation , as it failed in generating tests about intents that use such entity. On the other hand, BOTIUM misses more entity values than CHARM and CTG inTemperature Converter (33% vs 50%) and in Appointments Scheduler (10% vs 20%), whereas it scores the same as CHARM inNews (11%), making them to tie overall (26% both). CTG covers 47% of entity values, scoring the same or better than the other techniques in all cases. The main reasons of uncovered intents and entities lie underneath the core functionality of test generation, that is shared among all the techniques. Since the testing tools generate test cases from the training data that reflect the positive usages of the chatbots, they often fail at exercising the fallback intents that are designed to manage the negative scenarios which may originate from realistic but wrong interactions (e.g., ask to rephrase/complete a message received with a badly formatted data) [30]. Further, some intents may require specific pre- requisite to activate them, such as the contexts data that must be provided in input from past interactions. Among the testing tools, CHARM is the one that suffered the most, as observed especially for the E-Commerce and the Room Reservation chatbots, affecting both test generation and coverage. Nevertheless, the number of test cases does not necessarily reflect the capability of a technique to cover intents and entities. For example, we observed cases where radically different number of test cases resulted in the same intent and entity coverage, such as in Currency Converter chatbot, where all techniques scored 66% of intents covered, although BOTIUM and CTG generated 39 test cases while CHARM generated 17 only. This suggests that the generated tests are sometimes equivalent variations of other existing tests [33], for instance, having a user utterance replaced with another one producing the same effect (e.g., Convert 10 Pounds to Dollars versus How much is 10 Pounds in Dollars? ). In a nutshell, all the techniques performed better in covering intents rather than entities, with CTG providing the best combined coverage. Indeed, the achieved intent and entity coverage can still be significantly improved. F . Results for RQ3-Mutants To assess the fault revealing capability of the compared approaches, we measured the mutation score. To compute this score, we manually inspected the generated mutants and discarded the equivalent ones: we discarded six equivalents from Room Reservation , one from Weather Forecast , and oneTABLE V RESULTS OF RQ3: M UTANTS KILLED /TOTAL . Chatbot# Killed / # Generated (% Killed) BOTIUM CHARM CTG E-Commerce 10/22 (46%) 11/22 (50%) 10/22 (46%) Room Reservation 9/16 (56%) 7/16 (44%) 11/16 (69%) Weather Forecast 5/13 (38%) 7/13 (54%) 6/13 (46%) Currency Converter 3/6 (50%) 3/6 (50%) 3/6 (50%) Temperature Converter 6/16 (38%) 6/16 (38%) 8/16 (50%) Appointments Scheduler 5/12 (42%) 4/12 (33%) 7/12 (58%) News 8/12 (67%) 6/12 (50%) 10/12 (83%) Total 46/97 (47%) 44/97 (45%) 55/97 (57%) from Currency Converter . Table V reports the mutation score obtained by each technique. In five chatbots out of seven (i.e., Room Reservation ,Temperature Converter ,Appointments Scheduler ,Currency Converter andNews )CTG performs better or the same than the other techniques. CHARM performs the same or better than the other approaches in three cases, and BOTIUM performs the same or better than other approaches in one case. Overall, CTG outperformed the competing approaches, killing 57% of the mutants, with BOTIUM and CHARM killing 47% and 45%, respectively. In general, mutants that affected intents and entities (e.g., remove an entity, or remove a required parameter referring to an entity from a user utterance) were easier to kill by CTG , because of its capability of generating test cases that can record the actual chatbot responses and use them as oracles, rather than building static conversations unable to track such details, as well as being able to exercise entities more systematically. For instance, News chatbot presents a conversational scenario in which the user has to specify the topic of a news; if such parameter is missing, once a test exercises such scenario, the mutant will likely activate the fallback intent as being unable to understand the request prompted by the test, thus getting detected. On the other hand, some mutations, as reported in previous studies [30], are complex to detect by any technique, such as those affecting negative scenarios (e.g., turning an ordinary intent into a fallback intent), as they are generally neglected by the test generation process. This result confirms that more research is needed in test case generation for task- based chatbots. G. Threats to Validity An internal threat to the validity of this study depends on the manual intervention to deploy the mutated chatbots on Dialogflow, to detect the semantically wrong test cases, and the inspection of the mutants (e.g., to detect equivalent mutants). We mitigated this issue by having two authors carefully inspect the produced artifacts and discuss the result of the inspection until they reached agreement. An external threat to validity concerns the generalizability of the results. Although our findings are not final, they provide an interesting picture of the state of the art in testing task-based chatbots. The assessment considers chatbots from different domains, using third-party software also involved in other experiments [27], [29], [30], and compares CTG toBOTIUM andCHARM , which are the state-of-the-art testing tools [11], [30]. We selected Google Dialogflow as the target framework, which is one of the most popular platforms for chatbot design [28]. Although we cannot Page 9: make claims about the generalizability of the results to chatbots implemented with other platforms, such as Rasa and Amazon Lex, their similarity suggests that results are unlikely to change drastically among task-based chatbot platforms. V. R ELATED WORK Chatbots have existed for a long time (e.g., Weizenbaum’s creation named Eliza [35]), but only recently they have been integrated with AI and natural language processing capabilities [2], [36]. Traditional testing methods have proven challenging to apply to this new technology. So far, a plethora of methods have focused on performance, usability, design metrics, and guidelines [10], [37], [38]. On the other hand, few approaches have addressed the functional testing of chatbots [11]. For what concern industrial and open-source testing tools, Amazon released the Alexa Simulator [39] to test Alexa skills without the need of a device, supporting both text and voice-based interactions. An open-source framework for offline black-box testing of Alexa skills, named Alexa Skill Test Framework [18], has also been provided. The capabilities of the framework include mocking external services and support for audio streams. Both solutions, although highly configurable, are tailored to Alexa. Rasa bot builder [9] provides testing features focused on conversational flows and Natural Language Understanding (NLU) models, but test stories must be manually written and maintained. Chatbottest [17] offers support for improving the quality of chatbot design based on heuristic evaluations, but no actual test generation is supported, and the tool relies on a Chrome extension to evaluate chatbots operating on only a few platforms (e.g., Telegram). Bespoken offers a commercial solution [19] for conversational AI chatbot testing, using a rich dashboard that integrates utility features, such as voice support and testing reporting. Similarly to Rasa, conversational scenarios in Bespoken must be manually configured. Playwright [40] supports end-to-end testing of chatbots that rely on a Document Object Model (DOM) interface. It employs a recording mechanism to save interactions over the DOM for replication, thus tests have to be recorded manually. Unlike these frameworks, CTG provides automated test generation capabilities. BOTIUM [25] is an automated quality assurance framework providing both automatic generation and execution of test cases for chatbots, supporting multiple natural language processing engines and chatbot design platforms, including Amazon Lex [7], Rasa [9] and Dialogflow [6]. The test cases generated inBOTIUM are textual conversations between the user and the chatbot. Based on our findings, BOTIUM shows limitations in covering conversations when custom entities and external services are involved. Further research on mutation testing has shown how test suites generated by BOTIUM struggle to detect numerous mutants affecting conversational properties [30], [41]. To alleviate the cost of manual chatbot testing, in 2017 researchers from IBM Research Lab proposed Bottester [20], a tool that simulates user interactions with a chatbot. The tool takes in input a specification of the conversational flows andadditional parameters to simulate actual interactions, such as a sleep time to separate each user input. CHARM [27] tool has been proposed by Bravo-Santos et. al as an extension to BOTIUM for Dialogflow chatbots. CHARM enriches BOTIUM conversations using a set of mutations to test chatbot robustness and accuracy. We empirically compared CTG with BOTIUM andCHARM , showing how the CTG ’s capabilities can improve test effectiveness. Similarly to CHARM , further work addresses input mutation on quality assurance of chatbots. Guichard et al. [22] investigate the process of automatically paraphrasing user sentences, and they evaluate robustness of text-based conversational agents on the BoTest testing framework [21]. Bozic et al. propose an automated approach for functional chatbot testing involving AI planning as foundation for test generation [42]: a plan represents an abstract test case, composed of user’s requests as actions to perform and an intent as a goal to achieve, allowing a re-planning phase once stuck. Bozic and Wotawa [23] further investigate the oracle problem in the chatbot domain. As chatbot output may be difficult to predict, metamorphic testing [43] can be integrated into the testing process, defining metamorphic relations, such as synonym transformations and word removals. In a subsequent work [24], they sophisticated the approach introducing an ontology-based infrastructure. Since employing the ontology requires some effort and knowledge, the approach can benefit from automated black-box test generator tools, such as B OTIUM , CHARM , and CTG. VI. C ONCLUSION The ubiquity of chatbots in human activities, as well as the involvement of advanced technologies for their design, demands suitable quality assurance techniques and tools. So far, only a few approaches have addressed functional testing of task-based chatbots [11], [24]. State-of-the-art approaches are limited to the static generation of test cases that cannot always capture the complexity and diversity of questions and responses that are part of conversations, generating test cases that may be fragile or require manual fixtures, providing limited coverage of intents and entities present in a chatbot [25], [27]. In this paper, we have presented CTG , a dynamic test case generation technique for Dialogflow task-based chatbots. CTG leverages BOTIUM test cases to produce test variants capable of exploring scenarios that are not covered by existing tests. The tool records all bot responses, even those depending on external services, and employs setup and teardown operations to clean up the environment, favoring regression testing in a neutral environment. Our empirical results show that CTG can generate a higher rate of correct test cases that extensively cover conversations compared to BOTIUM and CHARM . In future work, our aim is to further refine and expand the capabilities of CTG . This will involve conducting additional experiments, such as investigating the adaptability of the tool to other chatbot design platforms (e.g., Rasa), as well as designing more sophisticated test strategies to implement flexible oracles and to cover negative scenarios in the context of LLM-based chatbot testing [36]. Page 10: REFERENCES [1]E. Adamopoulou and L. Moussiades, “An overview of chatbot technology,” inIFIP International Conference on Artificial Intelligence Applications and Innovations (AIAI) . Springer, 2020, pp. 373–383. [2]——, “Chatbots: History, technology, and applications,” Machine Learn- ing with Applications , vol. 2, p. 100006, 2020. [3]J. Grudin and R. Jacques, “Chatbots, humbots, and the quest for artificial general intelligence,” in Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems , 2019, pp. 1–11. [4]A. Følstad and P. B. Brandtzæg, “Chatbots and the new world of HCI,” Interactions , vol. 24, no. 4, pp. 38–42, 2017. [5]B. A. Shawar and E. Atwell, “Chatbots: Are they really useful?” Journal for Language Technology and Computational Linguistics , vol. 22, no. 1, pp. 29–49, 2007. [6] Dialogflow. [Online]. Available: https://dialogflow.cloud.google.com [7] Amazon Lex. [Online]. Available: https://aws.amazon.com/lex [8]IBM Watson Assistant. [Online]. Available: https://www.ibm.com/ products/watsonx-assistant [9] Rasa. [Online]. Available: https://rasa.com [10] J. Deriu, A. Rodrigo, A. Otegi, G. Echegoyen, S. Rosset, E. Agirre, and M. Cieliebak, “Survey on evaluation methods for dialogue systems,” Artificial Intelligence Review , vol. 54, pp. 755–810, 2021. [11] X. Li, C. Tao, J. Gao, and H. Guo, “A review of quality assurance research of dialogue systems,” in Proceedings of the 2022 IEEE International Conference On Artificial Intelligence Testing (AITest) . IEEE, 2022, pp. 87–94. [12] F. Iwama and T. Fukuda, “Automated testing of basic recognition capability for speech recognition systems,” in Proceedings of the 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST) . IEEE, 2019, pp. 13–24. [13] M. H. Asyrofi, F. Thung, D. Lo, and L. Jiang, “CrossASR: Efficient differential testing of automatic speech recognition via text-to-speech,” inProceedings of the 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME) . IEEE, 2020, pp. 640–650. [14] L. Sch ¨onherr, K. Kohls, S. Zeiler, T. Holz, and D. Kolossa, “Adversarial attacks against automatic speech recognition systems via psychoacoustic hiding,” in Proceedings of the 26th Annual Network and Distributed System Security Symposium (NDSS) , 2019. [15] Y . Zhang, L. Xu, A. Mendoza, G. Yang, P. Chinprutthiwong, and G. Gu, “Life after speech recognition: Fuzzing semantic misinterpretation for voice assistant applications,” in Proceedings of the 26th Annual Network and Distributed System Security Symposium (NDSS) , 2019. [16] Y . Qin, N. Carlini, G. Cottrell, I. Goodfellow, and C. Raffel, “Imper- ceptible, robust, and targeted adversarial examples for automatic speech recognition,” in Proceedings of the 36th International Conference on Machine Learning (ICML) . PMLR, 2019, pp. 5231–5240. [17] Chatbottest. [Online]. Available: https://chatbottest.com [18] Alexa Test Skill Framework. [Online]. Available: https://github.com/ BrianMacIntosh/alexa-skill-test-framework [19] Bespoken. [Online]. Available: https://bespoken.io [20] M. Vasconcelos, H. Candello, C. Pinhanez, and T. dos Santos, “Bottester: Testing conversational systems with simulated users,” in Proceedings of the 16th Brazilian Symposium on Human Factors in Computing Systems , 2017, pp. 1–4. [21] E. Ruane, T. Faure, R. Smith, D. Bean, J. Carson-Berndsen, and A. Ventresque, “Botest: A framework to test the quality of conversational agents using divergent input examples,” in Proceedings of the 23rd International Conference on Intelligent User Interfaces Companion (IUI- C), 2018, pp. 1–2. [22] J. Guichard, E. Ruane, R. Smith, D. Bean, and A. Ventresque, “Assessing the robustness of conversational agents using paraphrases,” in Proceedings of the 2019 IEEE International Conference On Artificial Intelligence Testing (AITest) . IEEE, 2019, pp. 55–62.[23] J. Bozic and F. Wotawa, “Testing chatbots using metamorphic relations,” inProceedings of the 31st IFIP International Conference on Testing Software and Systems (ICTSS) . Springer, 2019, pp. 41–55. [24] J. Bo ˇzi´c, “Ontology-based metamorphic testing for chatbots,” Software Quality Journal (SQJ) , vol. 30, no. 1, pp. 227–251, 2022. [25] Botium. [Online]. Available: https://botium-docs.readthedocs.io/en/latest [26] Cyara. [Online]. Available: https://cyara.com/products/botium/ [27] S. Bravo-Santos, E. Guerra, and J. de Lara, “Testing chatbots with Charm,” inProceedings of the 13th International Conference on the Quality of Information and Communications Technology (QUATIC) . Springer, 2020, pp. 426–438. [28] A. Abdellatif, K. Badran, D. E. Costa, and E. Shihab, “A comparison of natural language understanding platforms for chatbots in software engineering,” IEEE Transactions on Software Engineering (TSE) , vol. 48, no. 8, pp. 3087–3102, 2021. [29] P. C. Ca ˜nizares, S. P ´erez-Soler, E. Guerra, and J. de Lara, “Automating the measurement of heterogeneous chatbot designs,” in Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing (SAC) , 2022, pp. 1491–1498. [30] M. Ferdinando Urrico, D. Clerissi, and L. Mariani, “Mutabot: A mutation testing approach for chatbots,” in Proceedings of the 46th IEEE/ACM International Conference on Software Engineering: Companion Proceed- ings (ICSE-C) , 2024. [31] ASYM0B chatbots repository. [Online]. Available: https://github.com/ ASYM0B/Dataset/tree/main/Dialogflow [32] W. Zheng, G. Liu, M. Zhang, X. Chen, and W. Zhao, “Research progress of flaky tests,” in Proceedings of the 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) . IEEE, 2021, pp. 639–646. [33] P. C. Ca ˜nizares, D. ´Avila, S. P ´erez-Soler, E. Guerra, and J. de Lara, “Coverage-based strategies for the automated synthesis of test scenarios for conversational agents,” in Proceedings of the 5th ACM/IEEE International Conference on Automation of Software Test (AST) , 2024. [34] Y . Jia and M. Harman, “An analysis and survey of the development of mutation testing,” IEEE Transactions on Software Engineering (TSE) , vol. 37, no. 5, pp. 649–678, 2010. [35] J. Weizenbaum, “Eliza — A computer program for the study of natural language communication between man and machine,” Communications of the ACM , vol. 9, no. 1, pp. 36–45, 1966. [36] J. S´anchez Cuadrado, S. P ´erez-Soler, E. Guerra, and J. De Lara, “Automating the development of task-oriented LLM-based chatbots,” inProceedings of the 6th ACM Conference on Conversational User Interfaces (CUI) , 2024, pp. 1–10. [37] L. Laranjo, A. G. Dunn, H. L. Tong, A. B. Kocaballi, J. Chen, R. Bashir, D. Surian, B. Gallego, F. Magrabi, A. Y . Lau et al. , “Conversational agents in healthcare: A systematic review,” Journal of the American Medical Informatics Association , vol. 25, no. 9, pp. 1248–1258, 2018. [38] P. C. Ca ˜nizares, J. M. L ´opez-Morales, S. P ´erez-Soler, E. Guerra, and J. de Lara, “Measuring and clustering heterogeneous chatbot designs,” ACM Transactions on Software Engineering and Methodology (TOSEM) , vol. 33, no. 4, pp. 1–43, 2024. [39] Alexa Simulator. [Online]. Available: https://developer.amazon.com/ en-US/docs/alexa/devconsole/alexa-simulator.html [40] Playwright. [Online]. Available: https://playwright.dev [41] P. G´omez-Abajo, S. P ´erez-Soler, P. C. Ca ˜nizares, E. Guerra, and J. de Lara, “Mutation testing for task-oriented chatbots,” in Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering (EASE) , 2024, pp. 232–241. [42] J. Bozic, O. A. Tazl, and F. Wotawa, “Chatbot testing using AI planning,” inProceedings of the 2019 IEEE International Conference On Artificial Intelligence Testing (AITest) . IEEE, 2019, pp. 37–44. [43] T. Y . Chen, F.-C. Kuo, H. Liu, P.-L. Poon, D. Towey, T. Tse, and Z. Q. Zhou, “Metamorphic testing: A review of challenges and opportunities,” ACM Computing Surveys (CSUR) , vol. 51, no. 1, pp. 1–27, 2018.

---