Too Cool for Internet Explorer

Quality Assurance en PHP 2

Hora y Fecha: Agosto 17, 2007 @ 9:18 pm Autor: Moisés Maciá
Categorías:
386 views

Algunos apuntes rápidos sobre tecnologías que hacen que este verano esté trabajando en lugar de estar tumbado bajo una palmera sorbiendo licor de un coco con sombrilla:

Xdebug

Un depurador, perfilador y analizador de trazas para PHP con posibilidad de realizar code coverage (no me atrevo a traducirlo :)

Lo mejor de esta herramienta son los volcados de pila y variables en memoria, una auténtica gozada después de sufrir durante años los echo, los var_dump y los printr.

El tema del perfilado de código también es bastante interesante de cara a ver dónde se pierden ciclos en los scripts. En Linux se puede ver el árbol de llamadas del código con el KCacheGrind de toda la vida (viene con KDE-devel en todas las distros); para los que sufren Windows está el port WinCacheGrind, pero ya aviso que es lento y pesado a más no poder. Para OSX ni idea, imagino que habrá un port de KCacheGrind o como mínimo se podrá utilizar la instrumentación de valgrind/callgrind a pelo, no se.

También se puede integrar con Eclipse + PDT para depurar sin salir del IDE, aunque es un poco patatero todavía.

Para instalar Xdebug lo mejor es tirar de los repositorios PEAR/PECL y compilarlo. No hay paquetes para Ubuntu ni para Debian de momento.

PHPUnit

Un framework para realizar tests unitarios de manera tan sencilla que da reparo no hacerlos :)

Antes utilizaba SimpleTest pero este me gusta mucho más por la versatilidad que ofrece y el rápido desarrollo. Está completamente orientado a objetos y puede funcionar conjuntamente con Xdebug para realizar unos bonitos informes de cobertura.

PHPUnit es una herramienta sobre la que se está trabajando muy activamente. Entre las cosas interesantes que se pueden hacer (a parte de lo que he dicho) quizá destacaría el mutation testing y el test para bases de datos PHPDBUnit que es un port directo del DBUnit de Java.

Estas funcionalidades no están publicadas actualmente pero los ansiosos pueden hacer un checkout del svn de PHPUnit para empezar a hackear, están en /phpunit/branches/mutation_testing y /phpunit/branches/dbunit respectivamente.

Otra herramienta increíble que puede interactuar con PHPUnit es Selenium del que ya hablé por aquí hace un tiempo. Con estas dos joyitas se puede construir un sistema de tests de aceptación completo para aplicaciones web.

Para instalar PHPUnit, lo mejor de nuevo, es tirar de Pear porque la versión que viene empaquetada en Debian/Ubuntu es bastante antigua.

Phing

¿Habeis utilizado alguna vez Apache Ant en Java? pues Phing es lo mismito pero para PHP; guarda una cierta compatibilidad con la sintáxis de Ant pero incorporando algunos targets útiles para PHP,como por ejemplo la integración con PHPUnit :) o el acceso a Subversion.

Tampoco es que me guste mucho utilizar XML para hacer los scripts de los despliegues … porque el XML tiende a hacer las cosas complicadas imposibles, pero para las tareas habituales no se requieren más de una docena de lineas.

Para instalarlo, más Pear.




Bad Behavior has blocked 450 access attempts in the last 7 days.