¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Aprenda el lenguaje VBA
  3. Gestión de una campaña de prueba
Extrait - Aprenda el lenguaje VBA y conviértase en un experto en Excel (versiones 2019, 2021 y Microsoft 365)
Extractos del libro
Aprenda el lenguaje VBA y conviértase en un experto en Excel (versiones 2019, 2021 y Microsoft 365) Volver a la página de compra del libro

Gestión de una campaña de prueba

Creación de tablas y gráficos dinámicos (TD y GD): descripción del ejemplo

Presentación del ejemplo

Como parte de un proyecto informático de la empresa BolEni, que comercializa bolsas, estamos trabajando en la fase de prueba de la aplicación del portal del cliente que permite la venta online de estas bolsas. La aplicación EniBol_App consta de tres partes: la parte Front, la parte Middle y la parte Back.

En aplicaciones informáticas, son habituales los conceptos Front-End, Middleware y Back-End: la parte Front-End se ocupa de la interfaz de la aplicación; la parte Middleware permite gestionar la relación entre los comandos vinculados con la interfaz y los datos; la parte Back-End permite el almacenamiento en bases de datos.

Durante esta fase de prueba, los evaluadores o testers hacen seguimiento de sus acciones en archivos de Excel. Desde Administración, también se le pide tener una visión del progreso general y del estado de la prueba.

Un poco de vocabulario:

  • Prueba (o test) de una funcionalidad: una funcionalidad o característica se evalúa mediante un conjunto de casos de prueba, que cubren todos los requisitos de esta característica. Dicha cobertura debe ser completa.

  • Caso de prueba: corresponde a un conjunto de pasos que conforman un escenario que se va a probar. Una prueba es:

  • OK si todos los pasos se han completado y todos ellos son conforme a su descripción;

  • KO si todos los pasos se han completado y al menos un paso no ha sido conforme a su descripción;

  • Bloqueada si, debido a una anomalía, la ejecución no ha podido ir hasta el final del escenario de prueba.

  • Anomalía: una anomalía corresponde al hallazgo de un caso que no se ajusta a la descripción del caso de prueba.

  • Ciclo de prueba: un ciclo de prueba es la ejecución de un conjunto de casos de prueba durante un período de tiempo determinado. Puede haber varios ciclos de prueba y, por lo tanto, varias ejecuciones de cada caso de prueba, especialmente para verificar el impacto de una posible corrección en las pruebas relacionadas.

Presentación del archivo

El archivo Enunciado_4-ABC.xlsm se divide en cinco pestañas:

  • Hoja Pruebas

La hoja Pruebas resume las 60 pruebas de esta aplicación con su estado en el momento de iniciar este ejemplo.

Columna

Etiqueta

Descripción

Columna A

Nombre

Este es el nombre de la prueba. Aquí, las pruebas se diferencian por un número. En teoría, el nombre del caso de prueba es lo suficientemente explícito como para describir el propósito de la prueba.

Columna B

Prioridad

La prioridad es un criterio decisivo para calificar la importancia de una prueba respecto a otras. La prioridad puede tomar los valores P1, P2, P3.

Columna C

Estado de la prueba

Se trata de conocer el estado de la prueba en el momento de la extracción de datos.

Puede ser:

  • OK

  • KO

  • No iniciada

  • No entregada

Columna D

Funcionalidad

Se trata de la funcionalidad sometida a prueba.

  • Hoja Ejecución

La hoja Ejecución contiene todas las ejecuciones de casos de prueba. Una prueba se puede ejecutar varias veces en diferentes ciclos o cuando el caso de prueba se repite después de una corrección. Las columnas son las siguientes:

Columna

Etiqueta

Descripción

Columna A

ID ejecución

Identificador...

Creación de tablas y gráficos dinámicos (TD y GD): conceptos del curso

Crear una tabla dinámica sencilla

Una tabla dinámica, abreviada como TD, se utiliza para exponer datos en función de ejes definidos por el usuario. Los datos se agregan según los ejes.

Un eje corresponde a una definición utilizada para calificar los datos. Por ejemplo: sexo, posición, grupo... Los ejes se expresan en columnas o en filas y su contenido se puede filtrar para no mostrar necesariamente todos los valores.

Los datos se agregan, es decir, se agrupan alrededor de los valores del eje. Es posible expresarlos de varias maneras diferentes: suma, promedio, número (contar)... Los datos son obligatoriamente valores numéricos.

Ejemplo

