Difference between buildconvos and buildmultistepconvos options

I recently tried both options, botium-cli dialogflowimport --buildconvos and botium-cli dialogflowimport --buildmultistepconvos. The documentation says it reverse engineers the conversations but I don’t understand what that means. I am still unclear what the differences are. Could I please get more clarity?
Also, is using the import feature sufficient in testing the bot or would I still need to explicitly write conversation flows as test cases?

In Botium there “convos” and “utterances” (see Botium Docs):

  • Convos describe the expected conversational flow (Dialog)
  • Utterances describe a list of possible user inputs or bot responses for a conversation step (ofteh called user examples)

When using the Botium Dialogflow importer, there are basically three ways to do it:

Without specifiying any of the other options Botium will import the user examples from the Dialogflow agent as utterance lists only. They can be used with the expandUtterancesToConvos setting for testing simple pairs of

  1. Send user example to Dialogflow agent
  2. Validate the recognized intent from Dialogflow

When using the buildconvos-switch Botium will additional write convo files for each Dialogflow intent, which will do the same kind of intent assertion than above - but as there are now convo files already present, it is possible to use them as base for additional test cases.

When using the buildmultistepconvos-switch Botium will try to recognize the dialog structure from the Dialogflow agent by traversing the exported JSON-structure from Dialogflow and giving some best guesses how a typical dialog will be handled by this agent. This will work in some cases, in other cases it won’t work - it depends how the agent actually is built in Dialogflow. Botium will output convo files which have multiple steps, not only the request/response pairs as above.

hope this helps.

1 Like