Blog de Antonio Manuel Muñiz

Desarrollo, Ingeniería y Calidad del Software

Archivos mensuales: junio 2008

Pruebas con TestNG: ordenando nuestras pruebas

TestNG es una herramienta de ejecución (y reporte de resultado) de pruebas unitarias. Esta herramienta ofrece una serie de opciones de configuración que permiten un control exhaustivo sobre la ejecución de las pruebas. En ocasiones necesitamos que las pruebas se ejecuten en un cierto orden, primero la carga de contenidos, recuperación, seguido de actualización de los mismos y por último borrado. Estas operaciones claramente requieren orden en su ejecución. JUnit, herramienta por excelencia para ejecución de pruebas unitarias, no ofrece ninguna opción al tester para mantener este orden. Vamos a ver como hacerlo con TestNG y como integrarlo en un proyecto Maven:

Configurar el pom para usar el plugin de TestNG:


<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.7</version>
<scope>test</scope>
<classifier>jdk15</classifier>
</dependency>

Configurar TestNG: agruparemos nuestras pruebas en grupos lógicos en el fichero testng.xml en el directorio /src/test/config.

<groups>
<define name=”root”>
<include name=”creacion” />
<include name=”recuperacion” />
<include name=”actualizacion” />
<include name=”borrado” />
</define>
<run>
<include name=”root” />
</run>
</groups>

Anotaciones en las clases de test: mediante anotaciones (Java 1.5) indicaremos a que grupos pertenece cada test y de qué grupos depende se ejecución.

@Test(groups = { "recuperacion", "root" }, dependsOnGroups = { "creacion" } )
public void recuperaEntidad1() {
...

Con esta anotación indicamos a TestNG que ejecute esta prueba despues de ejecutar todas las pruebas que pertenecen al grupo “creacion”.

Si queremos agrupar los reportes de las pruebas en un maven site podemos usar el plugin “maven-surefire-report”.
Aquí hay un pom.xml básico y un testng.xml de ejemplo.

Además del orden de las pruebas hay otros aspectos que típicamente se debe plantear un tester, como la decisión de usar una base de datos en ficheros para las pruebas o, por el contrario, usar la base de datos de desarrollo (base de datos real de la aplicación probada). Esta decisión depende en gran parte del tipo de proyecto. Si se trata de un proyecto en cuyo entorno de despliegue/producción disponemos de una base de datos contra la que podemos hacer las pruebas sin ningún tipo de restricción (tenemos permisos para hacer cualquier cosa), entonces lo mejor es hacer las pruebas contra la base de datos real, de esta forma probamos, además del funcionamiento “unitario” de nuestra aplicación, el link con la base de datos. En caso contrario, tenemos restricciones importantes sobre la base de datos, entonces ejecutaremos las pruebas sobre una base de datos en ficheros o memoria.

QA&Test 2008

Del 29 al 31 de Octubre se celebra en Bilbao uno de los eventos más importantes en España sobre Quality Assurance. Aún esta por confirmar el programa de QA&Test 2008, pero algunos de los temas que se tratarán son, entre otros:

  • Aseguramiento de la calidad de los procesos y mediciones de calidad productos y procesos
  • Automatización de las pruebas
  • Generación automatizada de pruebas
  • Implementación  Suite de herramientas en el ciclo de vida del desarrollo del producto
  • Modelos de madurez en procesos de testing
  • Testing de carga y rendimiento
  • Testing de integración y unidad
  • Trabajo en equipo dentro de los equipos de Test

Aún sin conocer el programa concreto estoy seguro que el congreso será más que interesante. Espero tener tiempo para asistir.

Encuentro Ecosistemas Software

El proximo Jueves 12 de Junio será la fecha del primer encuentro de personas interesadas en el mundo de los ecosistemas software. La desconferencia, como la ha bautizado Manuel Recena, será un punto de intercambio de información, visiones, experiencia en torno al término Ecosistema Software. El encuentro se ha gestado en el seno del grupo dedicado a este tema.

Espero con impaciencia el día D, por supuesto para aportar todo lo posible, pero también para aprender. Si todos los días se aprende algo, imagina en este.

Acuerdo entre GMV y eyeOS

Hace ya casi un año comencé a trabajar en GMV. Aunque mi experiencia se centraba en aplicaciones Java, el primer proyecto al que me incorporé se basaba en una plataforma PHP, durante las primeras semanas afronté la curva de aprendizaje del lenguaje y sobre todo de adaptación a la plataforma eyeOS. Quién me iba a decir entonces que un año después tendría la posibilidad de trabajar codo a codo con los creadores de eyeOS, pues si, ha sucedido. GMV y eyeOS han llegado a un acuerdo de colaboración profesional, este acuerdo trae consigo toda una lluvia de ideas en GMV, hay mucho trabajo por delante y muchas ganas de hacerlo. Seguro que dentro de poco habrá nuevas noticias.