AUTOMATIZACIÓN DE CASOS DE PRUEBA CON MICROSOFT TEST MANAGER Y VISUAL STUDIO

El objetivo de este documento es explicar cómo se pueden crear casos de prueba automatizados con la ayuda de las herramientas Microsoft Visual Studio y Test Manager, y, de este modo, seguir presentando todas las posibilidades que ofrecen ambas para el trabajo de pruebas.

Paloma_RodríguezMicrosoft Visual Studio es un entorno de desarrollo integrado para sistemas operativos Windows que permite crear aplicaciones, sitios y aplicaciones web y servicios web en cualquier entorno que soporte la plataforma .NET.

Test Manager es la herramienta de gestión, diseño y ejecución de casos de prueba de Microsoft, gracias a la cual el equipo de pruebas se puede incorporar dentro del ciclo de vida de desarrollo.

Antes de la lectura de este documento, se recomienda leer el artículo “Diseño y Ejecución de Casos de Prueba con Microsoft Test Manager (MTM)”, publicado en la IX edición de QA: News, en el que se explicaban las principales características de la herramienta para la definición y ejecución de pruebas manuales y el funcionamiento básico de la misma.

1. INTRODUCCIÓN

Una vez que se sabe cómo crear y ejecutar casos de prueba y reportar y verificar los defectos con ayuda de Test Manager, el siguiente paso es la automatización. Visual Studio permite crear casos de prueba automatizados a partir de las pruebas manuales.

Las pruebas automatizadas permiten probar la aplicación de forma más eficiente, dado que no requieren intervención manual y pueden ejecutarse con mayor rapidez y frecuencia.

1.1. HERRAMIENTAS

Para poder llevar a cabo la automatización de pruebas, serán necesarias las siguientes herramientas:

– Microsoft Test Manager 2010

– Microsoft Visual Studio 2010, versión Premium o superior

Con la primera de ellas, se creará el caso de prueba y se realizará la grabación de las acciones, mientras que con la segunda se creará la automatización propiamente dicha.

MICROSOFT TEST MANAGER PARA PRUEBAS AUTOMATIZADAS

Microsoft Test Manager es la herramienta de Microsoft para la gestión y automatización de pruebas. La interfaz y el código generado en los scripts son bastante intuitivos. Se integra con Team Foundation Server, donde se almacenan, entre otros, los casos de prueba y requisitos. El código generado se llama Coded UI, que graba operaciones de interfaz basado en Visual C#.NET. Las pruebas automáticas se pueden ejecutar tanto en máquinas virtuales como en máquinas físicas. Solo se puede utilizar en sistemas operativos Windows. 

En la tabla siguiente se muestran los tipos de pruebas automatizadas que se pueden crear y qué tipos de pruebas se pueden ejecutar como parte de un plan de pruebas:

tabla-I

Dependiendo de lo que se necesite lograr con las pruebas, se determinará qué tipos de pruebas automatizadas se deben crear.

1.1.1.    MICROSOFT TEST MANAGER EN COMPARACIÓN CON OTRAS HERRAMIENTAS

En la tabla siguiente se realiza una comparación de Microsoft Test Manager con otras herramientas de automatización existentes:

tabla-II

PRERREQUISITOS

Antes de poder ejecutar pruebas automatizadas, es necesario disponer de un entorno con un controlador de pruebas y agentes de prueba. Un entorno es el conjunto de roles necesarios para ejecutar una aplicación concreta y las máquinas que se utilizarán para cada rol. Un controlador administra pruebas en varios equipos comunicándose con los agentes de prueba instalados en cada uno de ellos. Cada agente puede llevar a cabo distintas tareas: instalar software, ejecutar pruebas y recopilar los datos de las mismas.

tabla-III

1.1.1.    CONFIGURAR UN CONTROLADOR DE PRUEBAS

Para configurar el controlador de pruebas una vez instalado, habrá que seleccionar ‘Configurar el controlador de pruebas ahora’. A continuación, elegir ‘Configurar’ para iniciar la herramienta de configuración de controladores de pruebas.

tabla-IV

Seguidamente, seleccionar el usuario que se vaya a emplear como cuenta de inicio de sesión para el servicio de controlador de pruebas y registrar el controlador con la colección de proyecto del equipo. Para ello, seleccionar la opción ‘Registrar con colección de proyectos de equipo’.

