Llenado de datos para productos basados en Jazz

Cree grandes volúmenes de datos de prueba usando Rational Performance Tester, Jazz Foundation Services y el complemento Poster de Mozilla Firefox

Los preparativos para probar un gran volumen de datos constituyen una parte importante de las pruebas de rendimiento. Sin embargo, existen pocos métodos eficaces para hacer bien este trabajo, especialmente en las primeras etapas del ciclo de desarrollo de software. El software basado en la tecnología IBM® Jazz™ se basa en una arquitectura RESTful y orientada a recursos donde es posible implementar operaciones de creación, lectura, actualización y eliminación usando protocolos HTTP. En este artículo se explica un método que combina IBM® Rational® Performance Tester y el complemento Poster de Mozilla Firefox. Este método es independiente de los cambios de compilación de los productos y de los cambios de interfaz de las aplicaciones y ofrece un mejor rendimiento de pruebas que otros enfoques actuales.

Li Ping Li, Staff Software Engineer, IBM

photo of Li Ping LiLi Ping Li es performance test engineer para el sistema Rational en el IBM China Development Lab, donde se ocupa de productos basados en IBM Jazz, especialmente con IBM Rational Requirements Composer, Rational Quality Manager y Rational Project Conductor. Actualmente trabaja con pruebas de referencia de rendimiento de productos basados en Jazz.



Dan Liu, Software Engineer, IBM  

author photoDan Liu tiene dos años de experiencia como system tester para el software IBM Rational. En la actualidad, Liu se especializa en pruebas de rendimiento de productos basados en Jazz y en la automatización de pruebas.



Zhao Hui Ding, Contractor, The Symbio Group

photo of Zhao Hui DingZhao Hui Ding es integrante del equipo de pruebas de rendimiento de sistemas en el IBM China Development Lab. Trabaja principalmente con pruebas de rendimiento de productos basados en Jazz.



29-07-2011

Comparación de métodos de generación de datos de prueba

Para realizar una prueba de rendimiento, es necesario identificar métodos eficaces a fin de crear grandes volúmenes de datos para su prueba durante las primeras etapas de desarrollo de software. Los volúmenes de datos específicos deben simular un entorno de producto real, y el tamaño de los datos debe variar (desde un tamaño pequeño hasta uno grande) para poder detectar el cuello de botella de rendimiento del producto objeto de la prueba.

La tabla 1 contiene ejemplos de definiciones de volúmenes de datos de IBM®Rational®Quality Manager.

Tabla 1. Definiciones de volúmenes de datos de Rational Quality Manager
ItemTypeBajoMedioAlto
WorkItem68881906831048
TestCase3964915217701
CategoryType101010
Category000
TestPlan101148196
TestExecutionRecord239426664661
ExecutionResult001
TestPhase202296392
AssetConfiguration4044501363
RequirementItem000
TestEnvironment270270553
LabResource60121562410
Request49711306211256
Reservation95433554116

Vaughn Rokosz, un evaluador de pruebas de verificación de sistemas IBM Rational, ha definido los siguientes enfoques para agregar datos de prueba a un sistema:

  • Use herramientas de automatización de pruebas, como IBM® Rational® Performance Tester o IBM® Rational® Functional Tester, para llenar el entorno de prueba simulando actividades de usuario.
  • Use API públicas o herramientas de línea de comandos para desarrollar herramientas de llenado especializadas.
  • Importe datos de prueba de los clientes si la aplicación soporta la importación.
  • Use las herramientas de carga masiva incluidas en las bases de datos relacionales para inicializar tablas de bases de datos.
  • Use API internas para desarrollar herramientas de llenado especializadas.

La implementación de algunos de estos enfoques para agregar datos de prueba a un sistema puede representar un desafío. Por ejemplo, las aplicaciones basadas en Jazz Foundation Services acceden a los repositorios a través de servicios de almacenamiento. Con este modelo de datos lógicos, resulta poco práctico cargar tablas de bases de datos de forma directa usando las herramientas de carga masiva descriptas en el cuarto método.

Otro desafío puede presentarse al principio del ciclo de desarrollo de la aplicación. Por lo general, la interfaz de usuario no está disponible o es inestable. Por ello es que los métodos 1 y 3, al estar basados en operaciones del cliente, resultan impracticables. Incluso si la aplicación es lo suficientemente estable, estos métodos requieren mucho tiempo.

Para abordar estos desafíos, es necesario desarrollar un método de llenado de datos usando la API en comparación con el código de compilación actual. El riesgo de este método es que la adaptación a los cambios de compilación puede representar un gran esfuerzo. Para hacer frente a este problema, es necesario contar con una herramienta eficaz que trabaje independientemente de los cambios de compilación.


