Por que testes são importantes?

Artigos - 27/Mai/2020 - por André Kanamura

Introdução

Testes podem parecer pouco importantes no desenvolvimento de software em comparação com o código de produção que vai gerar valor para seu empreendimento. No entanto, atualmente está cada vez mais solidificado entre desenvolvedores que testes devem ser considerados tão importantes quanto o código central da sua aplicação. Vamos explorar um pouco alguns dos motivos que tornam testes tão relevantes no processo de desenvolvimento de softwares.

Principais funções de testes automatizados

Testes automatizados são utilizados no desenvolvimento de aplicações para garantir que o código se comporta da maneira esperada. Basicamente, é um código que verifica se o código da aplicação faz o que queremos que ele faça. Uma outra maneira de fazer isso é executar o software e manualmente testá-lo como o usuário faria normalmente.

Uma impressão mais imediata, principalmente para iniciantes ou pessoas que não programam, é a de realizando testes estaremos perdendo tempo, afinal, poderíamos estar implementando o código que vai trazer valor para nosso negócio. Porém, em termos de produtividade, escrever código com testes pode nos ajudar a reduzir o tempo de desenvolvimento de uma funcionalidade, pois eles reduzem a necessidade de rodar sua aplicação e testá-la manualmente a cada novo trecho adicionado. É possível, inclusive, escrever todo o código de uma funcionalidade, rodando sua aplicação apenas uma vez ao final para conferir se está tudo correndo como esperado.

Além disso, outro papel importante dos testes é garantir que features da sua aplicação estejam funcionando adequadamente. Uma consequência disso é que testes tornam o código mais resiliente e estável, já que erros e problemas causados por modificações são detectados com antecedência. Imagine que uma nova funcionalidade quebre uma parte muito específica do sistema, de forma que passe despercebida até chegar nas mãos do usuário final. Isso poderia gerar uma impressão muito ruim ao cliente e o estrago já está feito. Com testes, as chances de um problema como esse ocorrer diminuem consideravelmente, uma vez que podemos rodar todos os testes da aplicação depois de implementarmos a modificação, garantindo que tudo continua funcionando antes de colocar o código em produção.

Assim, apesar de inicialmente parecer que os testes só vão nos atrasar, a longo prazo eles nos ajudam a economizar muito tempo e esforços.

Funcionalidades indiretas

A implementação de testes no desenvolvimento de software também tem outros resultados indiretos bastante úteis. Os testes em si servem como uma documentação viva do funcionamento da sua aplicação. Ela cresce e se modifica com o tempo, e seus testes acompanham e descrevem essa evolução. Quando uma pessoa nova na equipe precisa se ambientar com o sistema, pode usar o código de testes para compreender como ele funciona. Além disso, começar o código pelos testes nos obriga a refletir sobre as funcionalidades antes de começar a escrever. Isso serve como ponto de partida, apontando um caminho para o processo de implementação do código de uma nova funcionalidade.

Uma noção incorreta a respeito de testes é a de que eles podem eliminar bugs e tornam testes de Garantia de Qualidade (Quality assurance - QA) desnecessários. Na realidade, eles apenas tornam o trabalho de QA mais rápido, pois ajudam a identificar problemas e encontrar a solução para eles de forma muito mais ágil.

Conclusão

Afinal, todo mundo deveria estar fazendo testes? Isso vai depender do tipo de projeto no qual você está trabalhando (e da pessoa que toma as decisões). Projetos que tem intenção de serem duradouros, tendem a se beneficiar mais de testes automatizados. No entanto, pessoalmente, acredito que para a maioria das pessoas e dos sistemas nos quais estamos trabalhando, testes são sempre muito bem vindos! :)

Referências

Foto de perfil do autor
André Kanamura

Dev na Campus Code