Difference between revisions of "Creating a test case for Smart Devices"

From GXtest Wiki
Jump to: navigation, search
(Pre-requisites)
(Pre-requisites)
Line 11: Line 11:
 
After that, be sure to have fulfilled the [[Requirements for executing in Android]], for an emulator or a real device.
 
After that, be sure to have fulfilled the [[Requirements for executing in Android]], for an emulator or a real device.
  
Also, we assume that you already done the creation of a GXtest project and the setup the KB for the project.
+
Also, we assume that you already done the creation of a GXtest project and the setup the KB for the project. For additional info, see [[GXtest Projects]] and [[GXtest and the GeneXus KB]] articles.
  
 
== Create a new test case for Smart Devices ==
 
== Create a new test case for Smart Devices ==

Revision as of 18:21, 16 April 2015

Spanish.gif
English.gif
Japan.gif

For creating our first GXtest test case for Smart Devices, we will use the GeneXus sample Android application My first Android Application. This sample application, is a very simple app that stores Customer and Companies information.

We will create a new test case that adds a new company, and then verifies that the company was actually added to the app data.

Pre-requisites

First of all, we will need to generate the Android application that will be tested, so we need to complete the previous mentioned GeneXus tutorial.

After that, be sure to have fulfilled the Requirements for executing in Android, for an emulator or a real device.

Also, we assume that you already done the creation of a GXtest project and the setup the KB for the project. For additional info, see GXtest Projects and GXtest and the GeneXus KB articles.

Create a new test case for Smart Devices

Antes de comenzar a diseñar el caso de prueba, es recomendable que realicemos un "Alta de empresa" en la app para familiarizarnos con el proceso y los pasos que vamos a automatizar a continuación. Para ejecutar la app en el emulador/dispositivo desde GXtest Designer, hacer clic en el botón "Launch application in device" de la barra de herramientas, o también en el menú Smart Devices. Para agregar una nueva empresa, desde el menú principal de la app, ir a Companies, Insert, ingresar el nombre de la empresa y presionar Save. Eso nos llevará al listado de empresas y aparecerá la empresa creada.


Para comenzar a crear el nuevo caso de prueba, vamos al menú Test cases -> New, o desde el menú contextual de Test cases en el árbol de proyecto, Create New Test Case.

CreateNewSDTC.PNG

Al momento de seleccionar el nombre, le pondremos a este caso de prueba el nombre Insert Company SD, y allí debemos elegir que el caso de prueba es de tipo Smart Device.

Ahora que tenemos nuestro caso de prueba vacío, vamos a agregarle una SDPage, que será la pantalla "principal" que se muestra cuando se abre la aplicación. El objeto GeneXus mostrado es el Menu. Entonces arrastramos un nuevo SDPage desde la barra de herramientas de objetos, y dando doble clic en el SDPage asignamos el objeto Menu.

Luego, conectamos el nodo Start con la SDPAge arrastrando la flecha, y agregamos en dicha arista un comando Go, que será el encargado de arrancar la ejecución de la aplicación en nuestro dispositivo. Para esto, necesitamos especificar el archivo apk de la app Android que se va a instalar/ejecutar en el dispositivo. Por suerte para nosotros, ya tenemos en la variable &apkPath la ruta al archivo, según lo configuramos aquí, por lo que nuestro comando Go

GoApkPath.png

En este punto, ya podemos ejecutar el caso de prueba y ver que la aplicación se inicie correctamente en el emulador o dispositivo. Si ejecutamos el caso de prueba, deberíamos ver al emulador iniciar la aplicación y mostrar el menú inicial de nuestra app.


Ahora agregaremos la sección donde agregamos una nueva Empresa. Para ello, agregamos una nueva SDPage, y una arista que vaya desde el Menu hasta el nuevo nodo. En la arista, agregaremos un nuevo evento TapText, para simular un Tap sobre el ítem Companies del Menú. Entonces en la arista tendremos un TapText("Companies"), y en la nueva SDPage, asignaremos el objeto CompanyList, que es el que aparece luego de hacer Tap en Companies-


Para poder agregar una nueva Empresa, necesitamos hacer tap en el botón "Insert" de la pantalla CompanyList. Por ello, debemos agregar un evento Tap(CompanyList.ButtonInsert) en la SDPage CompanyList.


Luego, agregaremos otro nuevo SDPage, y lo conectaremos con una arista que salga desde CompanyList. El nuevo SDPage, será CompanyGeneralSection, que es el objeto GeneXus que se muestra cuando entramos a editar, eliminar o agregar o una nueva Empresa (que es nuestro caso).


Finalmente, en la SDPage CompanyGeneralSection debemos escribir el nombre de la nueva empresa ("My Company") y presionar el botón "Save".

TCAddCompany.png

Para esto agregamos los siguientes comandos en CompanyGeneralSection:

  • FillInput(CompanyGeneralSection.CompanyName, "My Company")
  • Tap(CompanyGeneralSection.ButtonSave)


Con estos pasos ya estaríamos dando de alta la nueva empresa, pero sería bueno validar que la empresa efectivamente se registró. Para ello, agregaremos una última SDPage con el objeto CompanyList, que es la pantalla a la que nos lleva la aplicación, y allí agregaremos una validación AppearText("My Company").


SDInsertCompanyComplete.png


Ahora que ya tenemos el caso de prueba, le proponemos reemplazar los valores fijos (por ejemplo el nombre de la empresa "My Company") para que use datapools, y el caso de prueba sea más fácilmente mantenible y se puedan agregar nuevos juegos de datos.

Extender el caso de prueba a la Web

Es posible crear un caso de prueba "híbrido", es decir, que ejecute una parte de la prueba sobre el dispositivo, y otra parte de la prueba sobre la web. Por ejemplo, luego de crear la empresa desde el dispositivo, me gustaría poder buscar la nueva empresa en la web de mi aplicación y validar que también aparece allí.


Para esto, simplemente debemos incluir los casos de prueba que realizan estas tareas. Por ejemplo, si ya tenemos un caso de prueba "Search Company Web" que busque la empresa "My Company", es posible incluir ambos casos de prueba de esta forma y lograr lo que queremos:

MixedTC.PNG