2008/08/21

Pruebas unitarias para aplicaciones JSF (primera parte)...


Finalmente he concluido el conjunto de pruebas unitarias realizadas a la aplicación Web que estoy desarrollando como proyecto de tesis. Por tanto, a continuación brindo un fragmento de las conclusiones obtenidas respecto a las pruebas unitarias.



. . . Si su aplicación Java es una aplicación de escritorio (standalone) el framework JUnit es suficiente para ejecutar pruebas unitarias a su aplicación. Ahora bien, si su aplicación Java correrá en un entorno Web (Servlets, JSP, JSF, etc.) usted seguramente necesitará un framework que extienda las capacidades de JUnit. Algunos de estos frameworks para pruebas unitarias de aplicaciones Web son: HTTPUnit, HTMLUnit, Seleniuum, JWebUnit y Cactus.

Finalmente, el conjunto de frameworks con los que he tratado para ejecutar pruebas unitarias a la aplicación fueron los siguientes: HTTPUnit, HTMLUnit y JWebUnit, sin obtener los resultados esperados ya que éstos únicamente sirven para pruebas en páginas estáticas HTML y lo que se busca probar son páginas JSF.

Por ello, traté seguidamente con Seleniuum el cual en primera instancia parece también no soportar aplicaciones JSF o basadas en Java y cuya configuración es compleja y excede los tiempos con los que se cuenta para concluir el proyecto de tesis.

Fue luego de varios días de búsqueda y lectura que encontré información sobre el framework Cactus.

Cactus es un framework para la realización de pruebas unitarias de aplicaciones Web, y dispone de elementos parar realizar pruebas unitarias sobre Servlets y páginas JSP. Diseñado para probar aplicaciones que siguen el patrón de arquitectura MVC. Soporta como controladores Servlets, clases Java, taglibs, filters.

Aunque Cactus por naturaleza propia no testea aplicaciones JSF, por su parte, JSFUnit sí soporta pruebas unitarias para aplicaciones JSF, ya que extiende las capacidades de Cactus.

Con los argumentos detallados anteriormente, por experiencia personal recomiendo utilizar el siguiente escenario/configuración si desea llevar a cabo pruebas unitarias en una aplicación JSF:



  1. Emplear el framework JSFUnit (el cual está basado en Cactus) realizando dichas pruebas desde el exterior del contenedor, donde, del lado del cliente se emplea una técnica habitual que consiste en implementar el protocolo HTTP en un cliente de pruebas unitarias que simula la interacción entre un usuario y el servidor Web.


  2. Asegúrese de probar al menos la correcta navegabilidad de la aplicación, la correcta instanciación/creación de objetos y/o managed beans y finalmente, la integridad y consistencia de dichos beans administrados.


  3. Si desea obtener un mejor seguimiento de los resultados de las pruebas le recomiendo utilizar un entorno de desarrollo integrado (IDE) con soporte para Java, en este renglón recomiendo el IDE Eclipse para depurar sus pruebas y así obtener los valores y posibles errores en tiempo de ejecución de su aplicación y/o pruebas unitarias.

2008/08/14

Prueba gratuita de exámen de certificación de seguridad en Java/J2EE...


Hace un tiempo encontré en el portal de SANS una prueba gratuita de un exámen de certificación en seguridad de Java/J2EE...

La prueba consta de diez preguntas (en inglés, esto podría ser el aspecto negativo para algunos) y al ir respondiendo cada una de las preguntas puede ver si su respuesta fue la correcta o no, además de que le ofrece la respuesta correcta.

Obviamente, he realizado la prueba y mis resultados no fueron óptimos (40%, es decir, 4 buenas, 6 malas). No obstante, estoy satisfecho con el rendimiento dado que NUNCA he llevado un buen curso de Java y lo que he aprendido de dicho lenguaje ha sido a base de sacrificio propio, sin nadie que me enseñe. Aún llevo dos años en el mundo Java, espero regresar dentro de dos años más y medirme nuevamente, por lo pronto les dejo el enlace a la prueba: https://portal.sans.org/ssi/java.php

Por lo pronto les dejo la imagen que avala mi calificación : ( y espero sus resultados...