Para aplicar los cambios realizados, elegir ‘Aplicar configuración’. Se mostrará un cuadro de diálogo con el resumen de la configuración, mostrando el estado de cada paso necesario para configurar el controlador de pruebas.

Una vez concluido este proceso, se habrá configurado correctamente el controlador.

1.1.1.    CONFIGURAR UN AGENTE DE PRUEBAS

Una vez instalado el agente de pruebas, se procede a su configuración. Para ello, hay que seleccionar ‘Configurar el agente de prueba ahora’. Existen dos opciones de ejecución para el agente de prueba:

  • Servicio: para ejecutar pruebas automatizadas que no interactúan con el escritorio.
  • Proceso interactivo: para ejecutar pruebas automatizadas que sí han de interactuar con el escritorio.

tabla-V

Se seleccionará la opción que se desee en cada caso y se escribirán los detalles del usuario (nombre y contraseña) que se va a usar cuando se inicie el agente de prueba.

A continuación, se registrará el agente con el controlador de pruebas configurado previamente. Para ello, elegir ‘Registrar con controlador de pruebas’ y escribir el nombre del controlador seguido de dos puntos (:) y del número de puerto que se emplee. El número de puerto predeterminado es 6901.

tabla-VI

Para aplicar los cambios, seleccionar ‘Aplicar configuración’.

1.1.1.    CREACIÓN DE UN ENTORNO DE PRUEBAS

La creación de un entorno se realiza desde el laboratorio de pruebas de Microsoft Test Manager.

tabla-VII

En primer lugar, seleccionar la opción <Nuevo à Nuevo entorno físico> y darle un nombre y una descripción. Asimismo, indicar el controlador de pruebas que gestionará el agente:

tabla-VIII

El paso siguiente consiste en agregar las máquinas en las que se ejecutarán las pruebas automatizadas al entorno y asignar un rol para las mismas.

tabla-IX

Seguir editando las propiedades de la máquina y, una vez terminada la configuración, pulsar ‘Finalizar’. Con esto, el entorno físico se habrá creado correctamente:

A continuación, habrá que asignar el entorno creado al plan de pruebas. Para ello, en la pestaña de ‘Propiedades’ del plan de pruebas, seleccionar la configuración de pruebas y el entorno definido previamente.

tabla-XI

2. CREACIÓN DE UN CASO DE PRUEBA AUTOMATIZADO

El propósito de este apartado es detallar los pasos necesarios para la automatización de una prueba con Microsoft Test Manager 2010 y Visual Studio 2010. Para facilitar la comprensión, la explicación de la automatización se llevará a cabo mediante un ejemplo.

2.1.    DESCRIPCIÓN DE LA PRUEBA

La prueba objeto de automatización será el cálculo de divisas en la página web de un banco. La prueba constará de los pasos siguientes:

1.Abrir el navegador (Internet Explorer).

2.Acceder a la página web.

tabla-XII

 3. Seleccionar la divisa origen y la divisa destino.

tabla-XIII

4. Introduccir el valor de la divisa de origen en una caja de texto.

tabla-XIV

5. Realizar el cálculo de la divisa destino.

tabla-XV

6. Cerrar el navegador.

2.2.    PASOS

Los pasos a seguir para realizar la automatización de la prueba son los siguientes:

  1. Crear el caso de prueba en Test Manager.
  2. Ejecutar el caso de prueba con el Test Runner, grabando las acciones.
  3. Desde Visual Studio, crear un nuevo proyecto de pruebas.
  4. Añadir una prueba de Coded UI Test, utilizando una grabación existente.
  5. Agregar las validaciones.

 En los siguientes apartados se detallarán dichos pasos, de acuerdo con el ejemplo planteado en el apartado 2.1.

2.3.    CREACIÓN DEL CASO DE PRUEBA EN TEST MANAGER

El primer paso consistirá en crear el caso de prueba, detallando los pasos del mismo, mediante Microsoft Test Manager. A continuación se muestra el detalle del caso de prueba creado:

Test Case 881: Calculadora de divisas

Comprobar que se realiza correctamente el cálculo de divisas.

Test Steps (7)

tabla-XVI

En los pasos se han parametrizado los siguientes datos, asignándoles los siguientes valores en una primera iteración:

tabla-XVII

2.4.    EJECUCIÓN DEL CASO DE PRUEBA Y GRABACIÓN DE LAS ACCIONES CON TEST RUNNER