Descubra el valor de Jazz Foundation Services

Las aplicaciones basadas en la tecnología de IBM® Jazz™ son consideradas extensiones de los servicios Jazz Foundation Services, que, a su vez, están basados en una Transferencia de estado representacional, o especificaciones RESTful, y en una arquitectura orientada a recursos. Cada aplicación proporciona servicios y datos como una API REST. En estos casos, los datos son expuestos como recursos direccionables, especialmente como un URI. Por otro lado, también funciona como una aplicación de servicios web que proporciona una interfaz de creación, lectura, actualización y eliminación para sus recursos. Estas interfaces son implementadas por los métodos POST, GET, UPDATE y DELETE dentro del protocolo HTTP. Esta arquitectura poco acoplada permite que diferentes productos se integren entre sí y que los clientes se comuniquen con el Jazz Team Server de la misma manera, sin importar cómo se implementa el servicio.

Figura 1. Jazz Foundation Services
Jazz Foundation Services

Llenado de datos con la API REST

Sobre la base de la API REST incluida en las aplicaciones basadas en Jazz, proponemos un método de llenado de datos que aprovecha las ventajas de los métodos 1 y 2, descriptos en la primera sección. Para ilustrar cómo se pone en práctica este método, se puede usar Rational Quality Manager como servidor de destino.

En este ejercicio, el objetivo de llenado de datos consiste en crear 20 planes de prueba y agregar 1000 casos de prueba a cada plan. Otras herramientas que se pueden usar para ilustrar este método son Rational Performance Tester, el explorador Firefox y el complemento Poster de Firefox.

A los fines de este ejercicio, las autoras suponen que usted puede crear una plantilla que pueda ser verificada ante una entrada de prueba de verificación de sistemas (SVT). El archivo de la plantilla de este plan de prueba de ejemplo se llama testplan_001 y contiene un caso de prueba: testcase_001.

Obtención de una plantilla de recursos mediante la API REST

Algunas aplicaciones proporcionan la API REST durante la instalación. Por ejemplo, es posible obtener una plantilla XML con varios recursos de la carpeta Samples (Muestras), que es el directorio de instalación. También se puede acceder al esquema XML del plan de prueba a través de URI:
https://<RQMServer>:<Port>/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manager/testplan?metadata=schema

Si usted no cuenta con esta información, puede obtener la plantilla XML del recurso de destino a través de la API REST en tanto y en cuanto exista un recurso de destino en el repositorio. También debe asegurarse de que el URI de este recurso esté disponible. El URI se puede obtener a través de uno de los siguientes métodos:

  • Documento API obtenido de un desarrollador
  • Vínculo a información que esté del lado cliente
  • Datos de protocolo HTTP grabados por Rational Performance Tester para obtener el URI del recurso específico

Una vez que consiga el URI, podrá usarlo para obtener la plantilla de recursos de cada tipo de registro. Esta plantilla es independiente de los cambios de compilación del producto ya que se la recupera del repositorio actual. A continuación se incluye un ejemplo del caso de prueba del tipo de registro en Rational Quality Manager:

  1. Use el URI para obtener la lista de casos de prueba en el explorador.
Figura 2. Obtención de la lista de casos de prueba
Obtención de la lista de casos de prueba
  1. En los resultados, seleccione testcase_001. Para abrirlo, haga clic con el botón derecho en la página y seleccione View (Ver) > Page source (Origen de página). Como se puede ver en la figura 3, es posible obtener el código de origen de este registro de caso de prueba en formato XML; guarde este código de página en un archivo llamado testcase_001.xml que será el archivo de plantilla de recursos del registro de caso de prueba.
Figura 3. Código de la plantilla XML de testcase_001
Código de la plantilla XML de testcase_001

Haga clic para ver una versión ampliada de la figura 3.

  1. Puede seguir los mismos pasos para obtener el archivo de plantilla XML del plan de prueba: testplan_001.xml.

Registro de operaciones con el complemento Poster de Firefox

Poster es un complemento del explorador Mozilla Firefox que puede simular la interacción entre una aplicación y un servidor HTTP. Es posible enviar y recibir contenidos de un URI usando las acciones HTTP estándar: PUT, POST, GET o DELETE.

