Cansado de que cada vez que implementas un nueva característica al sistema, en lo más alejado algo deja de funcionar como debería? estar buscando y buscando sin poder encontrar el bug. Bueno qué tal si te comentará que existe una manera de probar todo el sistema cada vez que se implemente algo nuevo.
Phpunit es una librería casi framework que se puede ejecutar en terminal, que te permite ejecutar una serie de pruebas previamente escritas por ti mismo o por el resto de equipo de desarrollo, indicando si la totalidad de las pruebas fueron correctas y mostrando cuáles de ellas a ocurrió algo inesperado.
Eso es phpunit, aunque no es tan sencillo como solo activar una librería, requiere pericia y mucha paciencia ademas ganas de entregar sistemas de calidad. Hay que acostumbrarse a un nuevo flujo de trabajo, ya que no solo hay que cumplir con programar la nueva funcionalidad, sino que además hay que escribir las pruebas que verifiquen el nuevo còdigo.
Ahora este nueva forma de trabaja comúnmente es llamado TDD (Test driven development) para la raza, programación basada en pruebas. Lo que quiere decir, que primero hay que escribir el código que verifica la nueva funcionalidad (aserciones), la prueba, ver que efectivamente falle y posterior hacer lo posible para que pase. Repetir el proceso hasta que cubras lo mayor parte del nuevo código o los componente más importantes. No se puede hacer todo o nunca terminarías.
Phpunit se base en predicados llamados aserciones , algo como “Este método debería regresar True”, esta consulta debería regresar 2. Entonces vas escribiendo las pruebas y con un comando, puede verificar que cada una de las pruebas se cumplan, en el caso de que alguna no lo hiciera te notificara en rojo. Siendo que sabes lo que se está esperando puedes ir a esa parte del código para ver qué está ocurriendo.
Ventajas
- Tranquilidad de que con cada nuevo añadido al sistema no rompes algo más
- Un software calidad
- Menos estrés por no saber qué está mal. Sabes en segundos que esta mal
- Localizar posible fallas en el modelo de negocio por reglas anteriores. Todo se ilumina de rojo
- De alguna manera te obliga a estructurar tu nuevo código para poder validarlo más rápido.
- Puedes verificar escenarios muy concretos como que un proceso se quede en 99.99 y validar específicamente ese escenario.
- Se integra perfectamente con cakephp
Desventajas
- Consume mucho tiempo, mas del que me gustaría admitir
- La creación de las pruebas puede ser un arduo trabajo y si no se hace a conciencia puede llegar hacer muy complejo de comprender
- En casos en los que se agrega una nueva funcionalidad la cual rompe muchas pruebas Arreglar tantas luces rojas puede ser muy frustrante
Añadir nuevo comentario