En los últimos años el lenguaje de programación PHP ha experimentado una profesionalización por parte de la industria, debido principalmente, a que algunas de las empresas más importantes de internet como Facebook.com están desarrolladas en este lenguaje. Una de las partes del desarrollo en PHP que más crecimiento ha experimentado ha sido la forma de testear el código, y las distintas herramientas y metodologías que se han adaptado al ecosistema PHP. Este proyecto trata de presentar dichas herramientas, las alternativas y los problemas que se encuentran normalmente proyectos PHP.
En nuestra opinión, los acontecimientos que han revolucionado la comunidad PHP han sido un conjunto de herramientas, buenas prácticas y standards, los cuales han propiciado una comprensión unánime hacia tener probado un proyecto PHP, como prueba de ello podemos ver al estudiar el código de cualquier proyecto PHP en http://github.com. La comunidad detrás de PHP-FIG[1] está motivando a que los desarrollos en PHP sigan estándares que faciliten la modularización y reutilización de dichos componentes[2]. Bajo esta premisa de poder compartir código es necesario que el comportamiento de dichos componentes sea predecible y estable, y para ello la comunicad desarrolla testing[3] en las distintas fases del proyecto, y en distintos capas de abstracción del desarrollo (unitarios, funcionales, de integración o de aceptación).
Para ello existen herramientas como PHPUnit[4] y phpspec[5] que facilitan la tarea del testo. Los principales frameworks de la comunidad PHP como pueden ser Symfony, Laravel o Yii tienden ha implementar este tipo de estrategias, tal y como podemos ver en las separación de componentes independientes de estas librerías.
Este proyecto trata de documentar, analizar y contrastar las distintas metodologías y herramientas que han surgido en los últimos años para testear aplicaciones y desarrollos web en PHP, a través de ejemplos prácticos cuando sea posible.