Para usar Rational Performance Tester y el complemento Poster para crear el repositorio de datos de manera automática, siga estos pasos:

  1. Inicie el grabador de HTTP de Rational Performance Tester. Firefox con su complemento Poster se abre y graba todas las solicitudes y respuestas enviadas y recibidas por el explorador.
  2. Si se conecta al servidor Jazz por primera vez, se le solicitará que inicie sesión. Poster, al ejecutarse como complemento de Firefox, comparte la sesión autenticada del inicio con el servidor Jazz. Rational Performance Tester puede grabar y administrar esta sesión de manera automática.
  3. Verifique las operaciones de recursos realizadas por Poster. Revise las siguientes áreas en el diálogo de Poster (ver figura 4):
    • URL: Asegúrese de que se corresponda con el recurso con el que desea interactuar.
    • Action (Acción): Seleccione GET/POST/PUT para recuperar, agregar o modificar contenido, respectivamente.
    • Content to send (Contenido a enviar):Se usa con POST/PUT cuando se puede agregar o modificar contenido. En este paso, es necesario cambiar un valor de elemento, como el identificador o el título, para que los resultados sean correctos y fáciles de verificar.
  4. Haga clic en Go (Ir) para enviar la solicitud al servidor. Si aparece un código de respuesta 201, un nuevo código fue creado por la acción POST. Si aparece un código de respuesta 200, el recurso fue modificado por la acción PUT.
Figura 4. Uso del complemento Poster para generar testcase_001
Uso del complemento Poster para generar testcase_001

Al usar Rational Performance Tester y Poster para grabar las operaciones mencionadas anteriormente, se ha generado un script de prueba que simula el escenario de nuestro ejemplo. Observe los nombres de página del script de prueba de Rational Performance Tester resaltados en amarillo en la figura 5:

  1. Login: inicie sesión
  2. Create testplan: cree un plan de prueba (POST: Poster)
  3. Gest testplan: obtenga el nuevo plan de prueba creado (GET: Poster o explorador)
  4. Create testcase: cree un caso de prueba (POST: Poster)
  5. Modify testplan: agregue el nuevo caso de prueba creado al plan de prueba (PUT: Poster)

Edición del script de prueba

Al editar scripts de prueba, es necesario editar estos elementos (figura 5) para incorporar el grupo de datos, el código personalizado y la referencia de Rational Performance Tester, así como todas las demás funciones que puedan usarse.

  1. Agregue un bucle o realice una programación para generar grandes volúmenes de datos.
  2. Observe el ejemplo de bucle de la figura 5. Puede generar 20 planes de prueba con 1000 casos de prueba cada uno.
  3. Ingrese valores en el URI de la solicitud o contenido de datos.
  4. El script es independiente del tipo de recurso. Es posible reemplazar el URI con otros tipos de recursos para generar recursos variados. También se puede reemplazar la ID de recurso para generar recursos con diferentes ID. Si desea que el recurso sea único, edite el título, la descripción y otros elementos del recurso. En el panel derecho de la figura 5 se puede observar un ejemplo.
  5. Cree una correlación de datos para dar soporte a la relación de recursos.
Figura 5. Edición del script de prueba
Edición del script de prueba

Haga clic para ver una versión ampliada de la figura 5.

En la figura 5, observe el código personalizado de ModifyCase y de ModifyPlan, que hace posible que cada plan de prueba tenga 1000 casos de prueba. En cada contenido de datos XML del plan de prueba, hay un caso de prueba vinculado con un elemento XML agregado que se muestra como test case template (plantilla de caso de prueba) en la figura 6.

El código personalizado de ModifyCase usa test case template como el parámetro de entrada para generar el documento 1000 test cases XML. Sus datos de salida se combinarán con un documento XML del plan de prueba que es recuperado de la solicitud get testplan por el código personalizado de ModifyPlan para generar un plan de prueba modificado. El código se combina con los documentos XML; observe el diagrama de flujo de cómo se combina el archivo XML en la figura 6. La flexible configuración de argumentos de entrada en Rational Performance Tester hace posible que el contenido del recurso de destino sea independiente.

Figura 6. Creación de una relación de recursos con código personalizado y correlación de datos
Creación de una relación de recursos con código personalizado y correlación de datos

Resumen

Este método de generación de datos puede llenar automáticamente datos independientes del entorno de desarrollo y de la interfaz de aplicación. Como este método es independiente de los cambios de compilación, lo único que se necesita para su implementación la API REST del producto. Asimismo, como este método funciona directamente en los recursos del servidor a través de la API, su rendimiento es superior al de los otros enfoques descriptos en la primera sección. Por ejemplo, con este método es posible llenar 1000 recursos de Rational Requirement Composer en 4 minutos. Si se hubiera usado uno de los otros enfoques de carga, el proceso habría tardado más de 1 hora.

Como los servicios RESTful y Jazz se han vuelto populares en el desarrollo de aplicaciones, el método que se analizó en este artículo es valioso no solo para el campo de las pruebas, sino también para otras etapas del ciclo de desarrollo de las aplicaciones.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=485073
ArticleTitle=Llenado de datos para productos basados en Jazz
publish-date=07292011