Instrucciones de la herramienta: Ejecución de conjuntos de aplicaciones de prueba utilizando las herramientas de Rational PurifyPlus (Windows y UNIX)
En esta guía de la herramienta se describe la utilización de las herramientas de Rational PurifyPlus en conjuntos de aplicaciones de prueba para detectar fugas y errores de memoria potencialmente dañinos a fin de garantizar que las pruebas alcanzan un nivel de cobertura de código aceptable y para llamar la atención sobre los problemas de rendimiento.
Herramienta: Rational PurifyPlus
Relaciones
Descripción principal

Esta guía de la herramienta se aplica para su utilización tanto en sistemas Microsoft Windows como con sistemas UNIX.

Las herramientas de PurifyPlus incluyen Rational Purify, Rational PureCoverage y Rational Quantify.

icono Publicación Si desea obtener más información sobre las herramientas de PurifyPlus, lea el manual de Iniciación a de PurifyPlus (versión Windows o versión UNIX).

icono de publicación de ayuda Para obtener información paso a paso sobre la utilización de las herramientas de PurifyPlus, consulte la ayuda en línea de la herramienta.

Puede utilizar las herramientas de PurifyPlus para lo siguiente:

  • Detectar fugas y errores de memoria (programas C/C++ en Windows y UNIX). Utilice Purify para determinar fugas y errores en la aplicación que se somete a prueba.
  • Supervisar la cobertura de código (Windows y UNIX). Utilice PureCoverage para que se muestren los vacíos de la prueba y alertarle sobre las regresiones.
  • Perfilar el rendimiento (Windows y UNIX). Utilice Quantify para que le avise en caso de que nuevas incorporaciones degraden el rendimiento.

El resultado de ejecutar conjuntos de aplicaciones de prueba con PurifyPlus es código fiable y sin errores que se ejecuta con la máxima eficacia.


Pasos de la herramienta

Para implementar las pruebas utilizando herramientas de PurifyPlus debe:

1. Ejecutar el programa en Purify para recopilar errores, fugas y datos de cobertura (sólo programas C/C++) 

Purify detecta errores de tiempo de ejecución, incluidas fugas de memoria, en la aplicación que se somete a prueba y en los componentes que utiliza. Informa sobre errores de memoria como, por ejemplo, errores de límites de matriz, acceso a través de punteros pendientes, lecturas de memoria no inicializadas, errores de asignación de memoria y fugas de memoria, lo que permite resolverlos antes de que se produzcan posibles daños.  

Para empezar, incorpore Purify en los archivos make, los archivos de proceso por lotes y los scripts Perl existentes.

  • En Windows, modifique las líneas de mandatos que ejecutan el programa. <NombrePrograma>.exe
     
    Purify /SaveTextData <NombrePrograma>.exe
     

  •  
  • En UNIX, modifique la línea de enlace y compilación:
     
    % purify -logfile=<nombreArchivo> cc -g <nombre_programa>.c

El uso de la opción /SaveTextData -logfile en UNIX, hace que Purify se ejecute sin interfaz de usuario y, cuando se ejecuta el programa desde el script, envía los datos de fuga y error a un archivo de salida de texto cuando termina el programa.

Examine el archivo de salida, o bien, escriba scripts para analizarlo. Puede utilizar los mensajes de aviso y error del archivo como criterios adicionales para los resultados de la prueba.

Si ha instalado PureCoverage, puede recopilar datos de cobertura para las mismas ejecuciones añadiendo la opción /Coverage (Windows), o bien, añadiendo purecov purify (UNIX). La utilización de los datos de cobertura también le permite buscar las partes del código en las que no ha comprobado si hay errores. Para obtener más información sobre la utilización de los datos de cobertura, consulte el Paso 2 de esta Guía de la herramienta.

Nota:

  • Utilice la API de Purify para controlar la recopilación de datos de control del programa.
  • Purify también dispone de opciones de línea de mandatos que le permiten guardar datos de prueba como archivos binarios que puede examinar por medio de la interfaz gráfica de usuario de Purify; este aspecto se trata en la Guía de la herramienta "Análisis del rendimiento de tiempo de ejecución utilizando las herramientas de Rational PurifyPlus".

icono de publicación de ayuda Para obtener más información, busque los temas del índice de la ayuda en línea de Purify que tratan sobre:

  • ejecución de programas
  • mensajes de error
  • opciones
  • funciones de API
  • cómo guardar datos

2. Ejecutar el programa en PureCoverage para supervisar la cobertura de código 

PureCoverage ofrece información precisa sobre la cobertura de código tanto a nivel de función como a nivel de línea. Utilice PureCoverage con las pruebas nocturnas para garantizar que las pruebas avanzan al mismo paso que el desarrollo de código.

