Recentemente, fui contratado para um projeto que envolve trabalhar com e em torno de vários sistemas "empresariais" de terceiros. Devido ao que eu imagino que seja o custo e o esforço astronômico necessários para construir uma réplica suficientemente fiel do ambiente de produção, a perspectiva de ter um ambiente de desenvolvimento real parece muito pequena.
Obviamente, isso não é o ideal. Pelo lado positivo, imagino que deve haver pessoas por aí testando e implantando software com segurança em ambientes não replicáveis como esse, e provavelmente posso seguir seus passos.
Como aqueles que efetivamente lidam com esse tipo de situação fazem isso?
testing
development-process
Jason Swett
fonte
fonte
Respostas:
Isso acontece o tempo todo no mundo real. Conheço um cara que escreve aplicativos que controlam gigantescas estufas agrícolas - ventilação, aquecimento, controle de umidade, etc. Ele não possui uma "estufa de teste", mas possui um programa de simulador fornecido pela empresa que constrói os sistemas de hardware reais. Se o código funcionar corretamente com o simulador, presume-se que funcione corretamente com o equipamento real. Em raras ocasiões, o simulador parece estar errado, mas esse é o problema da empresa de hardware de estufa, porque não está simulando corretamente.
fonte
Essas são situações em que a documentação da API, os documentos de controle da interface e os emuladores são fundamentais. Em uma empresa para a qual trabalhei anteriormente, isso realmente aconteceu. Isso acontecia frequentemente em um projeto durante certas fases de integração em que um segmento estava pronto, mas outros estavam atrasados, com outro recurso sendo trabalhado ou por alguma outra razão pela qual não puderam implantar. a versão mais recente do segmento para o nosso sistema de teste. Então, sim, na verdade tínhamos uma réplica fiel do ambiente de produção em que testamos; no entanto, na prática, todos os segmentos nunca estavam prontos dentro do cronograma, mas as interfaces haviam sido acordadas e bloqueadas antes do início do desenvolvimento, e foram criados emuladores que, em grande parte, poderiam imitar o comportamento de outros segmentos.
Como outra resposta afirmou, o emulador é o que permitirá que o teste ocorra antes da implantação. Um bom emulador; no entanto, depende de interfaces e documentação bem definidas.
fonte
Eu estou nessas situações o tempo todo.
Você certamente não precisa interagir com o aplicativo inteiro, mas provavelmente com algumas interfaces de algum tipo. Certifique-se de ter confirmado e detalhado a documentação das interfaces e configure simulações dessas interfaces apenas para verificar se o código adicionado / alterado funciona da maneira que você pretendia.
Você também pode fazer um híbrido. Tente replicar as partes que você pode fazer com facilidade e, em seguida, "conecte" aos sistemas reais (se isso for possível na sua situação). Fiz isso com algum sucesso - em alguns casos em que minha lógica e o software do servidor eram executados localmente, mas eu ainda tinha conexões com o sistema ERP real para verificar as invocações etc. Não é o ideal, mas as coisas raramente são.
Como você tem apenas um sistema de produção para trabalhar - observe que você não pode contar apenas com o tempo de desenvolvimento economizado na configuração de uma réplica, mas é necessário levar em consideração o risco comercial de usar código amplamente não testado com dados comerciais ativos. Seu código será menos confiável do que o código testado em uma réplica. Os sistemas podem ficar inativos por algum tempo? Eles podem ser restaurados em caso de corrupção de dados? Quanto aquilo custa?
Uma prática recomendada nas empresas é colocar uma réplica (ou talvez mais de uma) da produção no momento em que o ambiente de produção estiver configurado. Nesse momento, o custo adicional não será tão grande.
fonte
Nosso sistema trabalha com vários sistemas externos grandes. Combinamos as seguintes abordagens ao testá-las se não tivermos uma configuração completa de ponta a ponta:
fonte