Relaxa. A gente testa em Produção!

Relaxa. A gente testa em Produção! 

Recentemente soltei essa frase numa reunião diária e todos caíram na gargalhada. É claro que eu estava sendo sarcástico. 

Se você como eu é Júnior, pega uma xícara de café e sente-se confortável aí pois hoje vamos falar sobre a importância dos testes. 


1 - A Engenharia de Testes 

Engenheiro(a) de Teste é uma profissão que deveria ser mais respeitada. 

Infelizmente alguns enxergam o Engenheiro de Testes apenas como alguém que vai impactar no tempo que vai levar para um produto ou feature ser implementado em Produção. 

Há ainda quem tem coragem de dar um bypass nessa fase do projeto. 

É claro que é muito difícil testar 100% de um projeto, mas o Engenheiro de Testes existe para garantir que as funcionalidades core são testadas e estão de acordo com suas especificações. 


2 - O que pode acontecer quando um sistema não é testado durante o desenvolvimento? 

O Therac-25 



Existiu uma máquina de radioterapia computadorizada avançada para o tratamento de câncer. 

No início o Therac-25 tinha travas de segurança física para evitar qualquer tipo de acidente, mas em certo momento os Engenheiros decidiram remover o hardware e fazer o controle via software. 

Se o operador digitasse rápido demais, o sistema ativava o feixe de eléctrons sem ativar o mecanismo de proteção. 

Isso causou ao menos seis casos aonde pacientes receberam doses massivas de até 100 vezes o que havia sido prescrito. 

Mas isso não foi testado antes? 

O sistema foi testado de forma isolada, de maneira que nunca simulou um operador real digitando em alta velocidade.


3 - Knight Capital 

A Knight Capital Group era uma empresa de negociação financeira que em agosto de 2012, atualizou seu software de negociação automática. Um robô que colocava ações de compra e venda na bolsa por conta própria. 

O que aconteceu: um dos servidores não recebeu a atualização, e continha uma versão antiga do software com a mesma variável (flag) usada pelo sistema novo. 

O que aconteceu? 

Ao subir o sistema novo, o software disparou ordens com valores errados. 
O programa entrou em loop e em apenas 45 minutos a empresa perdeu 440 milhões de dólares. 

Existem outros exemplos como o foguete Ariane 5 ou a sonda Mars Climate Orbiter que causaram prejuízo na casa dos milhões de dólares, mas o que fica como aprendizado é que o custo de corrigir um bug na fase de design ou desenvolvimento é mínimo. 

E a depender do bug que passa para Produção, este pode quebrar empresas, destruir projetos científicos e colocar vidas em risco. 

Esse post é uma homenagem à todos os profissionais que testam exaustivamente as novas features antes de aprovar o deploy em Produção. 


Obrigado.


__________
Rafael Machado 

Comentários

Postagens mais visitadas deste blog

PROJETO DIY Videogame retrô com Raspberry Pi

Dashboard do ServiceNow sem header em tela cheia

When the student is ready the teacher will appear