Prueba de aplicaciones web y documentación

Las pruebas de software forman parte del ciclo de desarrollo y permiten verificar el buen funcionamiento/calidad de la aplicación.

Según Edsger Dijkstra, las pruebas de software pueden probar la presencia de errores pero no la ausencia de ellos.

Existen diferentes tipos de pruebas que se utilizan en cualquier desarrollo informático y por lo tanto también son aptas para las aplicaciones web. Sin embargo, dada la naturaleza particular de la web, también existen herramientas que están orientadas a la prueba, tanto de correcto funcionamiento como de carga/rendimiento, de las aplicaciones web.

Pruebas de software generales

Prácticamente en cualquier desarrollo de una aplicación, con independencia del tipo de aplicación, lenguaje y metodología durante el desarrollo se realizarán pruebas:

Pruebas unitarias
Se escribe una colección de pruebas para probar los diferentes casos de uso de cada función o módulo. Cada una de las pruebas es independiente del resto, y se pueden pasar de manera automatizada. Así, la herramienta de desarrollo puede presentar un informe al desarrollador.
Normalmente se utilizan frameworks dependientes del lenguaje, JUnit en el caso de Java o PHPUnit en PHP.
Pruebas de integración
Una vez superadas las pruebas unitarias conviene comprobar que las diferentes partes individuales funcionan bien trabajando en conjunto.
Pruebas de regresión
Verifican que no se rompe nada al añadir nuevas funcionalidades o corregir algún bug, pues es frecuente que de manera involuntaria se estén creando problemas que ya estuvieron solucionados.

Pruebas de software en aplicaciones web

En el caso de las aplicaciones web, además de las pruebas tradicionales, es necesario comprobar el funcionamiento del servidor web, SGBD, red y el conjunto del sistema. Tanto de manera funcional como realizando un test de carga para comprobar la capacidad del mismo.

En este caso, algunas herramientas básicas para el desarrollador son:

Herramientas de validación de código html/css

No conviene olvidar que en las aplicaciones web la comunicación entre el servidor y el cliente se realiza mediante HTML/CSS. Una cuestión fundamental para garantizar que el cliente va a poder representar la interfaz de la aplicación de la manera correcta es que los datos que el servidor envía sean válidos. Por ello, en cualquier aplicación web se deberá validar todo el HTML/CSS transmitido al cliente.

Para ayudar en dicha tarea se pueden utilizar diferentes validadores como el del W3C http://validator.w3.org/

Herramientas para poner a prueba el servicio

En una aplicación web es vital conocer la capacidad del sistema en cuanto a número de clientes y concurrencia de los mismos. Por ello resulta necesario simular un enjambre de clientes que ponga a prueba la aplicación para poder valorar su rendimiento, o que realice en ella ciertas operaciones que se quieren poner a prueba.

ApacheBench (comando ab) es un pequeño programa que acompaña a la distribución de Apache y permite realizar peticiones de forma repetida y concurrente para valorar el rendimiento del mismo.

Otra opción más compleja es JMeter, en este caso es posible probar aplicaciones web y también otros protocolos (ftp, ldap, jdbc, la aplicación es extensible mediante plugins). No solo se puede generar carga para el servidor y valorar el tiempo de respuesta, sino que se puede realizar un completo plan de prueba que incluya pruebas unitarias (validando la respuesta del servidor) o simulando determinado comportamiento de los usuarios.

Herramientas en el navegador

Por último, un desarrollador web también suele utilizar extensiones para el navegador (como Firebug para Firefox) que permiten inspeccionar con detalle la respuesta recibida por el agente de usuario. Mostrando todo tipo de información relativa a la red, rendimiento y elementos de la respuesta.

Más información:

Navegació