Una vez creado el caso de prueba, se procede a la ejecución manual del mismo, grabando las acciones realizadas. Para ello, habrá que ejecutar el Test Runner, marcando el check de ‘Crear grabación de acciones’:

tabla-XVIII

Según se vayan ejecutando los pasos de prueba, habrá que marcar el resultado de los mismos, indicando que se han concluido con éxito.

Una vez ejecutada la prueba, se dispondrá de una grabación de la misma, que será una primera aproximación a la automatización, aunque para llegar a ella habrá que dar algunos pasos más.

2.5.    CREACIÓN DE UN PROYECTO DE PRUEBAS EN VISUAL STUDIO

El paso siguiente consistirá en crear un proyecto de pruebas desde Visual Studio. Para ello, pulsar:

Archivo – Nuevo – Proyecto…

tabla-XIX

A continuación, se abre una nueva ventana, en la que se puede elegir el tipo de proyecto, que, en este caso, será un proyecto de prueba, y asignarle un nombre al mismo, así como elegir la ubicación en la que se guardará. Por tanto, se seleccionará:

Plantillas instaladas – Visual C# – Prueba – Proyecto de prueba

tabla-XX

Y se detallarán los datos siguientes:

  • Nombre: CalculadoraDivisas
  • Ubicación: c:\users\prp\documents\visual studio 2010\Projects
  • Solución: Crear nueva solución
  • Nombre de la solución: CalculadoraDivisas

Finalmente, pulsar ‘Aceptar’, con lo que ya se tiene creado el proyecto de pruebas:

tabla-XXI

El siguiente paso consiste en añadir una prueba de IU codificada. Para ello, se seleccionará:

Proyecto  – Agregar prueba de IU codificada…

 tabla-XXII

A continuación se abrirá una ventana en la que se informará de si se desea grabar las acciones o usar una grabación de acciones existente. Se elegirá la última opción, para hacer uso de la grabación que se llevó a cabo en el apartado 2.4:

tabla-XXIII

El siguiente paso consistirá en indicar el caso de prueba para el que se realizó la grabación y que es objeto de la automatización:

tabla-XXIV

Con esto ya se ha generado el código de la automatización. Se han generado cuatro archivos distintos:

  • Ø CodedUITest1.cs: Este archivo contiene una clase pública que se puede considerar la clase de prueba. Este archivo se puede modificar en cualquier momento.
  • Ø UIMap.Designer.cs: Este archivo se crea al generar la prueba. Cuando esta cambia, este archivo se recrea automáticamente. Por este motivo, no se recomienda hacere ningún cambio en este fichero, pues todos los cambios se perderán si la prueba cambia. Aquí se encuentra la definición de todos los métodos identificados durante la grabación de la prueba.
  • Ø UIMap.cs: Este fichero no contiene propiedades ni métodos inicialmente, pero es posible introducir el código que se desee para customizar la funcionalidad o para añadir nuevas funcionalidades.
  • Ø UIMap.uitest: Fichero XML que contiene la estructura de la prueba grabada. Contiene las acciones, las propiedades y los métodos de las clases.

 ** NOTA: Al tratarse de una prueba sobre una aplicación Web, se recomienda añadir la siguiente sentencia al comienzo del método public void CodedUITestMethod1() de la clase CodedUITest1:

BrowserWindow.Launch();

De este modo se asegura el correcto funcionamiento del navegador.

2.6.    INTRODUCCIÓN DE VALIDACIONES

Una vez generado el código de la automatización, será necesario incluir las validaciones o aserciones que se realizarán para comprobar si la prueba ha concluido con éxito.

Para ello, se deberán seguir los pasos que se presentan a continuación:

–      Abrir el fichero CodedUITest1.cs.

–      Situarse en el punto del método marcado con el atributo TestMethod en el que se desea introducir la validación y comentar todo el código situado tras dicho punto:

tabla-XXV

–      Ejecutar la prueba hasta este punto.

–      Añadir el código de la aserción, para lo cual se empleará el Generador de pruebas de IU codificadas. Se siguen los pasos:

  1. Situarse en el punto en el que se va a agregar la validación.
  2. Abrir el Generador de pruebas de IU codificadas. Para ello, se seleccionará:

Prueba – Generar código para prueba de IU codificada – Usar generador de pruebas de IU codificadas…

tabla-XXVI

Con ello se abre el generador:

