Skip to main content
encontrar erros em código

As maiores vantagens de testes automatizados

Navegar é preciso. Testar é preciso.

Houve uma época em que o teste de software não existia, ou pelo menos não era praticado com a ênfase merecida.

Até que surgiu o Sr Myers, mais precisamente Glenford Myers. Myers publicou um livro em 1979, que é considerado a bíblia do teste de software.

É deste trabalho que extraímos a definição do que é teste de software. Conceitualmente é um processo que faz parte do desenvolvimento de qualquer aplicação — ou pelo menos deveria — e tem como principal intuito revelar falhas/bugs.

O objetivo principal é chegar a um determinado nível de qualidade. Nesta definição encontramos a palavra qualidade que é exatamente a proposta de trabalharmos com testes de software.

Quanto mais cedo identificado um problema, mais barata é a sua correção.

Segundo Bohem (Software Engineering Economics) o custo relativo para corrigir um defeito aumenta à medida que o estágio de desenvolvimento do software vai avançando.

Produtividade x teste de software

homem escrevendo códigos no computador

Está é uma das primeiras objeções ao pensarmos em adotar a prática de testar o nosso software.

Se pensarmos que ser produtivo é definido pela quantidade de linhas escritas então faz sentido essa objeção.

Mas, se pensarmos que a produtividade é criar linhas de código que não apresentem erros, então estamos ganhando em produtividade.

>> Leitura recomendada:
Como aplicar Scrum em um Projeto de Teste de Software?

Testes automatizados e desenvolvimento guiado a teste TDD

homem criando códigos de programaç

Testes manuais são importantes e ajudam na busca por falhas no software.

A automação dos testes vai passar a responsabilidade de verificarmos o resultado de um teste para a máquina.

Tomando um exemplo bem simples onde é feita a soma entre dois números inteiros, é esperado um valor inteiro como resposta. Em um teste não automatizado nós precisamos checar esse valor.

Com  a automação de testes nós fazemos a máquina verificar este resultado.

Testes automatizados também estão ligado a TDD. Essa prática é baseada na inversão da ordem do desenvolvimento. Primeiro é pensado a escrito do teste de software e depois, finalmente, a implementação do código.

O ciclo de desenvolvimento TDD é:

  1. Implementar um teste mais simples possível;
  2. Testar e ver ele falhar;
  3. Implementar a solução mais simples e resolver o problema;
  4. Refatorar para remover duplicidade e melhorar a solução.

Esté é o ciclo de desenvolvimento proposto pelo TDD.

Vantagens de testes automatizados e desenvolver guiado a testes

  1. A automação dos testes vai reduzir a chance de termos erros nos testes;
  2. Reduz a quantidade de esforço que seria realizado em testes manuais;
  3. Testes automatizados são reutilizados poupam recursos humanos pois você não precisará de várias pessoas para realizar um teste manual;
  4. Volume: testes automatizados permitem testar o software nos mais diversos dispositivos e cenários o que seria bem mais difícil de ser feito manualmente;
  5. Redução de custos, ganho na qualidade gerando maior retorno em relação ao investimento realizado.

Essas são vantagens significativas para o uso do teste de softwares automatizados. Testes automatizados oferecem: qualidade, redução de custos e melhor retorno sobre investimento, o ROI.

Principais ferramentas de automação de testes

diferentes tipos de alicate

O Selenium, que é a ferramenta que recomendo, fornece um conjunto de ferramentas para testes de aplicações web cross-browsers, mas não está limitada somente a aplicações web.

Versões do Selenium

Selenium IDE

Essa ferramenta é útil para agilizar a criação de testes. Permite registrar e executar as ações do usuário. Tem uma interface de fácil aprendizado, mas é apenas suportada pelo Firefox e Chrome.

Selenium 1RC

O RC é de remote control, esta versão permite testes html em vários browsers com uso de um servidor. Oferece suporte a multilinguagens:  Java, Ruby, C#, Perl, Python etc. Selenium RC executa independente do ambiente: Windows, Linux, MacOs.

Selenium 2 WebDriver

Permite controlar pelo browser a nível de SO utiliza API orientada a objetos também é capaz de fazer uso da versão anterior 1RC.

Comparada com as outras versões tem a execução mais rápida. Suporta teste de aplicações IOS/Android.

Também é multi linguagem: Java, Ruby, C#, Javascript, Perl, Objective C, PHP, Python, R.

Você pode obter mais informações de como começar com a ferramenta por aqui: Selenium Doc.

É bem fácil encontrar frameworks de teste unitários para cada uma das linguagens mais utilizadas, como Java, PHP, Python, JS e etc. em php temos o PHPUNIT que pode ser facilmente instalado via composer.

Outra ferramenta de para automação de teste é o Katalon Studio ferramenta open source que permite teste de aplicações web, apis e aplicações mobiles.

Os testes podem ser feitos via script ou pela interface gráfica facilitando usuários com menos experiência. Também possui integração com o GIT, JIRA e Slack.

A ferramenta também conta com vários plugins, uns gratuitos e outros pagos para adicionar mais recurso ao ambiente de testes.

Essas são algumas boas ferramentas para teste automatizado de software. O objetivo deste artigo é focar nas vantagens que o teste automatizado e o desenvolvimento guiado por testes pode trazer para o desenvolvimento de software.

Relembrando, quanto mais cedo erros forem encontrados mais fáceis e menos custosos serão corrigi-los.

Por hoje é isso. Até a próxima, pessoal!

As maiores vantagens de testes automatizados
5 (100%) 3 votes