Negocio

Teste de unidade manual versus automatizado

Teste para garantir

A qualidade do produto é extremamente importante hoje em dia. Para alguns, é o trabalho um. E porque não? Os consumidores são sofisticados. Eles podem dizer uma porcaria quando a vêem. Por exemplo, as empresas compram software que apresenta problemas logo que sai da caixa? Eles irão implantar software que é conhecido por ter bugs? Ou eles usarão um software que falha em momentos inoportunos? Claramente, eles não vão. Então, como os desenvolvedores de software confirmam que seus produtos atendem às expectativas? Como eles garantem que seus produtos resistirão ao uso do cliente? Eles empregam estratégias de teste, é claro. E o que geralmente inicia as coisas é o teste de unidade.

O que é teste de unidade?

O teste de unidade é o processo de testar o código de programação no nível mais baixo, na maioria das vezes o método, procedimento ou função. Daí o nome teste de unidade. O processo considera cada unidade como uma entidade independente e a testa com isso em mente. A ideia é que, se as peças funcionarem adequadamente por conta própria, elas terão uma chance melhor de trabalhar juntas conforme o esperado. Se você pensar sobre isso, você monta e testa seu sistema de entretenimento doméstico da mesma maneira. Você não conecta tudo e depois ora. Você monta cada peça e, em seguida, testa. Em cada etapa, você adiciona um novo componente e testa se ele funciona. No final, você acaba com um sistema completo e funcional. O teste de unidade funciona de maneira semelhante.

O que é teste de unidade manual?

O teste de unidade manual é um teste de unidade executado manualmente. Em outras palavras, testes realizados por pessoas. Você não vê muito esse tipo de teste de unidade atualmente, pois ele apresenta algumas desvantagens significativas. Eles são os seguintes:

  • É caro – você paga salários cada vez que os testes são executados. Estes somam-se rapidamente. Pense nisso como uma estratégia de repartição.
  • É demorado – leva tempo para executar os testes, especialmente se os testes são executados toda vez que uma alteração é feita, o que é típico. Imagine executar uma série de testes de unidade logo após cada construção. Isso pode ser várias vezes ao dia e levar horas por iteração.
  • É difícil isolar cada unidade – normalmente, as unidades funcionam juntas em um pedaço de software, portanto, testar uma unidade normalmente testa várias. Isso dificulta a determinação da causa raiz do problema. Pense nisso como tentar determinar os sabores sutis de uma xícara de chá. Se você provasse cada um por si, não seria um problema, mas juntos?

O que é teste de unidade automatizado?

O teste de unidade automatizado executa o processo de teste de unidade sem intervenção humana. E não do lado da criação, isso ainda é feito por pessoas, mas do lado da execução. Scripts (Bash, PowerShell e Tcl / Tk / Expects), ambientes de teste programáveis ​​(Visual Test, TestTrack) e, às vezes, código personalizado são usados ​​para realizar testes de unidade. Pense neles como os autotestes, ou testes de diagnóstico, que muitos produtos integram. Para o teste de unidade, o processo é automatizado executando-o como parte do processo de construção. Cada vez que um build é executado, esses testes são executados e garantem que nada foi quebrado pelas últimas alterações introduzidas no sistema.

Quando você usa o teste de unidade manual em vez de automatizado?

O teste de unidade automatizado é, de longe, a forma mais comum de teste de unidade usada. Na verdade, ele facilmente representa noventa por cento dos testes de unidade que existem. Mas existem algumas situações em que os testes de unidade automatizados não são a melhor escolha. Eles são os seguintes:

  • Quando a entrada real do usuário é necessária – é difícil programar as interações reais do usuário. O tempo, os erros e a aleatoriedade da verdadeira entrada do usuário são difíceis de simular no código do programa.
  • Quando a automação seria muito cara para implementar – às vezes, a unidade sendo testada é tão complexa que o código do teste de unidade consome tempo e, portanto, caro para desenvolver.
  • Quando o teste será executado apenas uma vez, ou um pequeno número de vezes – esta é uma variação do ponto anterior. Um dos motivos pelos quais o teste de unidade automatizado é tão atraente é que ele é escrito uma vez e executado várias vezes. Mas, conforme você se aproxima do lançamento, o número de tempos de execução diminui, tornando o ROI menos significativo.

Resumo da lição

Para recapitular, o teste de unidade é o processo de teste no nível mais baixo. O teste de unidade manual é um teste de unidade executado por pessoas. O teste de unidade automatizado é um teste de unidade executado sem intervenção humana. Você usaria o teste de unidade manual em vez de automatizado quando a entrada real do usuário for necessária, quando a automação for muito cara ou quando o teste de unidade for executado um pequeno número de vezes.