A história de como o engenheiro de controle de qualidade tornou a vida mais fácil para você com a ajuda do Test IT, usando o Bot Framework

Não é segredo que um bom software difere do restante, não na funcionalidade, mas na qualidade das funções declaradas. Afinal, ninguém precisa de um software rico em funcionalidades, se simplesmente não funcionar. Mas como você consegue dizer aos desenvolvedores a tempo que algo está errado com o projeto?

Hoje falaremos um pouco sobre os problemas de comunicação entre departamentos da empresa e, ao mesmo tempo, com o exemplo de Test IT, veremos o que nos ajudou a entender o Zen: imparcial, com um coração de pedra e uma alma de um algoritmo - um bot no Bot Framework. Bem-vindo ao gato!





Há muito que se acredita que na guerra a principal ferramenta é a comunicação. Sem comunicação, é impossível coordenar suas tropas, descobrir notícias dos campos, fornecer apoio e acompanhar as ações do inimigo. E o que é desenvolvimento, senão uma guerra local de vários departamentos por um produto?

E se, nos tempos antigos, eles usavam um mensageiro, um mensageiro e, posteriormente, telefone, para divulgar notícias, então no limiar de 2020 seria estranho usar essas tecnologias, especialmente quando seu exército trabalhando em um produto pode ser distribuído muito além dos limites de um escritório. Aqui está o nosso engenheiro de controle de qualidade e fez uma pergunta semelhante.

Obviamente, você pode escrever detalhes sobre o teste falhado em um bate-papo ao vivo. Mas isso exigirá tempo que você não deseja gastar no mesmo tipo de notificação. Você pode adicionar um comando ao portal de TI de teste e forçá-los a verificar o status dos autotestes. E isso também resolverá parcialmente o problema, mas a necessidade de estar constantemente no portal distrairá bastante a equipe de desenvolvimento. Precisamos de algo mais simples, sem perder tempo enviando notificações mais uma vez.

Seguindo essa lógica, chegamos aos webhooks. Eles automatizarão o envio de notificações e logs críticos do sistema para qualquer ferro conectado à Internet.
Então, resolvemos o canal de comunicação. É hora de pensar para onde os webhooks devem enviar suas notificações. Idealmente, essa deveria ser uma plataforma que combina vários mensageiros instantâneos e e-mail para os amantes dos clássicos. E, como você pode imaginar no título do artigo, a plataforma caiu no Bot Framework.

Essa combinação atende totalmente aos requisitos de notificações urgentes, expandirá os recursos do bot sem interferir nos casos de teste e na plataforma. E o próprio bot se tornará nosso assistente de desenvolvimento, que lerá incansavelmente um bate-papo em funcionamento e nos notificará sobre qualquer evento de interesse no TMS Test IT.

No artigo de hoje, consideraremos um exemplo do uso do bot no Telegram para enviar notificações às equipes de desenvolvimento e teste da plataforma Test IT.

Crie um projeto e um bot


Acesse o portal e crie um novo projeto:

imagem

O projeto inclui casos de teste, testes automáticos, listas de verificação, webhooks e muito mais.

Em seguida, crie um plano de teste. Deixe que ele tenha o mesmo nome descomplicado que o nome do projeto:

imagem

Além disso, você pode adicionar novos casos de teste, mas iremos diretamente para a criação do nosso assistente inteligente. Não feche o portal, retornaremos a ele para configurar webhooks.
O desenvolvimento será conduzido no .Net Framework (bem, onde sem ele) usando o Azure. Na verdade, começaremos com o Azure .

Acesse o portal e procure o Web App Bot:

imagem

Clique em "Criar", preencha os campos obrigatórios e expanda. Como parte do artigo, implantaremos inicialmente o modelo Echo Bot e, futuramente, desenvolveremos nele
Quando o bot for implantado com sucesso, é hora de se conectar aos seus canais de comunicação com o bot. Uma lista muito grande de mensageiros e opções de comunicação é apresentada à escolha do desenvolvedor, mas o Telegram é suficiente para nossos propósitos.

Para fazer isso, escreva alguns bons comandos no bot @BotFather e crie um novo bot. Felizmente, ele se comunica conosco de maneira muito amigável, ajudando a criar sua própria espécie. O Bot Father foi criado no Telegram para controlar outros bots. Sim, não admira que o nome dele seja o pai dos bots!

No final do registro, o Bot Father deve fornecer a chave exclusiva de nosso filho. Temos o prazer de copiá-lo, agradecer ao pai dessa família estranha e retornar ao portal do Azure.

Agora precisamos fazer o download do código-fonte do bot para que possamos trabalhar diretamente com ele em nosso IDE:

imagem

