¿Por qué usar phpunit cuando se pueden usar las pruebas manuales tradicionales?

14

Cuando hago una aplicación web, pruebo mi trabajo en el navegador para ver si recibo algún error y lo soluciono. He realizado aplicaciones complejas y probar de esta manera ha sido fácil y rápido. He visto muchos videos en youtube sobre phpunit y no puedo encontrar un propósito para ello. ¿Por qué es útil esta biblioteca? ¿Es phpunit más para php framworks como cakephp o zend? No uso ningún framework solo php central. ¿Sería o puede phpunit útil para mí? Si es así, ¿cómo?

También hay xdebug, pero no estoy seguro de si se relaciona.

Sarmen B.
fuente
55
¿Cuánto tiempo le toma volver a verificar una aplicación compleja en cada esquina?
@ user1249, phpUnit todavía no puede realizar pruebas funcionales automatizadas. Solo realiza pruebas unitarias automatizadas.
Pacerier

Respuestas:

12

¿Sería o puede phpunit útil para mí? Si es así, ¿cómo?

Sí definitivamente.

phpunit pertenece a la familia de bibliotecas de prueba xUnit . Utiliza estas bibliotecas para crear pruebas ejecutables automáticamente que verifican el comportamiento de tu aplicación. Esto es importante para garantizar, entre otros, que sus cambios no rompan la funcionalidad existente.

Enumerar todas las razones para las pruebas automatizadas, los diversos tipos y tecnologías serían demasiado. Consulte los siguientes enlaces para leer sobre:

BenR
fuente
Irónicamente, el primer enlace de o'reilly 404'd
Félix Gagnon-Grenier
6

Supongamos que desea probar manualmente su aplicación cada vez que la implementa. ¿Cómo harías para hacer eso?

Bueno, para empezar, puede hacer una lista de todas las cosas que desea probar para no olvidarse de probar algo más adelante. Entonces, probablemente escribiría los pasos para cada prueba para asegurarse de que los hizo de la misma manera cada vez. Si no se aseguró de que el proceso de prueba que utilizó fuera consistente, sus resultados no serían consistentes.

Entonces, ahora que tiene la lista de pruebas que necesita realizar, debe abrir su navegador, leer los primeros pasos de la prueba, realizarlos y anotar el resultado. Repetiría este proceso para cada prueba en su lista.

La cantidad de pruebas que realiza continuará creciendo a medida que su aplicación crezca y a medida que encuentre nuevos errores. Por supuesto, estaría limitado a realizar estas pruebas a velocidad humana, lo que las haría bastante lentas.

La ironía aquí es que al recorrer mecánicamente una lista de operaciones, estás computando. Lo estás haciendo mucho más lentamente que, por ejemplo, una computadora.

Esta, entre muchas otras buenas razones, es la razón por la que escribimos pruebas unitarias: permiten que la computadora haga la computación para que no tenga que hacerlo.

Puedo ejecutar un conjunto completo de pruebas unitarias lo suficientemente rápido como para usarlo con frecuencia durante el desarrollo, no solo una vez por semana antes de la implementación. Esto me permite detectar errores más rápidamente, ahorrándome tiempo y dinero.

Incluso puedo escribir pruebas que predicen el comportamiento del sistema y luego escribir ese comportamiento (que ya sé que es correcto porque lo acabo de probar), un proceso conocido como Test Driven Development.

Rein Henrichs
fuente
5

Las pruebas manuales (es decir, hacer clic en la aplicación en el navegador) en realidad se llaman pruebas funcionales. Las pruebas funcionales y las pruebas unitarias son dos métodos diferentes utilizados en el control de calidad. ¿Por qué crees que no puedes usarlos a ambos?

Las pruebas unitarias se utilizan para probar si su código funciona como se esperaba (por ejemplo, si su servicio web maneja el error de manera adecuada o si devuelve los resultados como se esperaba).

Cuando hace clic en su aplicación, está probando la funcionalidad de su aplicación.

¿Sería o puede phpunit útil para mí? Si es así, ¿cómo?

Las pruebas unitarias tienen muchos beneficios: puede ser una herramienta muy útil cuando se refactoriza porque puede confirmar que el código funciona como se esperaba. Además, cuando alguien está leyendo su código, puede ser muy útil ver el uso previsto del código en las pruebas unitarias.

Christian P
fuente
Las pruebas unitarias también prueban el comportamiento. Estás creando una falsa dicotomía.
Rein Henrichs
@ReinHenrichs, las pruebas funcionales las realiza Selenium, no PHPUnit.
Pacerier
1

¡Si!

Si. Absolutamente sí.

En realidad, eso necesita calificación. Los marcos de prueba de unidad como PHPunit son útiles si está escribiendo y manteniendo una aplicación que se espera que otras personas usen.

Las razones por las cuales las pruebas unitarias son útiles incluyen

  • Pruebas de regresión para errores específicos que ha expuesto, y

  • Las pruebas unitarias en ejecución son mucho más rápidas que las pruebas manuales, por lo que pueden ser mucho más exhaustivas.

En la empresa para la que trabajo, escribimos pruebas unitarias antes de escribir el código que las pasa. Esto nos ayuda a producir diseños sanos y comprobables (¡porque tenemos que pensar en lo que escribiremos antes de hacerlo!) Y proporciona una manera fácil de afirmar que nuestro código cumple con los requisitos del usuario.


fuente