He aquí un ejemplo de transformación de una tabla de datos en TD.

 Para realizar este ejemplo, abra el archivo EjemploCurso_Capítulo4.xlsm, hoja TD.

La fuente de datos se expresa en forma de tabla con las calificaciones de los estudiantes:

 

A

B

C

1

Sexo

Nota

Nombre

2

Varón

9,5

Alberto

3

Varón

12

Anthony

4

Mujer

15

Aurelia

5

Mujer

9,5

Beatriz

6

Varón

8,5

Benito

7

Mujer

13

Berengaria

La transformación de estos datos en TD:

 

Etiquetas de columnas

 

Mujer

Hombre

Total general

Nota media

12,5

10

11,25

Aquí, el eje corresponde al sexo, y los datos son las puntuaciones cuyo promedio se elabora según el eje.

Operación

 Para crear una TD, seleccione el intervalo de datos de la tabla (incluido el encabezado) A1:C7 y, a continuación, en la pestaña Insertar, haga clic en Tabla dinámica.

images/VBA_173.png

 Elija si la TD debe aparecer en una hoja nueva o en una hoja existente.

 Acepte la creación de la TD.

La TD se crea en la página. Puede arrastrar los diferentes campos que están en la parte superior de Campos de tabla dinámica para colocarlos como eje y datos (soltándolos en la parte inferior del panel). Los ejes se llaman Etiquetas de filas o Etiquetas de columnas. Los datos se llaman Valores. También aparecen dos pestañas nuevas en la cinta de opciones de Excel: Analizar tabla dinámica y Diseño.

 Arrastre el campo Sexo dentro del cuadro Columnas y el campo Nota al cuadro Valores

Al hacerlo, se calcula la suma de las notas.

 Para obtener el promedio, haga clic en Suma de Nota, en el cuadro Valores, luego haga clic en Configuración de campo de valor y seleccione Promedio.

images/VBA_174.png

¿Puede un dato ser un eje? Si aún no ha entendido muy bien el funcionamiento de las TD, vuelva a esta observación más adelante; verá que, en vez de aportarle nuevas perspectivas, le enreda un poco más. Los más experimentados en TD reflexionarán que una columna como las notas, que se consideran datos, también puede ser un eje. Y el nombre se puede usar como datos. De hecho, si la puntuación se considera un eje, entonces es posible contar el número de personas que obtuvieron cada nota.

images/VBA_175.png

En este caso, las notas están en columnas y el número de personas con la nota está al lado porque contamos el número de personas que han tenido esta nota.

Crear una tabla dinámica con el asistente

El Asistente para tablas y gráficos dinámicos le permitirá consolidar varios rangos de cálculo...

Crear tablas y gráficos dinámicos (TD y GD): realización del ejemplo

 Primero, abra el archivo Enunciado_4-ABC.xlsm y active la hoja TD_GD.

Stock de anomalías

El objetivo es obtener una curva con el stock de anomalías abiertas por semana. El resultado debería parecerse a este:

images/VBA_206.png

Para crear la curva de stock de anomalías, es necesario establecer el número de anomalías por semana. Según el ejemplo, las semanas comienzan a principios de 2022 y terminan a finales de abril. La tabla es la siguiente:

images/VBA_201.png

El objetivo es llenar la columna C con el número de anomalías presentes en la fecha del día de inicio de la semana que figura en la columna B.

¿Cómo hacerlo?

Es necesario determinar el número de anomalías en curso en la fecha de inicio de la semana. Para ello, se deben contar las anomalías si estas cumplen las dos condiciones siguientes: 

  • Anomalías cuya fecha de creación sea anterior o igual a la fecha de inicio de la semana.

  • Anomalías cuya fecha de cierre sea mayor o igual a la fecha de inicio de la semana o que no estén no cerradas.

Al sumar estas dos condiciones, el resultado corresponderá al número de anomalías abiertas en la fecha del día de inicio de la semana.

La fórmula consta de dos partes: anomalías cerradas y anomalías abiertas. Se debe utilizar la fórmula CONTAR.SI.CONJUNTO:

=CONTAR.SI.CONJUNTO(fecha apertura; "<="&dfecha_inicio_semana;  
fecha_cierre;" >="&fecha_inicio_semana); 
=CONTAR.SI.CONJUNTO(fecha apertura; "<="&fecha_inicio_semana;  
fecha_cierre;vacío); 

Se suman ambas condiciones.

