No filme "Dirty Harry" de 1971, Clint Eastwood interpreta um policial duro e esperto de rua. Na cena de abertura, ele interrompe friamente um assalto a um banco, matando os ladrões de banco com sua enorme arma de cano longo, Smith e Wesson .44 Magnum. Os tiros soam e só resta um assaltante, ferido. Harry caminha até ele e pronuncia a frase que se tornou a linha de assinatura para este filme. "Eu sei o que você está pensando. Ele disparou seis tiros ou apenas cinco? Bem, para dizer a verdade, em toda essa excitação, eu mesmo perdi o controle. Mas como se trata de uma Magnum .44, a arma de punho mais poderosa do mundo, e que explodiria sua cabeça, você tem que fazer uma pergunta a si mesmo: Será que eu me sinto com sorte? Bem, você é um punk?" O punk então se rende, e pergunta a Harry quantos tiros restaram. Harry aponta a arma para ele e aperta o gatilho. A arma está vazia. O assaltante do banco teve sorte.
Você confia na sorte para garantir que suas aplicações de missão crítica sirvam continuamente a sua empresa, dia após dia? Ou você tem um conjunto de procedimentos de teste de pré-lançamento que garantem que eles se comportem exatamente como previsto? Faço esta pergunta porque, ultimamente, estou tendo dúvidas se é necessário ou aconselhável reconstruir uma aplicação ao atualizar o lançamento do sistema operacional. Talvez não seja necessário reconstruir sua aplicação, mas eu o aconselho a fazê-lo, quer você esteja usando Windows, Linux, VOS ou OpenVOS. Embora os fornecedores destes sistemas se esforcem ao máximo para garantir que suas novas versões sejam compatíveis com o código existente, eu ainda acho que o curso de ação mais seguro é reconstruir e testar novamente seu software na nova versão, e não confiar na sorte.
Quando você está executando uma aplicação de missão crítica, eu acredito que é obrigatório fazer este nível de investimento. Caso contrário, como na cena do filme, você corre o risco de expor seus negócios a algumas conseqüências verdadeiramente desagradáveis. A pergunta que você tem que fazer a si mesmo é a mesma - Eu me sinto com sorte? Com todas as mudanças que estão acontecendo - novo código do sistema, talvez uma atualização da CPU para um processador mais rápido, talvez algumas mudanças de aplicação - como posso estar confiante de que nada vai dar errado?
A resposta é criar um conjunto cuidadoso de testes de qualificação. Reconstruindo seu código fonte na nova versão, você pegará o compilador e as correções de bugs em tempo de execução que estão disponíveis. Você pode descobrir que o compilador tem algumas novas mensagens de erro que revelam defeitos latentes no código-fonte. Ao executar novamente seus testes em nível de unidade, você pode estar certo de que os aspectos funcionais de sua aplicação ainda funcionam como planejado. Ao executar novamente os testes em nível de sistema, você pode ter certeza de que tudo funciona em conjunto. Finalmente, ao executar uma série de testes de capacidade ou de estresse, você saberá que todo o conjunto de hardware e software pode lidar com as cargas mais severas que você pode lançar sobre ele. Além disso, você terá uma medida do rendimento máximo de sua aplicação, e poderá usar este valor nos próximos meses como um indicador de quanto de capacidade ociosa permanece disponível.
O que quer que você faça, não caia na armadilha de acreditar que por não ter encontrado nenhum problema no lançamento mais antigo, ou no hardware mais antigo e mais lento, você não encontrará problemas quando atualizar. Nossas próprias estatísticas internas mostram que os defeitos de software se correlacionam com o aumento da velocidade do processador. Problemas que eram inéditos, ou simplesmente raros, podem se tornar comuns em um processador mais rápido. Softwares que funcionam durante anos podem facilmente quebrar quando o crescimento normal do volume de transações leva ao transbordo de filas. A única maneira de saber que suas aplicações funcionarão corretamente no ambiente alterado é conduzir conjuntos de testes tão realistas e abrangentes quanto você puder reunir.
Não se veja olhando para baixo com uma arma imaginando quantos tiros restam. Não corra riscos com uma aplicação de missão crítica. Não confie na sorte. Mantenha-se no controle de sua situação. Encontre problemas em seu laboratório, não em seu ambiente de produção.
Se você seguir estes passos, poderá relaxar após as horas de trabalho, sabendo que fez o seu melhor para garantir que seus sistemas funcionem sem problemas. Talvez você até tenha tempo de ir ver um filme.
Isso é tudo por enquanto.