Automatizando o teste de bots no Haptik

Haptik em Bot Tutorials Seguir Mar 15 · 7 min ler

Na Haptik , projetamos, desenvolvemos e testamos chatbots todos os dias. Esses bots estão espalhados por vários domínios, sendo alguns exemplos como bots de feedback, suporte a bots, bots gen de leads, etc. Alguns desses bots são baseados em texto, alguns baseados em voz e alguns suportam uma mistura de ambos.

Nosso objetivo não é apenas fazer bots viverem em produção, mas também torná-los robustos e à prova de falhas. O ônus está na equipe de QA (Quality Analyst) para fornecer bots ativos com erros mínimos ou nulos na produção. Portanto, para os QA's, é uma enorme responsabilidade enviar esses chatbots com erros mínimos e manter a qualidade.

Agora, vocês devem estar se perguntando o que exatamente o teste do chatbot significa. Para dar um pano de fundo primeiro, um chatbot é uma máquina construída com o propósito de ajudar seus usuários por texto ou voz. Como o meio de comunicação é muito aberto, os usuários podem dizer qualquer coisa que quiserem. Neste ponto, o QA precisa descobrir se o bot deveria ter sido capaz de responder à consulta dos usuários e se foi a resposta correta. Algumas coisas que entram nisso são:

– Teste de fluxos de usuário final para as consultas do usuário sem falhar. – Validação da lógica de negócios executada pelo bot – Respostas gerais (saudação, feedbacks positivos, feedbacks negativos etc.) – Funcionalidade de teste de tarefas individuais (as tarefas não são nada além de casos de uso suportados pelo chatbot)

– Verificação da interface do usuário de elementos de chat, imagens, gramática, personalidade, etc.

Fluxo de Bot

Os bots podem ser visualizados ou entendidos como um fluxograma simples. O usuário envia uma mensagem, a mensagem é processada com base em várias condições e a melhor resposta possível é enviada de volta ao usuário.

Para entender como um simples fluxo de bot se parece, vamos considerar o exemplo acima, onde o usuário diz “ Set wake up reminder ”. O seguinte acontece ao receber a mensagem:

1. A sentença passa pelo nosso pipeline de Aprendizado de Máquina (mecanismo de NLU, consistindo de nossos microsserviços ML de back-end, que são responsáveis por detectar a intenção, entidades, corrigir ortografia, gramática e entender o que o usuário quer)
2. Uma vez que sabemos disso, o Pipeline percorre todo o caminho até “
acorde lembrete "através de" lembrete definido ".
3. Ao selecionar a resposta respectiva e mais relevante, o robô responde: "Ajude-me com a data e a hora" (a resposta é atendida pelo nosso Mecanismo de Resposta ML).

Desafios ao testar um bot?

1. amplo escopo de testes

  1. Ao contrário de outros tipos de testes, o teste do chatbot depende de múltiplos fatores-domínio para os quais o chatbot é construído, usuários alvo, faixa etária alvo, tipo de conversa que um chatbot deve ter com o usuário (Casual ou profissional). Mantendo todos esses fatores em mente, há um grande número de permutações e combinações para pensar. Construir casos de teste para cada um desses cenários é novamente uma tarefa complicada e tediosa.
  2. Ao testar os chatbots, o testador também deve se concentrar nas respostas dadas pelo Chatbot para várias consultas gerais. (Usuário digitando qualquer coisa em um formulário livre)
  3. A resposta que foi dada pelo bot quando ele não entende as consultas do usuário.

2. Consumo de tempo e aumento de mão de obra

Vamos entender isso com a ajuda do exemplo anterior. Aqui nós temos. Um construtor bot fez as seguintes alterações –
separou a data e a hora como mostrado abaixo:

Ao testar um bot para fazer alterações no fluxo, o principal objetivo a ter em mente é não quebrar os fluxos existentes. Um pouco das alterações em um bot, como no caso acima, o testador precisa testar todos os três tipos de lembrete (lembrete de exercício, lembrete de despertar e lembrete de água de bebida). Isso leva ao teste de todo o fluxo novamente. Isso consome muito tempo e mão de obra.

3. falhas da API

O teste do Chatbot também envolve testes de API de integração de terceiros. Isso também inclui respostas do chatbot para integração de API, ou seja, cenários de sucesso, falhas e tempo limite.

4. Geração de relatórios

O rastreamento de desempenho de chatbots é um dos maiores desafios atualmente. Não há nenhuma ferramenta no mercado que possa rastrear as alterações feitas no bot e fornecer um resumo e um relatório detalhado sobre os casos de teste antes e depois. Não apenas isso, mas também ter esses dados disponíveis a qualquer momento.

