El desafío más grande y odioso en el desarrollo de software es escribir casos de prueba y mantenerlos. Esto no es diferente cuando se trata del desarrollo de chatbot. En Botium no escribimos las pruebas de regresión, las generamos. Este artículo te muestra cómo hacemos esto con la menor cantidad de esfuerzo invertido.
Para alcanzar la mejor cobertura tienes que definir todas las conversaciones posibles de tu modelo de conversación. Implementarlo y mantenerlo manualmente requiere mucho tiempo y, a veces, una tarea aburrida, sin mencionar los errores humanos que pueden ocurrir fácilmente incluso en el caso de un chatbot bastante simple. Hemos implementado una herramienta Crawler que te ayudará a hacerlo de una manera muy sencilla.
Tabla de contenidos
Concepto Crawler de Botium
El rastreador detecta los botones y las respuestas rápidas y entabla conversaciones a lo largo de ellos. El árbol de conversación es atravesado por un pequeño algoritmo de profundidad personalizado. Cada vez que el rastreador llega a una pregunta abierta (lo que significa que no se encuentra ningún botón o una respuesta rápida), la conversación finaliza, la ruta se marca como visitada y se inicia una nueva conversación desde el principio (desde el ‘mensaje de inicio de conversación’ ) para mantener seguro el contexto de la conversación. (El proceso del rastreador inicia las conversaciones con los mensajes que se definen en el parámetro ‘mensajes de inicio de conversación’). Cuando se visitan todas las rutas en el árbol de conversación, la sesión finaliza y obtiene todas las conversaciones posibles como resultado, por lo que podrá tener una prueba de regresión completa. Veamos cómo funciona en la práctica en Botium Box.
Registrar un proyecto de rastreador
Para una mejor comprensión, utilizo un ejemplo de chatbot bancario muy simple, que se mezcla con botones y preguntas abiertas.
Con el inicio rápido, puedes definir un proyecto de rastreador en tres sencillos pasos. En el primer paso, debes elegir o registrar un nuevo chatbot. Luego, en el segundo paso, puedes configurar algunos ajustes básicos del rastreador de conversaciones. En el tercer paso, puedes guardar el proyecto del rastreador o puedes iniciar la primera sesión del rastreador inmediatamente.
Al finalizar el registro, te redirigirás al panel de control de tu proyecto Crawler. Aquí puedes ver las sesiones anteriores del rastreador y la configuración de ejecución actual.
Resultado de la sesión del rastreador
Durante una sesión del rastreador, se iniciarán tantos procesos paralelos como se definan en la configuración de ejecución tantos “Mensajes de inicio de conversación”. Estos procesos detectarán todas las conversaciones posibles a lo largo de botones y respuestas rápidas como ya se mencionó en el concepto Crawler.
El chatbot bancario de ejemplo tiene conversaciones iniciadas por bot. El rastreador también puede detectar los botones y las respuestas rápidas en los mensajes de bienvenida, por lo que en este caso podemos dejar vacío el campo “Mensajes de inicio de conversación”.
Y aquí está el mayor valor del Crawler: las conversaciones generadas. Este chatbot es bastante pequeño y simple, por lo que en este caso solo tenemos cinco conversaciones generadas como resultado. En el caso de un chatbot más complejo, se pueden encontrar cientos de casos de prueba, lo cual es un trabajo enorme para hacer manualmente.
La otra característica, que es tan útil como las conversaciones generadas, es el diagrama de flujo, que muestra todo el árbol de conversación detectado en forma visual para obtener una imagen clara y amplia de tu chatbot.
Preguntas de final abierto
Como puedes ver en la sección anterior, en la parte inferior del diagrama de flujo, hay “preguntas abiertas” como “¿Qué fecha sería la mejor para usted? Necesitamos 24 horas… “. En este caso, la conversación se detiene desde el punto de vista de Crawler, pero con la interacción humana podría continuar. También tenemos una solución para este problema.
Para las “preguntas abiertas”, puedes definir varias respuestas de usuario. Estas respuestas se reconocerán en la próxima sesión del rastreador como si fueran botones. Después de agregar alguna respuesta del usuario al final de las conversaciones no terminadas, el diagrama de flujo se hizo mucho más grande y las conversaciones generadas se duplicaron.
Cómo utilizar las conversaciones generadas
Como puedes ver, con unos minutos de trabajo sencillo generamos diez conversaciones para este bot. En el caso de un bot basado completamente en botones, tiene aún menos trabajo, solo presiona el botón de inicio y espera unos minutos.
Pero, ¿qué podemos hacer con estas conversaciones? En otras palabras, estos son scripts de prueba. Al hacer clic en “Copiar scripts de prueba en un conjunto de pruebas”, puedes copiarlos en un conjunto de pruebas nuevo o existente.
Un conjunto de prueba es una colección de casos de prueba que se pueden agregar a un proyecto de prueba. En este punto, la prueba de regresión con una cobertura bastante buena está lista para este bot.
Configuraciones Crawler
- Mensajes de inicio de conversación. Estos son los llamados mensajes de inicio de conversación, con los que el rastreador inicia las conversaciones. Los mensajes de inicio que tengas, serán los que se inicien en paralelo.
- Pasos máximos de conversación. Esta es la profundidad de la conversación en el flujo de la conversación. (Un paso es un par de mensajes de usuario-bot). Cuando se alcanza la profundidad configurada, la conversación se detiene y se marca como finalizada con éxito.
- Número de mensajes de bienvenida. Hay chatbots que inician la conversación sin la interacción del usuario. En este caso, debes especificar cuántos mensajes de bienvenida enviará el bot.
Si el bot tiene un mensaje de bienvenida y no especificas ningún mensaje de inicio, el rastreador intentará encontrar respuestas rápidas y botones en los mensajes de bienvenida e iniciar las conversaciones a lo largo de ellos. - Espera el aviso. Muchos chatbots responden con varios mensajes de bot. En este caso, puedes definir un tiempo de espera hasta que el rastreador tenga que esperar los mensajes del bot después de cada mensaje de usuario simulado.
- Criterio de salida. En el caso de un chatbot complejo, ocurre a menudo que queremos probar solo una parte determinada del árbol de conversación. En este caso, puedes definir criterios de salida para excluir alguna parte del árbol.
Si el texto de cualquier botón / respuesta rápida coincide con alguno de los criterios de salida, esa conversación se detiene allí y se marca como conversación finalizada con éxito. - Combinar expresiones. Todos los mensajes de texto se guardan como expresiones. El rastreador puede reconocer los enunciados no únicos y fusionarlos en un solo enunciado.
Conclusión
Botium Crawler es una herramienta muy poderosa para crear pruebas de regresión. Es capaz de generar todos los casos de prueba en un camino feliz sin interacción del usuario en el caso de un chatbot completamente basado en botones y con una interacción mínima del usuario en el caso de un chatbot parcialmente basado en botones. Con el diagrama de flujo, puedes ver el árbol de conversaciones de su chatbot y detectar círculos.
Es una herramienta completamente nueva, por lo que todavía hay mucho margen de mejora y ya tenemos muchas ideas. Por ejemplo, nos gustaría introducir diferentes algoritmos de recorrido de árbol para lograr un rendimiento más efectivo, de modo que puedas elegir el algoritmo que mejor se adapte a tu chatbot. Además, podrás agregar RegExp como criterio de salida, estamos planeando hacer que la función de preguntas abiertas sea más útil, y así sucesivamente.
Sin las herramientas adecuadas, estarás perdido. La función Crawler es parte de nuestro producto estrella Botium Box que te ayuda en tu camino hacia la prueba exitosa de chatbot.