David Costa

Minha experiência inicial com testes automatizados

October 27, 2019

  • life
  • tests

Meu objetivo com esse artigo é contar um pouco de experiência com testes automatizados e contar sobre o meu primeiro contato com isso.


Tenho trabalhado com programação desde 2013 iniciando com PHP, como homeoffice num sistema de e-commerce integrado com um ERP de uma loja física. Quando comecei a programar não imaginava a quantidade de problemas que desenvolver um sistema poderiam aparecer. Na maioria das vezes por erro humano. A medida que ia progredindo na minha carreira, os projetos cresciam em complexidade, em quantidade de usuários e em potencial prejuízo envolvido. A capacidade de monitorar problemas não era mais humanamente possível. Alguma atitude deveria ser tomado para evitar tantos problemas.

O que me fez acordar para vida foi trabalhar projeto de SPA com vanilha.js(Javascript puro). O que era mais complicado de ser feito neste projeto era conseguir fazer com que uma alteração não quebrasse funcionalidades existentes. Uma vez que isso acontecesse era um grande prejuízo de tempo. O processo de lançar qualquer versão dependia da Review da Apple e aceitar as atualizações. O que poderia atrasar o lançamento em 1 a 5 dias. E quando eventualmente tinham pedidos de alteração da equipe de Review da Apple o processo ficava mais lento.

Este App era constituído por sistema de rota, questionários, formulário envio de imagens e dados que modificavam em tempo real. Mesmo usando as melhores práticas que conhecia, sempre era difícil manter a consistência das funcionalidades quando se precisava fazer algo novo. Sentia que a cada nova funcionalidade o sistema ficava mais macarrônico. Para evitar futuros problemas foi necessário que fazer longas verificações, testando cada formulário, cada link, cada botão manualmente para garantir que tudo estivesse funcionando.

Na mesma época o Google lançou uma ferramente chamada Puppeter, que tinha como objetivo rodar um Google C via terminal, ele conseguiria fazer simulações e tarefas. Não perdi tempo e comecei a usa-lo. Escrevendo os comandos necessários para que o Puppeter conseguisse testar as funcionalidades. O que demorava 30 minutos testando, agora passava a ser 5 minutos.

Desde então passei a olhar os testes de outra maneira e comecei a aprender e testar tudo o que podia. Qualquer bom programador e experiente que seja, está propicio a errar, isso segnifica um erro pode causar problemas bem sérios no para o cliente e consequentemente para o desenvolvedor. Além disto, quando se está testando, acaba encontrando uma maneira de documentar formas certas e erradas de usar o sistema e evitar que a cada mudança tudo continue funcionando ao mesmo tempo. Agora não consigo mais trabalhar em nenhum projeto sem testes novamente.


Espero que você tenha gostado desta pequena história, de como minha foi experiência inicial com testes. Futuramente irei falar mais sobre esse assunto. Se você teve uma experiência diferente ou parecida, gostaria de saber como foi para você. Como foi começar a escrever testes? Como foi ver o valor disto pela primeira vez?