Por que usar phpunit quando testes manuais tradicionais podem ser usados

14

Quando faço um aplicativo Web, testo meu trabalho no navegador para ver se recebo algum erro e os corrijo. Criei aplicativos complexos e o teste dessa maneira foi fácil e rápido. Eu assisti muitos vídeos no youtube sobre phpunit e não consigo encontrar um objetivo para isso. Por que essa biblioteca é útil? O phpunit é mais para o php framworks como cakephp ou zend? Eu não uso qualquer quadro apenas php núcleo. O phpunit seria útil para mim? Se sim, como?

Também existe o xdebug, mas não tenho certeza se isso está relacionado.

Sarmen B.
fonte
5
Quanto tempo leva para você verificar novamente um aplicativo complexo em todos os cantos?
@ user1249, o phpUnit ainda não pode executar testes funcionais automatizados. Faz apenas testes de unidade automatizados.
Pacerier 30/07/2015

Respostas:

12

O phpunit seria útil para mim? Se sim, como?

Sim definitivamente.

O phpunit pertence à família das bibliotecas de teste do xUnit . Você usa essas bibliotecas para criar testes executáveis ​​automaticamente que verificam o comportamento do seu aplicativo. Isso é importante para garantir, entre outros, que suas alterações não quebrem a funcionalidade existente.

Listando todos os motivos dos testes automatizados, os vários tipos e tecnologias seriam demais. Confira os seguintes links para ler sobre:

BenR
fonte
ironicamente, o primeiro elo da O'Reilly 404'd
Félix Gagnon-Grenier
6

Digamos que você desejasse testar seu aplicativo manualmente toda vez que o implantasse. Como você faria isso?

Bem, para começar, você pode fazer uma lista de todas as coisas que deseja testar, para não esquecer de testar algo mais tarde. Em seguida, você provavelmente escreveria as etapas de cada teste para garantir que você as executasse da mesma maneira todas as vezes. Se você não certificou-se de que o processo de teste usado fosse consistente, seus resultados não seriam consistentes.

Portanto, agora que você tem a lista de testes que precisa executar, abra o navegador, leia as etapas do primeiro teste, execute-as e anote o resultado. Você repetiria esse processo para cada teste em sua lista.

O número de testes que você realiza continuará a crescer à medida que seu aplicativo cresce e à medida que você encontra novos bugs. Obviamente, você estaria limitado a executar esses testes na velocidade humana, tornando-os bastante lentos.

A ironia aqui é que, ao percorrer mecanicamente uma lista de operações, você está computando. Você está fazendo isso muito mais devagar do que, digamos, um computador faria.

É por isso que, entre muitas outras boas razões, escrevemos testes de unidade: eles permitem que o computador faça a computação para que você não precise.

Posso executar um conjunto abrangente de testes de unidade com rapidez suficiente para usá-lo com frequência durante o desenvolvimento, não apenas uma vez por semana antes da implantação. Isso me permite detectar erros mais rapidamente, economizando tempo e dinheiro.

Posso até escrever testes que prevêem o comportamento do sistema e depois escrever esse comportamento (que eu já sei que está correto porque acabei de testá-lo), um processo conhecido como Desenvolvimento Orientado a Testes.

Rein Henrichs
fonte
5

O teste manual (ou seja, clicar no aplicativo no navegador) é chamado de teste funcional. Teste funcional e teste de unidade são dois métodos diferentes usados ​​no controle de qualidade. Por que você acha que não pode usar os dois?

O teste de unidade é usado para testar se o seu código está funcionando conforme o esperado (por exemplo, se o seu serviço da Web manipular o erro adequadamente ou se retornar os resultados conforme o esperado).

Quando você clica no seu aplicativo, está testando a funcionalidade do seu aplicativo.

O phpunit seria útil para mim? Se sim, como?

O teste de unidade tem muitos benefícios - pode ser uma ferramenta muito útil ao refatorar, porque você pode confirmar que o código está funcionando conforme o esperado. Além disso, quando alguém está lendo seu código, pode ser muito útil ver o uso pretendido do código nos testes de unidade.

Christian P
fonte
Testes de unidade também testam o comportamento. Você está criando uma falsa dicotomia.
Rein Henrichs
@ReinHenrichs, o teste funcional é feito pelo Selenium, não pelo PHPUnit.
Pacerier 30/07/2015
1

Sim!

Sim. Absolutamente sim.

Na verdade, isso precisa de qualificação. Estruturas de teste de unidade como PHPunit são úteis se você estiver escrevendo e mantendo um aplicativo que outras pessoas devem usar.

As razões pelas quais o teste de unidade é útil incluem

  • Teste de regressão para erros específicos que você expôs e

  • A execução de testes de unidade é muito mais rápida que o teste manual e, portanto, pode ser muito mais completa.

Na empresa em que trabalho, escrevemos testes de unidade antes de escrever o código que passa por eles. Isso nos ajuda a produzir designs saudáveis ​​e testáveis ​​(porque precisamos pensar no que escreveremos antes de fazê-lo!) E fornece uma maneira fácil de afirmar que nosso código atende aos requisitos do usuário.


fonte