Imediatamente podemos obter um emulador para depuração local. Se seu bot tiver um pouco mais de lógica do que a saída de "Hello world", é melhor obter as ferramentas para depurar e testar seu novo membro da equipe.

Diretamente no portal, nós apenas tivemos que abrir nosso novo bot, ir para a aba “Channels”, adicionar um canal de Telegram e dar a chave, gentilmente deixada pelo pai dos bots. Além disso, para evitar que o bot sofra um longo período de inatividade, é aconselhável mudar para o serviço de aplicativo (o nome é semelhante ao nome do nosso bot no portal) -> configuração -> parâmetros gerais e, na coluna "Always On", selecione o status "Enabled". Caso contrário, seu bot poderá adormecer e leva um tempo precioso para que os usuários finais o iniciem.

imagem

Além disso, como ainda estamos no portal do Azure, implantaremos um pequeno banco de dados para esse bot. Útil para armazenar uma lista de índices de grupo e suas chaves secretas. Você pode ler mais sobre a implantação do banco de dados aqui .

Portanto, se ao acessar nosso bot no Telegram, ele retornar nossa mensagem, significa que fizemos tudo certo e a guia com o Azure pode ser adiada para tempos melhores. Agora você pode começar a trabalhar na lógica do nosso assistente.

Nós dirigimos os cérebros do bot



imagem

Para quem tem experiência com o ASP.NET Core, nada de novo virá a seguir. O restante deixará um breve manual sobre o que fazer a seguir:

  • Ensinar o aplicativo a trabalhar com o Entity Framework e a amarrar o banco de dados. É necessário que o bot possa armazenar as comunicações do ChatID, o status de ignorar o chat e o "secretKeyBot" das entidades recebidas no banco de dados. Isso permitirá usar o bot não apenas dentro da estrutura deste projeto e da empresa como um todo, mas também adicioná-lo livremente a grupos para todos;
  • Adicione modelo de dados e controlador de API. Em nossa aplicação, deve haver algum ponto de entrada externo através do qual você pode acessar o bot e transmitir o corpo da solicitação. O modelo de dados é a representação do corpo da solicitação e o controlador deve trabalhar com uma chamada externa;
  • Escreva quebra-cabeças e equipes de serviço. Se tudo estiver claro com o kruds, o serviço de comando será nossa lógica de negócios para processar mensagens de bate-papo. Inicialmente, queríamos abafar as notificações do bot em qualquer bate-papo em particular. Uma das opções para fazer isso é diretamente com o comando chat, que o bot deve processar e lembrar apenas desse chat.
  • Teste o bot em um ambiente local usando um emulador. Caras especialmente experientes podem carregar o bot diretamente no Azure e observar seu comportamento por meio de um bate-papo no Telegram, mas, nesse caso, o bot não retornará uma descrição detalhada dos erros. Sim, e os pontos de interrupção (uma ferramenta de depuração favorita) não podem ser colocados. A propósito, um pequeno recurso do Bot Framework é que ele realmente não gosta de retornar uma descrição detalhada do erro. Portanto, desenvolvemos com cuidado e nos comprometemos com mais frequência!
  • Publique no Azure. Entre as pastas do projeto, você pode encontrar uma com o nome descomplicado "PostDeployScripts". Ele contém um arquivo importante para nós com a extensão .PublishSettings. Os dados sobre a conexão com o armazenamento bot no Azure estão lá. E para quem usa o Visual Studio, esse arquivo é a chave sagrada para publicar o projeto: importe-o ao publicar, e o IDE extrairá todos os dados necessários.


Adicionar webhook


Na verdade, o bot é criado. É hora de retirar o webhook do portal TestIT. Ficamos felizes por não termos fechado a guia no navegador e acessado:

imagem

Entramos nas configurações do projeto, na guia "Webhooks" e adicionamos uma nova:

imagem

Agora vamos tentar alterar o status do plano de teste e ver como o bot responderá.

imagem

Na verdade, foi aqui que acabamos com um pequeno exemplo de criação de um bot assistente. Nosso bot pode ser visualizado no GitHub .

A partir de agora, equipes de desenvolvedores e testadores podem se envolver com segurança no desenvolvimento de produtos, e nosso novo amigo esperto incansavelmente aguardará as notícias dos campos de teste e as compartilhará rapidamente.

É importante entender que os recursos do bot são quase ilimitados: ele é capaz de processar qualquer solicitação de fora. E isso significa que você pode aprender muitas coisas: filtrar mensagens de bate-papo, notificações de formação de equipes, minijogos em seu tempo livre. Se você tentar mostrar um pouco de imaginação, poderá ensiná-lo a pedir pizza, criar um calendário de trabalho, reconhecer documentos ou até encaminhar suas mensagens de e-mail para mensageiros instantâneos.

Source: https://habr.com/ru/post/pt481654/


All Articles