Introdução
O trabalho do arquiteto de soluções continua mesmo depois de o sistema ter sido projetado. Sua próxima tarefa é garantir que o sistema seja implantado e usado por usuários reais.
Função do arquiteto de soluções no teste e na ativação
Normalmente, o arquiteto de soluções é uma das pessoas que conhecem melhor a forma como a solução funciona e pode guiar a equipe durante os testes.
O arquiteto de soluções tem um papel fundamental no teste e deve:
- Manter-se envolvido até o final do teste para garantir o sucesso.
- Ajudar a treinar a equipe de testes na arquitetura da solução para garantir que todos os componentes e integrações sejam adequadamente testados.
- Fazer a triagem dos problemas complexos que surgirem durante o teste, a simulação e a ativação.
- Participar da equipe de ativação no planejamento e na implementação da estratégia de ativação.
Visão geral dos testes
Os testes adequados são importantes para o sucesso do projeto.
Observação
O teste deve ser um esforço contínuo desde a criação do primeiro componente até a ativação; não pode ser um grande exercício feito de uma só vez.
O teste é mais do que o processo de mapeamento dos requisitos de funcionalidade. Embora seja importante criar e implementar esses tipos de testes, outros aspectos da solução deverão ser testados também. Independentemente da métrica específica que está sendo testada, o processo é semelhante.
O processo de teste inclui as seguintes etapas:
Planejar – Revisar a estratégia de teste geral, desenvolver o plano de testes e realizar as análises necessárias para métricas de linha de base. Identificar os principais cenários de negócios que estão no e fora do escopo. Documentar os requisitos, se esta etapa ainda não tiver sido concluída.
Preparar – Configurar ambientes necessários para testes de desempenho, de aceitação do usuário e assim por diante. Revisar os dados recebidos para migração, antes e depois do teste de migração. Validar requisitos de sistema de alto nível e desenvolver os scripts necessários.
Executar – Executar os scripts de teste, analisar os resultados, identificar possíveis afunilamentos e revisar falhas e comportamentos.
Relatar – Preparar uma avaliação detalhada do plano de relatório, resultados e plano de ação.
Tipos de teste
O arquiteto de soluções deve fazer parte da discussão sobre a quantidade e o tipo de teste necessários para um projeto.
Entre os tipos comuns de testes, o Microsoft Power Platform inclui:
Testes de unidade – Executados pelo criador do aplicativo, analista de negócios, consultor funcional ou desenvolvedor.
Testes funcionais – Verificam se a implementação atende aos requisitos.
Testes de aceitação – Executados pelos usuários para darem a aprovação formal.
Testes de regressão – Testa as funções inalteradas para regressão e geralmente são realizados sempre que uma atualização do sistema ocorreu.
Testes de integração – O objetivo é que todos os sistemas integrados trabalhem em harmonia. O teste de integração verifica se tudo está funcionando junto, incluindo serviços integrados e dados de outras fontes.
Testes de desempenho – Estes testes são verificados com a carga de pico esperada e o volume de transação de pico e geralmente são automatizados e executados antes da ativação.
Testes de migração – Migração de dados prática para verificar a qualidade dos dados. Esses testes são executados em consultas fechadas com especialistas no assunto, conhecedores dos dados do cliente. Esses especialistas devem compreender a transição e a transformação dos dados e podem confirmar que os dados migrados são válidos com o contexto adequado.
Testes de recuperação de desastres – Um plano de recuperação de desastres é inútil se não funcionar.
Testes em tempo real – Simulações completas da solução e do processo de ativação. Geralmente, esses testes são executados antes da ativação.
Nem todos os tipos de testes serão necessários; são determinados pelo tamanho e escopo do projeto.
Teste de unidade
Você pode usar um teste de unidade para verificar se uma função ou recurso específicos do seu aplicativo estão funcionando corretamente. Normalmente, os criadores e desenvolvedores de aplicativos fazem testes de unidade. Cada membro da equipe deve verificar seu próprio trabalho antes da entrega.
O teste de unidade é recomendado, mas não obrigatório. Quando estiver iniciando, ou se a quantidade de código na sua solução for relativamente pequena, você pode perceber que está gastando mais tempo escrevendo testes do que criando a funcionalidade incluída na sua solução. Os benefícios do teste de unidade começam a se acumular quando sua solução se tornar maior e mais complexa, principalmente no desenvolvimento do servidor, no qual você poderá ver benefícios significativos na depuração localmente usando simulação ou dados falsos com uma estrutura de teste.
É possível fazer testes manuais com todos os aplicativos, regras comerciais e plug-ins. Alguns testes podem ser automatizados usando o Microsoft Power Apps Studio e o Visual Studio. Uma estrutura de teste de unidade popular para desenvolvimento no servidor é Fake XRM Easy.
O arquiteto de soluções deve decidir as ferramentas que serão usadas nos testes de unidade e o nível de automação a ser adotado.
Teste de integração
O arquiteto de soluções precisa ajudar a equipe de testes a compreender como testar os componentes integrados.
Uma vantagem do Microsoft Power Platform é a sua forte capacidade de integração. A integração é um dos aspectos mais importantes da implementação do processo comercial porque garante o funcionamento correto e tem um forte impacto na adoção geral.
O arquiteto e o cliente da solução devem examinar os cenários de teste que envolvem integrações com outros aplicativos da linha de negócios para garantir a criação dos cenários de teste de ponta a ponta. Essa revisão provavelmente exigirá que o cliente planeje ter ambientes de teste para seus outros aplicativos.
Cada integração provavelmente terá sua própria abordagem de teste, que precisa ser definida. A equipe de teste deve ser envolvida com antecedência para determinar como será o teste de cada cenário de integração. As equipes precisam garantir que as integrações necessárias possam ser configuradas para dar suporte a testes.
Um aspecto importante do teste de integração deve ser concentrado nos dados que entram e saem da integração. A maior parte da discussão na seção de teste de validação de dados também pode ser aplicada aos dados envolvidos em integrações.
Como os testes de integração podem envolver outros sistemas, é necessário garantir que os ambientes de teste sejam usados para todos os componentes. Você não deseja que os testes de integração se comuniquem com um sistema ativo e, em seguida, modifiquem os dados de produção por acidente. Ocasionalmente, os cenários de teste irão impulsionar as opções de configuração na integração do aplicativo para que possam ser testadas. A capacidade de desativar as integrações pode ajudar a testar sem invocar a integração.
O processo de criação de integrações agora é mais abordável e, portanto, mais acessível a um número maior de pessoas em equipes de projeto. Geralmente, as integrações podem se tornar ocultas dentro dos aplicativos de tela do Power Apps ou em fluxos do Microsoft Power Automate. Essas integrações ocultas geralmente podem passar despercebidas porque o aplicativo está usando um conector de superfície de outra fonte. O plano deve considerar essas integrações como qualquer outra integração e testá-las adequadamente.
Teste de aceitação do usuário
O UAT (teste de aceitação do usuário) é realizado pelos usuários para fornecer aprovação formal e testar a usabilidade do sistema. Em geral, o teste de aceitação é realizado como uma verificação final antes da implementação da funcionalidade. Este teste verifica se o trabalho dos criadores corresponderá aos requisitos solicitados inicialmente pelo usuário.
Dicas para obter bons resultados do UAT:
- Testar com usuários reais.
- Escolher usuários com diferentes níveis de habilidade em TI. Consequentemente, você pode obter vários comentários.
- Não dê instruções ao usuário; veja se é possível compreender o aplicativo intuitivamente.
- Observe como os usuários navegam no aplicativo sem assistência e determine onde você pode melhorar o design.
- Quando o usuário ficar preso em uma tela, peça que explique sua expectativa.
- Experimente dispositivos diferentes para verificar se os casos de teste se comportam de forma semelhante.
- Idealmente, teste o aplicativo no ambiente ou no local real do usuário se o aplicativo usar recursos offline.
- Peça aos usuários que tentem "quebrar" o aplicativo, inserindo caracteres incomuns nas colunas de texto, por exemplo.
- Geralmente, os usuários testarão o "bom caminho" (aquele que o usuário segue quando tudo funciona perfeitamente). Peça que também testem cenários, como cancelar um relatório de despesas em vez de enviá-lo ou rejeitar um relatório de despesas em vez de aprová-lo.
Os usuários podem não estar familiarizados com testes de software. Informe-os sobre os tipos de comentários que você espera. Geralmente, é útil fornecer um modelo para bugs para garantir que os testadores expliquem exatamente o que estavam fazendo, o que aconteceu, o que esperavam fazer em vez disso e informações relevantes sobre o ambiente de teste (como tipo de dispositivo e navegador).
O arquiteto de soluções será solicitado a ajudar na triagem de problemas levantados pelos usuários durante os testes.
Teste de segurança
Este teste é importante para garantir a segurança do aplicativo e o alinhamento com requisitos normativos. Deve incluir uma avaliação de vulnerabilidade para verificar a segurança do aplicativo. Também deve incluir testes do contexto de segurança com diferentes tipos de usuários e verificar se o nível apropriado de dados e recursos está disponível.
O teste de segurança também deve examinar o modelo de segurança no aplicativo para acessar seus dados e recursos. O teste deve incluir cenários com diferentes usuários, com funções e características de acesso diferentes, para verificar se o modelo de segurança se sustenta. O teste do modelo de segurança deve garantir que não ocorra compartilhamento excessivo ou insuficiente. Uma forma de abordar o teste do modelo de segurança é criar uma conta de usuário de teste dedicada para cada conjunto principal de funções.
O arquiteto da solução deve ajudar a definir o nível de teste de segurança a ser executado.