=CONTAR.SI.CONJUNTO(Anomalías!$C$2:$C$27;"<="&B2;AnomAlías!$F$2:$F$27;">="&B2 
+CONTAR.SI.CONJUNTO(Anomalías!$C$2:$C$27;"<="&B2;Anomalías!$F$2:$F$27;"") 

También puede utilizar una fórmula matricial reemplazando B2 por B2:B16.

=CONTAR.SI.CONJUNTO(Anomalías!$C$2:$C$27;"<="&B2:B16;Anomalías!$F$2:$F$27; 
">="&B2:B16) 
+CONTAR.SI.CONJUNTO(Anomalías!$C$2:$C$27;"<="&B2:B16;Anomalías!$F$2:$F$27;"") 

 Aplique esta fórmula al rango C2:C16, o C2 solo para la fórmula matricial, y, a continuación, cópiela.

Atención, esta fórmula se aplica solo al rango de anomalías A1:F27 y solo funciona para las 26 anomalías detectadas: no se tendría en cuenta una anomalía adicional. Para superar este problema, es necesario transformar la tabla que contiene las anomalías en una tabla en el sentido de Excel. De este modo, será posible recuperar una columna completa de la tabla independientemente de su tamaño.

A continuación, insertamos el gráfico:

 Seleccione el rango A1:C16.

 En la pestaña Insertar, grupo Gráficos, haga clic en el icono Insertar gráfico de líneas o de áreas.

 Se muestra la lista de gráficas disponibles; seleccione el gráfico Líneas en la zona Línea 2D.

images/VBA_202.png

El gráfico se muestra de la siguiente manera:

images/VBA_203.png

El eje de abscisas contiene la fecha y el número...

Automatizar la creación de un informe en PowerPoint: descripción de ejemplo

Presentación del ejemplo

El objetivo de este ejemplo es automatizar la creación de un informe en PowerPoint a partir de diferentes gráficos e indicadores realizados en la primera parte del ejemplo.

¿Cómo se hace?

Al informe se le aplicará formato en Excel desde la hoja Informe: el diseño se realizará dentro del rango A1: L36 y luego todo el rango se copiará en un archivo nuevo de PowerPoint. 

El resultado esperado es el siguiente:

images/VBA_261_v2.png

El documento de PowerPoint se presentará en una sola diapositiva. El archivo se guardará en la misma carpeta que el archivo de Excel del ejemplo, con el siguiente nombre: Informe_Prueba_AAMMDD y la extensión .pptx (o AAMMDD es la fecha de hoy).

Descripción general del archivo

El archivo utilizado, Enunciado_4-DEF.xlsm, corresponde a la versión obtenida al final de la primera parte, pero en la que se han cambiado los nombres de los gráficos (Gráfico 1 pasa a ser NumAnom; Gráfico 2, AnomProyectoPrioridad, y Gráfico 3, EstadoCasoPrueba).

La hoja Informe se utilizará para crear el informe en formato Excel y luego copiarlo en una diapositiva de PowerPoint. Dicha hoja contiene un rango preestablecido, A1:L36, que corresponde al tamaño típico de una diapositiva de PowerPoint. El tamaño de esta...

Automatizar la creación de informes en PowerPoint: conceptos del curso

Grabación de macros

Esta funcionalidad permite registrar las acciones realizadas por los usuarios dentro de un macroprocedimiento.

Funciona como una grabadora: desde el momento en que el usuario decide activar la grabación mediante el botón images/04SOB28.png, que se encuentra en la barra de estado, en la parte inferior de la aplicación, todas las acciones se registran dentro de una macro hasta que la grabación se detiene mediante del botón images/04SOB29.png, que también se encuentra en la barra de estado, en la parte inferior de la aplicación.

Para ver las ventajas y desventajas de este tipo de uso, trabajaremos un ejemplo que permite realizar un llenado automático de la celda activa en rojo.

Ejemplo de grabación de macros

En una hoja en blanco, haga clic en el botón images/04SOB28.png para comenzar a grabar una macro. Aparecerá una ventana; elija Color_rojo como nombre de la macro y Ctrl j como método abreviado de teclado.

Este método abreviado de teclado implica que, cuando el usuario presione las teclas Ctrl y j simultáneamente (minúsculas), se ejecutará la macro Color_rojo.

¡Asegúrese de no elegir un atajo de teclado que ya exista, como Ctrl C, Ctrl V, Ctrl Z...!

images/VBA_244.png

 Seleccione la celda F10 y rellénela de color rojo.

 A continuación, pulse el botón images/04SOB29.png para detener la grabación de la macro.

 Pruebe la macro devolviendo a la celda F10 el color transparente y pulsando Ctrl j a continuación.

La macro se ejecuta y vuelve a colorear la celda actual.

 Compruebe el código accediendo al Editor de Visual Basic (teclas Alt e F11 simultáneamente). 

El código se ve así:

Sub Color_rojo() 
' 
' Color_rojo Macro 
' 
' Acceso directo: CTRL+j 
' 
    Range("F10").Select 
    With Selection.Interior 
        .Pattern = xlSolid 
        .PatternColorIndex = xlAutomatic 
        .Color = 255 
        .TintAndShade = 0 
        .PatternTintAndShade = 0 
    End With 
End Sub 

Ventajas

Esta funcionalidad permite descubrir código sin tener que aprenderlo. Por ejemplo, cómo crear una tabla dinámica o cómo crear un gráfico. La generación de código automático permite saber cómo se estructuran ciertas clases o qué objetos usar.

En nuestro ejemplo, el registro generó este código para rellenar la celda en rojo:

Range(Celda).Interior.Color = 255 

Desventajas

La grabación, como puede ver, es muy precisa. En nuestro ejemplo, cada vez que se ejecuta el código, se colorea la celda F10. El código no se adapta a la celda sobre la que estamos situados.

El objetivo era colorear la celda actual, no colorear la celda F10.

El registro genera códigos complejos, mientras que solo es útil el código que concierne al color. De hecho, puede limitarse a:

Selection.Interior.Color = 255 

Conclusión

El uso de esta función...

Automatizar la creación de informes de PowerPoint: realizar el ejemplo

Actualizar y copiar los gráficos

El objetivo de esta parte es comenzar a crear el informe copiando los gráficos (Número de anomalías, Anomalías por proyecto y prioridad, Estado de los casos de prueba) creados en la parte anterior en la hoja TD_GD, y luego colocándolos en la hoja Informe.

 Para comenzar, abra el archivo Enunciado_4-DEF.xlsm.

Operación que hay que realizar

Para copiar y pegar los gráficos en la hoja Informe, vamos a grabar la operación realizada en Excel y luego la adaptaremos para que los gráficos se coloquen en el lugar correcto del informe.

 Haga clic en el botón images/04SOB28.png para iniciar la grabación de acciones dentro de un procedimiento de macro.

Aparecerá la ventana de grabación.

images/VBA_247.png

 Escriba el nombre de la macro ACT_Copia_GD; en la lista Guardar macro en, elija Este libro y haga clic en Aceptar.

 En la hoja TD_GD, seleccione el gráfico Número de anomalías. Cópielo y, a continuación, péguelo en la hoja Informe. La posición del gráfico en el informe es aproximada y se revisará más adelante.

 De nuevo en la hoja TD_GD, seleccione el gráfico dinámico Anomalías por proyecto y prioridad. Cópielo y péguelo en la hoja Informe, debajo del primer gráfico. La posición del gráfico en el informe es aproximada; se revisará más adelante.

 Seleccione el gráfico dinámico Estado de los casos de prueba. Cópielo y péguelo en la hoja Informe. La posición del gráfico en el informe es aproximada y se revisará más adelante.

En definitiva, la hoja Informe contiene los últimos tres gráficos actualizados recientemente.

images/VBA_248.png

 Haga clic en el botón images/04SOB29.png para detener la grabación.

La macro ACT_Copia_GD se genera en el Módulo 1. El código exacto de la macro puede diferir de lo que verá a continuación, ya que se ha generado por acciones del usuario.

En nuestro caso, el código generado es el siguiente:

Sub ACT_Copia_GD() 
 
  With ThisWorkbook 
    .Sheets("TD_GD").Select 
    ActiveSheet.ChartObjects("NumAnom").Activate 
    ActiveChart.ChartArea.Copy 
    .Sheets("Informe").Select 
    ActiveSheet.Paste 
    .Sheets("TD_GD").Select 
    ActiveSheet.ChartObjects("AnomProyectoPrioridad").Activate 
'    ActiveChart.PivotLayout.PivotTable.PivotCache.Refresh 
    ActiveChart.ChartArea.Copy 
    .Sheets("Informe").Select 
    Range("J12").Select 
    ActiveSheet.Paste 
    ActiveSheet.ChartObjects("AnomProyectoPrioridad").Activate 
    .Sheets("TD_GD").Select 
    ActiveSheet.ChartObjects("EstadoCasoPrueba").Activate 
    ActiveChart.PivotLayout.PivotTable.PivotCache.Refresh 
    ActiveChart.ChartArea.Copy ...