Por que testar é importante?

Por que testar é importante?

Olá pessoal. Hoje iniciaremos mais uma śerie aqui no Blog da Agência F12 onde falaremos sobre Teste de Software. No post de hoje veremos por que testar é importante e por que você, se não escreve testes, deveria reconsiderar o quanto antes sua decisão!

Testar é garantir a qualidade do produto desenvolvido. Não só garantir, mas sempre poder afirmar que ele se mantém saudável e em pleno funcionamento. Todos nós cometemos erros, afinal somos humanos e humanos cometem erros todo o tempo. Dessa forma, é inevitável que bugs apareçam e que a medida com que nosso software evolui, eles sejam mais difíceis de serem corrigidos e controlados. Garantir que nossa aplicação permaneça 100% sem bugs é quase utópico. Falar de uma aplicação sem bugs é falar de uma aplicação que não evolui, que não cresce, que não escala.

A real necessidade então de se realizar testes é a garantia de qualidade, identificando erros e bugs de um sistema logo no início do desenvolvimento de features, ajudando a melhorar a confiança no produto, sua qualidade e sua documentação. Ao desenvolver novos módulos e funcionalidades, como garantir que tudo o que existia antes ainda funciona sem bugs e de forma plena se você não possui testes escritos? Além disso, também vale dizer que escrever um teste que utiliza seu código também é uma forma de documentar, já que ao ler o teste, você está “lendo como se utiliza o seu software”. Testes também podem ajudar em suas métricas. Como medir performance, escalabilidade, confiança, disponibilidade sem os seus respectivos testes?

O mais importante é definir que testar é essencial para fidelizar seus clientes. A satisfação e a confiança com que seu cliente utiliza sua aplicação é o principal fator pelo qual o mantém a utilizando e sem testes é difícil manter um software que evolui com alto nível de qualidade.

 

Tipos de testes

Temos inúmeros tipos de testes que normalmente se dividem entre testes funcionais e não funcionais. Dentro dos testes funcionais, nos preocupamos com a aplicação em si a nível de código, realizando testes unitários, de integração, de interface, etc. Já nos testes não funcionais, nos preocupamos mais com o controle de qualidade, testando nossa documentação, nossa segurança, performance, escalabilidade, etc. Perceba que essa divisão é muito similar à divisão entre requisitos funcionais e não funcionais, auxiliando assim a direcionar nosso foco e priorizar o que é mais importante de ser testado.

A figura abaixo ilustra muito bem um dilema comum quando se inicia na prática de testes.

 

 

pirâmide de testes

 

Perceba que a medida que subimos na pirâmide nossos testes são mais caros de serem executados, assim quanto mais alto nível um teste é feito mais caro será de escrevê-lo e também para executá-lo. Já quando descemos mais a nível de métodos, módulos e classes, com os famosos testes unitários, fica mais barato executar nossos testes. Aqui não há regra. Você deve direcionar seus recursos para aquilo que é o cerne de sua aplicação. Por exemplo, caso você possua uma single page application o ideal seria focar mais em testes de interface mesmo que mais caros, já que o front-end é o ponto mais importante de sua aplicação. Já se você trabalha com back-end com muito processamento em background e serviços de mais baixo nível, nesse caso testes unitários talvez sejam mais interessantes.

 

Em nossa série, daremos foco ao teste unitário, visto que é o tipo de teste mais popular e que toda aplicação deveria ter. Como possuem baixo custo como visto, cobrir toda a aplicação com testes unitários já nos trás muito ganho, garantindo qualidade a nível de código e permitindo a evolução de nosso software de maneira segura. Por isso, não perca nossa série onde já veremos na semana que vem como iniciar com testes utilizando Ruby + Rspec!

 

Espero ver você aqui na semana que vem. Até mais!

 

Algumas fontes utilizadas nesse post

Sobre nós

Vivemos em uma era onde a tecnologia se faz presente em todo setor corporativo, independente do ramo de atividade. Surgimos visando esta crescente demanda.

Nossos contatos

+55 (11) 2528 7798
+55 (11) 98081 4290