tabla-XXVII

El generador de pruebas de IU codificadas posibilita la grabación de acciones para añadirlas a la prueba de IU codificada existente, ver los pasos grabados, seleccionar los controles a validar y generar código para las acciones realizadas.

Agregar la aserción deseada. Para ello, se selecciona y se arrastra la mira hasta en control a validar.

tabla-XXVIII

Con esto se abre el diálogo ‘Agregar aserciones’:

tabla-XXIX

4. Seleccionar la propiedad del control para la que se desea añadir la aserción y pulsar ‘Agregar aserción’. Se abre una nueva ventana en la que se puede elegir el tipo de comparación (igual, comienza por, contiene,…) que se va a realizar y el valor de dicha comparación:

tabla-XXX

Se incluirá un check al lado de la propiedad, indicando que la validación se ha añadido correctamente:

tabla-XXXI

5. Una vez añadida la aserción, pulsar el botón de ‘Generar código’:

tabla-XXXII

6. Darle un nombre al método y pulsar ‘Agregar y Generar’:

tabla-XXXIII

7. Cerrar el generador de pruebas de IU codificadas y volver a Visual Studio, donde se ve que se ha añadido correctamente el método que realiza la validación:

tabla-XXXIV

–      Descomentar el código situado tras la aserción, que se había comentado previamente.

–      Finalmente, vincular el valor de la aserción al parámetro establecido en el caso de prueba. Para ello, incluir la siguiente línea de código antes de la llamada al método de validación:

this.UIMap.AssertCalculadoraDivisasExpectedValues.UIResultadoFinalEditText = TestContext.DataRow[“resultado”].ToString();

Con esto, se habrá añadido correctamente una validación para comprobar que la prueba ha concluido con éxito.

3.  EJECUCIÓN DE UN CASO DE PRUEBA AUTOMATIZADO

Una vez realizados todos los pasos anteriores, guardar los cambios introducidos y ejecutar el caso de prueba. Para lo cual, en Visual Studio:

  1. Seleccionar la Vista de pruebas:

tabla-XXXV

2. Marcar los nombres de las pruebas que se desean ejecutar y pulsar ‘Ejecutar selección’:

tabla-XXXVI

Al finalizar la ejecución automática de la prueba, se mostrará en resultado de la misma:

tabla-XXXVII

Si hubiera habido errores, se mostraría el detalle de los mismos.

4. CONCLUSIONES

4.1.    LIMITACIONES DE MICROSOFT TEST MANAGER

Microsoft Test Manager presenta la limitación de que solo ofrece soporte para el sistema operativo Windows, no pudiéndose utilizar en plataformas MacOS ni Linux.

Por otro lado destaca la incompatibilidad de los controles de Infragistics con el motor de automatización de pruebas de Visual Studio. Se tiene información de que Infragistics está trabajando con Microsoft para dar solución a este problema.

4.2.    CONCLUSIÓN

Test Manager es la herramienta de Microsoft para administrar y gestionar el trabajo de pruebas funcionales. Permite crear planes de pruebas y diseñar casos de prueba, así como realizar la ejecución manual de los mismos.

Gracias a la integración con Visual Studio, se pueden realizar pruebas automatizadas a partir de las pruebas manuales, tal y como se ha presentado en el ejemplo.

Evidentemente, el ejemplo mostrado aquí no es más que una pequeña aproximación a las posibilidades que ofrecen estas dos herramientas en cuanto a automatización. Las posibilidades son infinitas. Como decía Machado: “Caminante no hay camino, se hace camino al andar”. Por tanto, adelante y a lanzarse a automatizar.

Para más información:

Paloma Rodríguez – Ingeniero de Test – Sogeti España – paloma.rodriguez@sogeti.com

 

Autor: qanewsblog

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software; Soluciones Microsoft y High Tech Consulting. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA. Somos creadores de las metodologías estándar del mercado: TMap® (Test Management Approach) y TPI® (Test Process Improvement). ¡Nuestro compromiso es el Testing!

3 thoughts

  1. La automatización de pruebas de carga se ha vuelto una necesidad para poder evitar así arriesgar la integridad del negocio con anomalías inesperadas además existen un sin fin de herramientas de prueba de carga como agileload (http://es.agileload.com) que te ayudan a crear guiones de prueba , a diagnosticar problemas además simula de manera realista la carga .

    Le gusta a 1 persona

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s