Treinamentos
É o ato de colocar sua assistente para entender como serão as interações com o usuário considerando os diálogos construídos. Sempre que forem adicionadas novas interações é preciso treinar novamente sua assistente para que ela consiga reagir da maneira esperada em uma conversa.
O único pré-requisito para agendar um treinamento da sua assistente virtual é haver ao menos um diálogo construído.
Tenha certeza que todas as configurações de parametrização e infraestrutura foram realizadas corretamente.
- Após acessar a plataforma, acesse o menu Treinamentos;
- Clique o botão Agendar;
- Defina qual será o escopo da atualização que deseja, sendo as opções: Diálogos, Completo, Habilidades (Texto – Botão – Imagem) ou Habilidades personalizadas;
- Informe o dia e horário em que o treinamento deverá ser realizado.
Observação: Lembre-se de escolher datas e horários que irão ter menos impactos nos atendimentos em andamento, caso haja.
!!! note "Informação"
Após iniciado um treinamento, o aplicativo não disponibiliza opção ao usuário para finalizar o processo, mas às vezes pode ser necessário. As instruções a seguir conduzem na realização desta tarefa, que consiste em limpar a fila de tarefa e finalizar a máquina adquirida para este fim.
Para finalizar a instância adquirida, siga as instruções a seguir:
Ao tentar iniciar um treinamento agendado, pode ocorrer um erro e o treinamento não inciar. Uma das causas desta ocorrência está relacionado ao schedule do python que sofre uma quebra, deixando de colocar o treinamento na fila.
Este problema ocorre quando a instância anuvamultitenancyapihom_app tem o seu IP alterado, por motivo qualquer, e este passa a não constar na regras de autorização de acesso do serviço Elasticsearch. Neste caso, uma mensagem indicando a falha na apresentação dos rankings aparece em diversos pontos da aplicação.
Para resolver o problema, o IP da instância anuvamultitenancyapihom_app deve ser acrescentado na lista de autorizados, nas políticas de acesso ao serviço Elasticsearch. Para isto, é necessário obter o IP atual da EC2 anuvamultitenancyapihom_app, acessar o painel do serviço Elasticsearch e incluir o IP na lista de autorizados. Para obter o IP, siga o procedimento a seguir:
Para acessar o painel do Elasticsearch e incluir o IP na lista:
Os testes de softwares estão inseridos no Gerenciamento de Ciclo de Vida de Aplicativos (mais conhecido como ALM). É uma etapa primordial para garantir a qualidade do produto entregue para o cliente, ou mesmo para ser utilizado pela própria equipe de desenvolvimento para assegurar-se de sua assertividade.
Nós automatizamos para evitar trabalho manual repetido, obter um feedback mais rápido, economizar tempo executando testes repetidamente, e assegurar que estamos sempre executando testes de forma consistente com as mesmas precondições e expectativas.
De modo geral, os motivos para a abordagem da existência dos testes são:
- Verificar se o programa está dentro das expectativas do cliente;
- Verificar quaisquer bugs antes dos seus clientes verem;
- Detectar problemas no design;
- Ter certeza de que o sistema é estável;
- Garantir que o trabalho desenvolvido pela equipe é de qualidade;
Para a automatização de testes do projeto em questão, está sendo utilizado a ferramenta Cypress. Um dos principais diferenciais do Cypress é que enquanto a maioria das ferramentas de testes operam fora do navegador, executando comandos remotos na rede, o Cypress é exatamente o oposto, ele é executado no mesmo loop de execução do aplicativo que está sendo testado. Isso permite uma interatividade muito grande.
Os procedimentos a seguir apresentam instruções sobre a instalação e configurações básicas para iniciar e interagir com este projeto de testes, assim como documentar os critérios e padrões adotados para a boa prática na sua condução e implementações seguintes.
Testa os requisitos funcionais da aplicação. Resumidamente verificar se a aplicação está apta a realizar as funções para a qual foi desenvolvida para fazer, podendo abranger as funcionalidades em todo o seu escopo, tanto BackEnd quanto FrontEnd.
Preliminarmente, você já deve possuir o Node.js instalado e, a nível de sugestão a IDE VsCode. Tendo estes pré-requisitos, siga o procedimento a seguir:
-
-
-
Se necessário, instruções completas podem ser obtidas junto à documentação oficial.
!!! note "Nota"
Como sugerido anteriormente, estaremos utilizando o VsCode como IDE para o desenvolvimento de nossos testes, portanto o mesmo já deve estar previamente instalado. Vamos acrescentar ao arquivo package.json o comando que utilizamos para executar o projeto. Isto irá agilizar o procedimento. Edite o arquivo package.json, e no tópico script, acrescente o comando, conforme exemplo:
Tendo sido incluído o comando, conforme instrução anterior, o projeto pode ser executado via linha de comando:
ou através do VsCode, pelo caminho Outline > NPM Scripts > package.json > cypress:open > botão "play"
A seguinte estrutura de arquivos é proposta para se manter um padrão organizacional do projeto. Porém, não existem restrições técnicas para outras abordagens, sendo as boas práticas a seguir mera convenção para o projeto em questão:
-
- O uso de fixtures é uma boa prática para agilizar o desenvolvimento e manutenção do projeto, pois agrega em única área os dados variáveis utilizados pelo projeto.
- Por questão organizacional, deve se ter um arquivo fixture para cada arquivo de teste.
- Devem ser evitados blocos muito extensos. Quando o volume for grande, é sugerido a sua divisão em tópicos.
- Os commands não devem lidar com os dados diretamente. Os dados devem ser manipulados nas intents.
-
- Estes arquivos devem se restringir à lógica dos testes e manipulação dos dados, deixando a cargo dos commands a execução dos procedimentos com as devidas interações com telas e api ‘ s.
- Por questão organizacional, deve se ter um arquivo command para cada arquivo de teste.
- Os arquivos de testes não devem lidar com os componentes de tela diretamente, ficando isto a cargo dos arquivos em commands. Assim sendo, não devem importar arquivos locators.
- Os arquivos de testes importam os arquivos fixtures, para a manipulação de dados e passagem destes para os commands.
-
-
- commands: Estes arquivos são utilizados pelos testes, localizados no diretório integration. Devem conter os códigos dos comandos utilizados pelos testes. Além dos arquivos commands individuais para cada arquivo de testes, temos também um de uso Global. Algumas boas práticas são:
- llocators: Diretório destinado a conter os arquivos que registram os endereços de acesso aos widgets de tela, URLs e demais endereços. Como determinado nas boas práticas deste projeto, os arquivos locators devem ser importados e utilizados pelos commands. Além dos arquivos locators individuais para cada arquivo de testes, temos também um de uso Global. Algumas boas práticas são:
-
-
-
-
-
-
Foi adotado o seguinte padrão para a criação e denominação de arquivos:
Exemplos:
!!! note "Nota"
Nesta esta estrutura, temos uma exceção quanto aos arquivos de testes propriamente ditos, que estão contidos no diretório integration. Estes arquivos devem seguir o seguinte padrão:
Exemplos: