Impact on Test Cases when the GX KB changes

From GXtest Wiki
Revision as of 00:22, 26 November 2009 by Ftoledo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Categoría: Guías de GXtest

En este ejemplo se verá como se puede Actualizar la KB: Impactar los cambios de la KB en los casos de prueba con un ejemplo concreto.

Contents

Archivos necesarios para seguir el ejemplo

Para realizar completamente el presente ejemplo se deben bajar los siguientes archivos:

Una vez descargados dichos archivos se puede empezar a seguir el ejemplo.

Análisis de impacto (actualización de la KB) paso a paso

Paso 1: carga inicial

Primero se debe crear un proyecto nuevo al cual se le debe asociar la KB AjaxSampleCompleta.xpz. Por más ayuda sobre como realizar esto ver Empezando con GXtest.
Luego importar los casos de prueba de facturas y clientes. Por más detalle ver Exportar e Importar un TestCase.


Paso 2: modificar la KB

El objetivo de este articulo es justamente ver como impactan los cambios en el desarrollo en los casos de prueba. Para ver esto se debe cambiar la KB con la cual GXtest está trabajando. Con este fin es que suministra el archivo AjaxSampleCompleta_modificada.xpz, el cual contiene la misma KB pero con algunos cambios. Para que GXtest consulte la nueva kb se deben realizar los siguientes pasos:

  • borrar el archivo AjaxSampleCompleta.xpz
  • renombrar el archivo AjaxSampleCompleta_modificada.xpz a AjaxSampleCompleta.xpz

Los cambios realizados en la KB AjaxSampleCompleta_modificada.xpz se describen a continuación:

  • Un Objeto nuevo: ObjNuevo
  • Un objeto renombrado que se usaba en un caso de prueba (Home->SuperHome). Al usarse en un caso de prueba se genera un conflicto a resolver.
  • Un objeto renombrado que no se usaba en ningún caso de prueba (Product->SuperProduct). Al no utilizarse no se genera ningún conflicto.
  • Un control nuevo en un objeto que no se usaba en un caso de prueba (City, TextBox:Hola)
  • Dentro del objeto Invoice usado en un caso de prueba se realizan los siguientes cambios:
    • Un control nuevo: TextBox:Holassss
    • Un control en uso que se "renombro" pero que sigue con el mismo caption asociado (btn_enter->Superbtn_enter)
    • Un control en uso que se "renombro" pero que sigue siendo del mismo tipo (Grid1->SuperGrid1)
    • Un boton en uso que se "renombro" y se cambio el caption pero que sigue apuntando al mismo evento (Se borró el botón Cancel, se agregó el botón Button1 que apunto a el evento Cancel)
    • Un control en uso que simplemente se quito (InvoiceLineQty)

Paso 3: hacer Refresh!

Bien ahora estamos listos para realizar el impacto, para esto debemos ir a KB->Refresh

Selección de la KB

Esto nos abrirá la siguiente ventana para seleccionar la KB sobre la cual se realizará el impacto Imagen:ImpactKB_Paso1.jpg

Luego de seleccionar la KB se debe presionar el botón Next.

Lista de objetos a eliminar

Imagen:ImpactKB_Paso2.jpg

En esta pantalla se muestra el objeto Product que se va a eliminar porque no se encuentra en la KB actual (el mismo fue renombrado por SuperProduct). Este objeto se puede eliminar sin problemas porque no está siendo utilizado en ningún caso de prueba. Si la KB sobre la cual estamos trabajando es de GeneXus X, entonces automáticamente GXtest se da cuenta cuales objetos fueron renombrados. Para continuar presionar Next.

Impacto a nivel de los objetos

Imagen:ImpactKB_Paso3.jpg

En esta pantalla se muestran los conflictos a nivel macro, ya que solo se pueden ver aquellos conflictos en los objetos y no en el contenido de los mismos. Las secciones que se pueden ver son las siguientes:

  • Objetos con conflictos: contiene la lista de objetos que son utilizados en algún caso de prueba pero no se encuentran en la nueva KB. En este caso se muestra el objeto Home, ya que el mismo fue renombrado y se estaba utilizando en los casos de prueba.
  • Objetos sugeridos: cuando se selecciona una objeto en conflicto se sugiere en caso de ser posible otros objetos para sustituir el mismo.
  • Conflictos resueltos: cuando se indica que un objeto en conflicto se corresponde con un nuevo objeto, el objeto en conflicto se va de la lista de Objetos con conflictos y pasa a la lista Conflictos resueltos, a su vez el objeto disponible sale de la lista de objetos disponibles.
  • Objetos disponibles: muestra la lista actual de objetos disponibles (objetos nuevos que no se ha indicado que se correspondan con algún objeto en conflicto). En este caso inicialmente muestra tres objetos: ObjNuevo, SuperHome y SuperProduct

Lo que se debe hacer en esta pantalla es indicar que el objeto Home ahora se llama SuperHome. Para esto se debe seleccionar (con un clic) el objeto Home y luego seleccionar el objeto SuperHome y presionar el botón Resolved.


Para indicar que un objeto en conflicto se corresponde con un objeto disponible, marcar el objeto en conflicto y luego marcar el objeto disponible o sugerido. Luego presionar el botón Resolved.

Es importante tener en cuenta si se está utilizando GeneXus X o superior automáticamente se detectan cuales objetos fueron renombrados y no es necesario que el usuario lo indique.


Luego presionar Next.

Impacto a nivel de los Controles

Imagen:ImpactKB_Paso4.jpg

En esta pantalla se van a poder recorrer los distintos objetos que han sido afectados con los cambios. Si se observa en la parte superior se puede navegar por los mismos.

Para cada objeto se tiene un esquema similar al de la pantalla anterior en donde se puede indicar que controles han sido renombrados, o sustituidos por otros.

En este caso en particular el único objeto con conflictos es el objeto Invoice. En el mismo podemos ver que tenemos los siguientes controles en conflicto:

  • InvoiceLineQty
  • btn_cancel
  • Grid1
  • btn_enter

Al hacer clic arriba de btn_cancel, Grid1 y btn_enter se sugiere adecuadamente cuales son los controles por los cuales se debería sustituir. Esas sugerencias son en base a heurísticas. Presionar Resolve para cada una de las sugerencias y luego presionar Next.

Reporte

Imagen:ImpactKB_Paso5.jpg

Por último se muestra un reporte donde se visualiza el resultado de la actualización realiada