Introdução ao Bot Testing Tool

Para superar esses desafios do dia a dia e implantar um bot de alta qualidade no menor tempo possível, sabíamos que somente a automação pode vir em nosso socorro. E esse foi o nascimento da nossa ferramenta de testes de bots. Essa ferramenta pode ser executada sob demanda e também é executada automaticamente por meio de um script cron em nosso ambiente UAT todos os dias, para garantir que os bots estejam sendo executados conforme o requisito. Então, vamos dar uma olhada em como exatamente a ferramenta de teste do Bot funciona e como isso tornou nossa vida mais fácil.

Existem 4 etapas importantes que são seguidas para que a ferramenta de testes do bot seja executada. A seguir, uma visão geral do que exatamente a ferramenta faz:

  1. Realize o fluxo do chatbot manualmente uma vez no seu aplicativo ou site bot.
    Isso inclui enviar mensagens para o bot, verificar a resposta do bot e se está respondendo a todos os bate-papos e consultas de forma livre. Lembre-se de que todo bot é construído para automatizar processos críticos de negócios específicos.
  2. A folha de entrada do usuário é criada com todas as consultas / mensagens do usuário que você enviou enquanto testava manualmente o bot. A folha de entrada é apenas um CSV simples com várias colunas relacionadas ao fluxo do chatbot.
  3. A folha de entrada acima é então passada como uma entrada para a próxima etapa para obter as mensagens do sistema em relação às consultas do usuário, o que, por sua vez, gera a planilha Mensagens do sistema.
  4. Uma vez que a planilha do Sistema acima é criada, ela é simplesmente executada todos os dias para verificar se as respostas corretas são enviadas ao usuário e se a resposta gerada é a mais relevante.

Se o acima for verdadeiro, então os casos de teste são marcados como aprovados, caso contrário, a ferramenta de controle de qualidade do bot gera uma exceção e envia um email com os cenários de falha.

“A beleza desta ferramenta é que ela é independente da cópia das mensagens.”

Alguns complementos:

Esta ferramenta pode ser executada através do Jenkins , no clique de um único botão. Temos apenas que pegar o URL da planilha de mensagens do sistema para um determinado bot da pasta S3, adicioná-lo ao campo chamado URL do arquivo e fornecer user_id (Exclusivo para um usuário) da conta na qual queremos executar a ferramenta de teste do bot.

Depois disso, basta clicar no botão de compilação e os casos de teste começarão a ser executados. As mensagens que são enviadas pelo sistema podem ser vistas nos dispositivos do usuário, cujo user_id é mencionado. Através disso, o usuário pode vir a saber se o chatbot está funcionando como pretendido ou não. A ferramenta Bot QA na verdade simula um usuário real conversando na plataforma.

Esta ferramenta é executada automaticamente todos os dias com a ajuda de um script cron. Para cada chatbot, a planilha de mensagens do sistema é executada e, se houver alguma falha, um email é acionado para as partes interessadas do chatbot em questão. O email recebido é como mostrado abaixo:

Todos esses relatórios estão disponíveis no S3 e podem ser acessados sempre que necessário para verificar o estado anterior. Isso ajuda na depuração de problemas com muita facilidade.

“A ferramenta de teste de bot é executada todas as noites a partir da 1h da manhã e fornece o resultado para 25 bots em aproximadamente 2 horas”

Sem essa ferramenta, testar e implantar 25 bots levaria mais de 3 a 4 dias.

Limitações

  • Construtores de bots / Desenvolvedores que mudam o fluxo quebram a ferramenta, então a comunicação é fundamental sempre que as coisas estão mudando.

Planos futuros

  • Aproveitar esta ferramenta de teste de bot para teste de bot de voz.
  • Construa algumas funcionalidades em torno desta ferramenta para suportar o teste de chatbot multilingue.
  • Otimizando o tempo para executar a ferramenta de teste de bot de várias horas para minutos.

Vantagens

  • O tempo gasto para testar qualquer chatbot foi reduzido para 7 a 8 minutos de 1 a 2 horas.
  • Ferramenta de teste de bot é capaz de testar vários chatbots de uma só vez
  • Um esforço para testar o chatbot manualmente.
  • Um único bot pode estar em execução para vários clientes. Isso também permite testar o bot entre os clientes.

Gostaríamos muito de ouvir de você. Deixe-nos saber o seu feedback para a nossa ferramenta de testes. Nossa equipe está trabalhando vigorosamente para melhorar e criar mais recursos, e estaremos de volta com as atualizações em breve. Haptik está contratando. Confira nossa página de carreiras.

Texto original em inglês.