Sei que devemos ter pelo menos três ambientes diferentes ao desenvolver uma solução:
- Desenvolvimento : Os programadores são livres para alterar e enviar alterações a qualquer momento, a fim de testar rapidamente seu código e integrar-se a outras alterações, sem medo de quebrar nada - isso está conectado aos bancos de dados e serviços TEST;
- UAT : deve ser tratado com reverência pelos desenvolvedores, pois deve conter uma cópia "o melhor possível" do ambiente de produção em relação ao hardware, com a diferença de que esse ambiente está conectado aos bancos de dados UAT com uma cópia editável dos dados de produção - é usado pela equipe de perguntas e respostas e pelos usuários para validar as alterações que serão direcionadas à produção
- Produção : O negócio real.
Eu olhei para esta pergunta em Engenharia de software , e esta pergunta sobre ServerFault , e eles parecem diferir sobre o que é o significado do ambiente de teste. Além disso, a página da Wikipedia sobre o assunto afirma que:
O uso principal de um ambiente de temporariedade é testar todos os scripts e procedimentos de instalação / configuração / migração, antes de serem aplicados ao ambiente de produção. Isso garante que todas as atualizações principais e secundárias no ambiente de produção sejam concluídas de forma confiável, sem erros, em tempo mínimo.
Para mim, o armazenamento temporário é igual ao UAT, onde você deve testar os procedimentos de aplicativo e implantação antes de avançar para o mundo real. Portanto, empurramos o pacote com as alterações para o UAT da mesma maneira que empurramos para a produção, totalmente automatizados e com toda a cerimônia que deveríamos ter com o ambiente de produção.
Dito isto, qual é a diferença adequada entre um ambiente UAT e um ambiente de armazenamento temporário?
-
EDIT: Só para deixar claro, estou pensando em termos de um aplicativo da Web, seja um site da Internet ou um site da intranet. Nenhum aplicativo "forms" ou aplicativo móvel.
Respostas:
A diferença são os dados.
Um ambiente UAT é configurado para "aceitação do usuário" de novas funcionalidades. Para testar essa funcionalidade, o controle de qualidade ou as partes interessadas pode configurar perfis de usuário de uma maneira específica para exercer recursos específicos ou configurar produtos ou configurações simulados para verificar todos eles.
Um ambiente de preparação é geralmente configurado com uma cópia dos dados de produção, às vezes anonimizados. Algumas empresas "atualizam" regularmente seu banco de dados temporário a partir de um instantâneo de produção. O foco principal é garantir que o aplicativo funcione na produção da mesma maneira que funcionou no UAT. Em vez de configurar os dados novamente, os testadores pesquisam no banco de dados perfis e produtos que correspondem a um conjunto essencial de casos de teste. Freqüentemente, os dados "reais" apresentam peculiaridades que dão origem a casos extremos inesperados que foram perdidos durante o UAT. Além disso, qualquer teste de migração de dados precisaria ocorrer no ambiente de preparação.
fonte
A definição de uso é muito ampla aqui e pode incluir todos os tipos de coisas, desde algumas alterações na configuração feitas pelos usuários finais até os caros recursos de infraestrutura não disponíveis no ambiente UAT. É importante ressaltar que a versão do produto de software no teste pode ser nova ou atual, mas sempre uma que já passou na aceitação.
Em outras palavras:
Nota: como foi descrito na pergunta em si, existem diferentes entendimentos de "Ambiente de armazenamento temporário" e um usado em sua empresa / ambiente pode ser diferente.
fonte
O uso desses diferentes ambientes depende realmente das suas necessidades. Pelo seu comentário de que "teste == UAT", parece muito como se você tivesse um aplicativo muito pequeno sem equipe de controle de qualidade e apenas alguns desenvolvedores.
Ambientes de aplicativos maiores podem ter um ambiente de teste de integração, bem como um ambiente de controle de qualidade, o primeiro onde os desenvolvedores executam seus testes de integração e o último onde a equipe de controle de qualidade executa seus testes. Pode haver um ambiente de treinamento que tenha dados de estoque restaurados antes de cada sessão de treinamento. O ambiente de preparação estaria sob controle da equipe de operações, para garantir que as implementações ocorram corretamente. O ambiente de teste de aceitação do usuário (UAT) seria usado pela equipe do cliente. Também pode haver um ambiente de instantâneo de produção para reproduzir problemas do cliente.
Meu objetivo é tomar cuidado com o ponto de vista único ao determinar os ambientes que você precisa.
fonte
UAT significa " Teste de aceitação do usuário " e é o ambiente no qual o teste de aceitação do usuário é realizado. Observe a ênfase no usuário - seu teste de controle de qualidade é diferente, o UAT é uma chance para os usuários reais (ou pelo menos sua equipe de treinamento, vendas, equipe de suporte etc ...) experimentar novos recursos e avaliar o software antes de ser implantado no seus sistemas de produção.
O que isso significa exatamente dependerá de seus processos:
Em termos de Implantação Contínua / Entrega Contínua, o ambiente de temporariedade é usado para testar o software em um ambiente "semelhante à produção", pois é provável que os desenvolvedores trabalhem em um ambiente com diferenças significativas na produção (por exemplo, sem balanceamento de carga, menor conjunto de dados etc ...)
fonte