Para empezar, incorpore PureCoverage en los archivos make, los archivos de proceso por lotes y los scripts Perl existentes.

  • En Windows, modifique las líneas de mandatos que ejecutan el programa o el archivo de clase Java, el archivo .jar o el applet, para incluir PureCoverage:
     
    Para programas C/C++: Coverage /SaveTextData <NombrePrograma>.exe
    Para archivos de clase Java: Coverage /SaveTextData /Java Java.exe <NombreClase>.class
    Para programas de código gestionado .NET: Coverage /SaveTextData /Net <NombrePrograma>.exe
     
    El uso de la opción /SaveTextData hace que PureCoverage se ejecute sin interfaz de usuario y, cuando se ejecuta el programa desde el script, envía los datos a un archivo de salida de texto cuando termina el programa.

  •  
  • En UNIX, modifique la línea de enlace y compilación:
     
    Para programas C/C++: % purecov cc -g <nombre_programa>.c
    Para archivos de clase Java: % purecov -java java <nombre_clase>
     
    Utilice la opción -export de PureCoverage después de la salida del programa para escribir los datos de cobertura en un archivo de salida de texto.

A medida que ejecuta el código, PureCoverage registra datos sobre las líneas y las funciones que se han utilizado. Puede llamar a funciones de API de PureCoverage desde el programa para guardar datos en puntos específicos del código, o bien, puede recopilar datos sólo para ciertas rutinas. Al salir del programa, dispone de un conjunto preciso de datos en el que se indica las líneas y las funciones que ha abarcado la prueba, y las que no.

Puede fusionar datos de cobertura de varias ejecuciones o mantenerlos en archivos separados para analizar los cambios de la cobertura.

Utilice scripts para comparar los datos actuales con datos que ha recopilado de ejecuciones anteriores. Si la cobertura se desactiva, es posible que las pruebas no ejecuten nuevo código o que el nuevo código incluya un defecto que haga que no se pruebe una gran sección de código. Utilice una herramienta de prueba como, por ejemplo, Rational Robot o Rational Visual Test para escribir guiones de prueba que utilicen el nuevo código.

Nota: puede examinar archivos de datos de cobertura binarios utilizando la interfaz gráfica de usuario de PureCoverage.

icono de publicación de ayuda Para obtener más información, consulte los temas del índice de la ayuda en línea de PureCoverage que tratan sobre:

  • ejecución de programas
  • opciones
  • funciones de API
  • cómo guardar datos
  • comparación de datos

3. Ejecutar el programa en Quantify para perfilar el rendimiento 

Quantify proporciona un conjunto de datos de rendimiento preciso y completo para el programa y sus componentes, que le permite supervisar el rendimiento e identificar pronto regresiones en el ciclo de prueba y desarrollo. 

Para empezar, incorpore Quantify en los archivos make, los archivos de proceso por lotes y los scripts Perl existentes.

  • En Windows, modifique las líneas de mandatos que ejecuta el programa o el archivo de clase, el archivo .jar o el applet para incluir:
     
    Para programas C/C++: Quantify /SaveTextData <NombrePrograma>.exe
    Para archivos de clase Java: Quantify /SaveTextData /Java Java.exe <NombreClase>.class
    Para programas de código gestionado .NET: Quantify /SaveTextData /Net <NombrePrograma>.exe
     
    El uso de la opción /SaveTextData hace que Quantify se ejecute sin interfaz de usuario y, cuando se ejecuta el programa desde el script, envía los datos a un archivo de salida de texto cuando termina el programa.

  •  
  • En UNIX, modifique la línea de enlace y compilación:
     
    Para programas C/C++: % quantify cc -g <nombre_programa>.c
    Para archivos de clase Java: % quantify -java java <nombre_clase>
     
    Utilice la opción -export de Quantify después de la salida del programa para escribir l os datos de rendimiento en un archivo de salida de texto.

A medida que ejecuta el código, Quantify registra datos sobre el rendimiento del programa. Puede utilizar funciones de API para pausar y reanudar el registro de datos en cualquier momento, limitando así el perfilado de partes de código concretas. También puede guardar datos en puntos determinados de la ejecución del código, o bien, recopilar datos de rendimiento sólo para rutinas específicas. Al salir del programa, Quantify tiene un perfil preciso sobre el rendimiento.

Puede escribir scripts en los que se comparen conjuntos de datos y se informe sobre los cambios de rendimiento:

  • Las degradaciones del rendimiento pueden indicar que el código que se ha incorporado más recientemente ha ralentizado el programa. Analice los datos que ha recopilado para buscar las secciones del programa que presentan un rendimiento inadecuado.
  • Las mejoras marcadas pueden indicar que los desarrolladores han mejorado el código, o bien, que por alguna razón las pruebas no se han ejecutado en grandes secciones del código. Compruebe los datos de cobertura para ver si se siguen obteniendo los niveles de cobertura anteriores.

Nota: Quantify también puede guardar datos de prueba como archivos binarios, que se pueden examinar utilizando la interfaz gráfica de usuario de Quantify; este aspecto se trata en la Guía de la herramienta "Análisis del rendimiento de tiempo de ejecución utilizando las herramientas de Rational PurifyPlus".

Para obtener más información, busque los temas del índice de la ayuda en línea de Quantify que tratan sobre:

  • ejecución de programas
  • opciones
  • funciones de API
  • cómo guardar datos
  • comparación de datos