how automate repetitive qa tasks using excel macros
Esta guía detallada sobre la mentalidad macro de QA explica cómo automatizar tareas de QA repetitivas usando macros de Excel con ejemplos y capturas de pantalla de hojas de Excel:
La necesidad de automatización en el mundo actual es una de las demandas esenciales y crecientes. Hoy en día, todos buscan algo que les facilite el trabajo o las molestias que conlleva el trabajo de rutina.
Hoy en día, nadie quiere visitar una tienda de móviles, hacer colas para recargar su teléfono, es conveniente no ir físicamente a ningún lado sino recargar el teléfono online en una fracción de segundo.
Desde pagar sus facturas de servicios públicos a través de la banca en línea, reservar y rastrear su taxi en línea, comprar cosas en línea en varios sitios de comercio electrónico hasta usar diferentes electrodomésticos automatizados como lavadoras, microondas, géiser y los teléfonos inteligentes en constante evolución, etc., el mundo de hoy es realmente ansia de productos inteligentes y automatizados en forma de servicios o dispositivos.
En este artículo, no vamos a discutir el uso de ninguna herramienta de automatización ni nada sobre inteligencia artificial o aprendizaje automático, pero la atención se centrará en el mero uso de Excel para automatizar las tareas de rutina diaria de un control de calidad.
Lo que vas a aprender:
Mentalidad macro de QA
Los probadores manuales generalmente tienen la mentalidad de que yo, al ser un evaluador manual, no tengo nada que ver con nada técnico o, en otras palabras, 'los conocimientos de codificación no son lo mío'. Esta es probablemente la mentalidad equivocada que podría detener nuestro crecimiento como ingenieros.
Un control de calidad manual tiene muchas tareas diarias que pueden ser repetitivas siguiendo el mismo flujo de trabajo. Un QA puede identificar muy bien estas tareas y automatizarlas. usando macros de Excel y / o fórmulas.
Esto podría ayudar de dos formas:
- Reduce el tiempo consumido en esfuerzos manuales.
- Además, inspira al QA a aprender y adaptarse al pensamiento lógico y la mejora de las habilidades en el frente técnico.
Las cosas se pueden automatizar para todas las Fases de prueba que se enumeran a continuación:
- Planificación y estimación de pruebas.
- Diseño de prueba o preparación de casos de prueba.
- Actualización del estado de ejecución de la prueba.
- Elaboración de informes de prueba y métricas.
Configuración de contexto rápida
#1) Un excel guardado con. La extensión xlsxm es un Excel habilitado para macros.
#2) Para habilitar la macro en un Excel, seleccione Archivo -> Opciones -> Centro de confianza -> Configuración del Centro de confianza -> Configuración de macros -> Seleccionar botón de radio 'Habilitar todas las macros' y marque la casilla de verificación 'Confiar en el acceso al modelo de objeto del proyecto VBA'. Haga clic en Aceptar.
#3) Seleccionar el menú Ver -> Macros -> Grabar macros -> Realizar alguna actividad y detener macros . Puede editar la macro y ver el código VBA registrado en el Editor de VBA ventana. Del mismo modo, puede agregar sus códigos explícitamente para crear una macro.
#4) Veremos algunos ejemplos de tareas tan repetitivas que podrían ser buenos candidatos para la automatización mediante macros / fórmulas de Excel.
Ejemplo de uso n. ° 1
Al final de cada fase funcional, es necesario que se identifiquen algunos casos de prueba para la regresión del conjunto funcional. Este es un proceso a seguir en cada sprint o iteración.
Solución
Para reducir el esfuerzo de identificar y crear manualmente una suite de regresión, se puede implementar el siguiente proceso innovador.
- Puede crear una hoja con casos de prueba funcional con una columna adicional para marcar los casos / escenarios de prueba como Sí / No para la regresión.
- Luego, cree una macro para la misma, de modo que cuando la macro se ejecute, todos los casos / escenarios de prueba con regresión marcada como 'Sí' se copien en otra hoja.
- Por lo tanto, esto evitará un ejercicio adicional de pasar por todos los casos de prueba funcionales al final del sprint y luego hacer un esfuerzo adicional para que cada caso de prueba se extraiga en la suite de regresión.
Manifestación
- La primera hoja, 'FunctionalTestScenarios', contiene todos los escenarios / casos de prueba funcionales.
- Hay una columna adicional '¿Incluir en el paquete de regresión?' añadido al final de las columnas de prueba para marcar 'Sí' o 'No' identificando si cada uno de los escenarios de prueba debe incluirse en el conjunto de regresión.
- Hay una segunda hoja creada como ‘RegressionSuite’ y esto buscará automáticamente todos los escenarios de prueba de regresión a través de la macro.
- CTRL + MAYÚS + S se establece como el atajo para que se ejecute la macro.
Escenarios de prueba funcionales
RegressionSuite
Código VBA (macro)
|_+_|Explicación del código
- Hojas (“FunctionalTestScenarios”). Activar: Cuando hay varias hojas en Excel, el método Activate activa la primera hoja y, por lo tanto, el foco se establece explícitamente en la primera hoja.
- Filas ('1: 1'). Seleccione: Esta declaración selecciona la primera fila para todas las columnas de la primera hoja.
- Selección.AutoFilter: Esta declaración aplica el filtro en la primera fila seleccionada.
- Sheet1.Range ('$ A $ 1: $ D $ 38 ″). Campo de autofiltro: = 4, Criterio1: =' Sí ': Esta declaración aplica el filtro automático en la columna número 4, es decir, '¿Incluir en el paquete de regresión?' y filtra los registros por el valor 'Sí'.
- Lastrow = Sheets ('FunctionalTestScenarios'). Cells (Sheets ('FunctionalTestScenarios') .Rows.Count, 'A'). End (xlUp) .Row: Esta declaración obtiene el recuento de la última fila de la primera hoja.
- Rango ('A2: C2' y Lastrow) .Seleccione: Esta declaración selecciona todas las filas y columnas de la primera hoja con ¿Incluir en el paquete de regresión? = Sí.
- Selección. Copiar: Esta declaración copia todos los registros seleccionados.
- Hojas ('RegressionSuite'). Seleccione: Esta declaración abre el 2Dakota del Nortehoja.
- Rango ('A2'). Seleccione: Esta declaración selecciona la celda A2 de la 2Dakota del Nortehoja.
- Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False: Esta declaración copia el valor de la celda seleccionada de origen en la hoja de destino. El rango de celdas de destino contiene solo los valores calculados mediante las fórmulas. Alternativamente, también se puede utilizar Paste: = xlValues. No se omiten espacios en blanco. Las celdas de origen no se transponen y no se realizan operaciones matemáticas.
Ejemplo de uso n. ° 2
Hay ocasiones en las que es necesario crear casos de prueba para, por ejemplo, 100 estados o 1000 entidades (como 1000 formularios de seguros). Los pasos de prueba para esta enorme lista de estados o entidades podrían ser los mismos y repetitivos.
A pesar de eso, la preparación del caso de prueba podría ser una de las actividades que requiere más tiempo, ya que tener el documento del caso de prueba en su lugar es muy importante para comprar las estimaciones requeridas del cliente y hacer que el equipo de QA pruebe cada uno de los casos de prueba dentro de los plazos estimados correctamente.
Solución
En tales casos, las largas horas de esfuerzos de preparación de casos de prueba se pueden reducir a una fracción de segundos utilizando la macro.
- Puede crear una hoja en la que solo proporcione la entrada como una identificación de caso de prueba y la lista única de entidades.
- Cree una macro que, cuando se ejecute, agregue líneas repetitivas de pasos de prueba para cada una de estas entidades y el documento del caso de prueba estará listo en pocos segundos sin tener que gastar la cantidad sustancial de esfuerzos manuales necesarios para preparar los casos de prueba.
Manifestación
- La primera hoja 'GetTestcasesASAP' es la única hoja basada en macros aquí que está en blanco inicialmente.
- Otra hoja 'Datos de entrada de muestra' no juega ningún papel en la macro. Simplemente contiene los datos de entrada de muestra con fines de demostración.
- Copie y pegue los datos del rango de datos de entrada de muestra A2 a B12 en la primera hoja.
- Puede copiar y pegar los datos de entrada en el formato - Columna A = ……. y Columna B =.
- Una vez que los datos de entrada estén listos, presione CTRL + MAYÚS + T como teclas de método abreviado para que se ejecute la macro.
- Los pasos de prueba se agregan automáticamente para cada ID de caso de prueba y el documento de caso de prueba se prepara en solo unos segundos.
GetTestcasesASAP
Datos de entrada de muestra
Los datos de entrada se pegan en la primera hoja.
Imagen durante la ejecución de macros presionando CTRL + MAYÚS + T.
Código VBA (macro)
|_+_|Explicación del código
(a) Hojas de cálculo ('GetTestcasesASAP'). Activar: Esta declaración activa la primera hoja.
¿Cuál es mi nombre de usuario y contraseña de enrutador?
(b) lastrow = Sheets ('GetTestcasesASAP'). Cells (Sheets ('GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row: Esta declaración obtiene el recuento de la última fila. Esta vez obtendrá el número total de filas para los identificadores de casos de prueba iniciales recién agregados como parte de los datos de entrada antes de la ejecución de la macro.
(c) Atenuar AddRows como entero: Esta declaración declara la variable AddRows como un tipo de datos enteros.
(d) AddRows = 5: Esta declaración inicializa AddRows con 5. La variable se usa para insertar unas pocas líneas después de cada ID de caso de prueba para que se puedan agregar pasos de prueba estáticos para cada caso de prueba.
(e) Dim i como entero: Esta declaración declara la variable i como el número entero.
(f) i = lastrow : Esta declaración asigna el recuento de la última fila inicial a la variable i.
(g) Hacer mientras yo 1 : Esto hace while loop inserta 6 filas en blanco después de cada identificación de caso de prueba. El bucle comienza desde la última identificación del caso de prueba y avanza hasta la primera identificación del caso de prueba.
Filas (i & ':' & i + AddRows) .Insertar
yo = yo - 1
Lazo
(h) ScreenUpdating = Verdadero : Esta declaración hace que todas las actualizaciones de pantalla sean visibles. Por tanto, el rendimiento de la macro puede ser algo lento. Para optimizar el rendimiento de la macro, también puede configurar ScreenUpdating = Falso .
Configurar ScreenUpdating en False mejora el rendimiento de la macro y acelera su ejecución; sin embargo, no podrá ver los cambios intermitentes que tienen lugar durante la ejecución de la macro. En cambio, los cambios aparecerán solo una vez que se complete la ejecución de la macro.
(i) lastrow = Sheets ('GetTestcasesASAP'). Cells (Sheets ('GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row : Esta declaración calcula el recuento de la última fila nuevamente después de agregar nuevas 6 filas para cada caso de prueba.
(j) yo = 2
(k) Mientras yo<= lastrow + 6
Hojas de cálculo ('GetTestcasesASAP'). Celdas (i, 3) = 'Validar combinaciones de tasas y factores'
Hojas (“GetTestcasesASAP”). Celdas (i + 1, 3) = “Programación y ejecución de trabajos por lotes. '
Hojas de cálculo ('GetTestcasesASAP'). Celdas (i + 2, 3) = 'Comisionar cálculos de liquidaciones'
Hojas de cálculo ('GetTestcasesASAP'). Celdas (i + 3, 3) = 'Cotización rápida y detallada'
Hojas de cálculo ('GetTestcasesASAP'). Celdas (i + 4, 3) = 'Ilustración de beneficios'
Hojas de cálculo ('GetTestcasesASAP'). Celdas (i + 5, 3) = 'Validación de resumen de beneficios'
yo = yo + 7
Aplicar
Este fragmento del ciclo while agrega 6 pasos de pasos de prueba estática para cada caso de prueba al establecer estas líneas posteriormente después de cada ID de caso de prueba.
Los pasos de prueba estática agregados para cada caso de prueba son los siguientes:
- Paso 1: Validar combinaciones de tasas y factores.
- Paso 2: Programación y ejecución de trabajos por lotes.
- Paso 3: Comisionamiento de cálculos de liquidaciones.
- Paso 4: Cotización rápida y detallada.
- Paso 5: Beneficio de la ilustración.
- Paso 6: Validación del resumen de beneficios.
Además, también empuja el siguiente Id. De caso de prueba en la secuencia a 6 + 2, es decir, 8thfila.
P.ej: Si TC1 está en la primera fila, los pasos se agregan de la segunda a la séptima filas y TC2 se empuja a la octava fila. También se sigue una forma similar para el resto de los identificadores de casos de prueba.
Ejemplo de uso n. ° 3
Hay casos en los que el cliente proporciona un archivo de datos enorme en algún lugar cercano a 1000 registros o más y escribir casos de prueba para estos registros enormes y mapear cada dato con cada paso de prueba es un trabajo tedioso. Macro puede reducir los días de esfuerzo a unos pocos minutos, ahorrando así el tiempo de preparación del caso de prueba.
Solución
El archivo de datos proporcionado por el cliente se puede copiar a la hoja habilitada para macros. Al ejecutar la macro, los casos de prueba se crean automáticamente en la segunda hoja al mapear automáticamente los datos de prueba con cada paso de prueba para cada caso de prueba.
Manifestación
- La primera hoja 'Fichero de entrada' y la segunda hoja 'ReadyTestCases' son los principales contribuyentes a la macro.
- Otra hoja 'Sample -InputFile' no juega ningún papel en la macro. Simplemente contiene el archivo de datos de entrada de muestra con fines de demostración.
- Una vez que los datos de 'Sample-InputFile' o el archivo de datos proporcionado por el cliente se copia en la primera hoja, es decir, 'InputFile',
- Ejecute la macro y los casos de prueba se crean automáticamente para cada caso de prueba donde los ID de pedido se establecen como ID de caso de prueba ( Nota: Recuerde colocar el identificador único colocado como la primera columna en el InputFile).
- A partir de ahora, no tenemos una tecla de atajo configurada para la ejecución de la macro, sino que tenemos que ejecutarla a través de la opción de ejecución en el Ver -> Macros -> Seleccione la macro -> Editar -> Ventana VBA.
- El código de macro maneja la adición de pasos de prueba de forma dinámica. Hace una verificación, al final, para ver si alguno de los valores del campo está en blanco, si es así, elimina el paso de prueba por lo mismo, ya que el paso no sería necesario para un campo en blanco. Por ejemplo, si observa el archivo de entrada a continuación, el 2Dakota del NorteEl registro no tiene ningún valor para la fecha de envío y la tercera fila no tiene ningún valor para la región. Por lo tanto, después de la ejecución de la macro, los casos de prueba que se crean automáticamente no tendrán pasos de prueba correspondientes a estos valores en blanco.
Muestra- InputFile
InputFile: después de realizar la copia, pegar datos de la muestra InputFile a InputFile
Nota:
- No pegue el encabezado de la columna de la hoja 'Sample-InputFile'.
- Los campos resaltados en amarillo están en blanco, por lo tanto, los pasos de prueba correspondientes a estos valores en blanco no deben crearse mediante la macro.
Imagen de la hoja ReadyTestcases después de la ejecución de macro.
Código VBA (macro)
|_+_|Explicación del código
# 1) ScreenUpdating = Falso: Las actualizaciones de pantalla no serán visibles si configura ScreenUpdating como False.
# 2) ThisWorkbook.Sheets ('InputFile'). Activar: Esta declaración activa la hoja 'InputFile'.
# 3) nrow = ThisWorkbook.Sheets ('InputFile'). Cells (Rows.Count, 1) .End (xlUp) .Row: Esta declaración obtiene el recuento de las filas totales.
# 4) ncol = ThisWorkbook.Sheets ('InputFile'). Cells (1, Columns.Count) .End (xlToLeft) .Column: Esta declaración obtiene el recuento de las columnas totales.
# 5) i = 1: Esta declaración inicializa i con 1.
# 6) j = 1: Esta declaración inicializa j con 1.
# 7) Para i = 1 hasta ahora
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (i, 1) = ThisWorkbook.Sheets ('InputFile'). Cells (i, 1)
Siguiente yo : Este fragmento de copia del bucle For pega el valor de la primera columna (Id. De pedido en este caso) de la hoja 'InputFile' en cada fila de la hoja 'ReadyTestCases' como el id del caso de prueba.
# 8) lastrow = Sheets ('InputFile'). Cells (Sheets ('InputFile'). Rows.Count, 'A'). End (xlUp) .Row: Esta declaración recalcula el recuento de la última fila del InputFile.
# 9) AddRows = 21: Esta declaración asigna 21 a la variable AddRows. A esta variable se le ha asignado 21 con la intención de insertar 21 filas en blanco adicionales para cada caso de prueba para la adición de pasos de prueba.
# 10) i = lastrow: Esta declaración asigna el último recuento de la última fila a i.
# 11) Hazlo mientras yo 1
Filas (i & ':' & i + AddRows - 1) .Insertar
yo = yo - 1
Lazo : Esta declaración agrega 20 filas para cada caso de prueba, comenzando desde abajo hacia arriba.
# 12) lastrow = Hojas ('ReadyTestCases'). Celdas (Hojas ('ReadyTestCases'). Rows.Count, 'A'). End (xlUp) .Row: Esta declaración recalcula el último recuento total de filas.
# 13) ThisWorkbook.Sheets ('ReadyTestCases'). Activar: La segunda hoja se activa a través de esta declaración.
#14) Dim a : Esta declaración declara la variable a.
#15) a = 1: Esta declaración asigna 1 a a.
# 16) Para a = 1 para lastrow
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 2)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 1, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 3)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 2, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 4)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 3, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 5)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 4, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 6)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 5, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 7)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 6, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 8)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 7, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 9)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 8, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 10)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 9, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 11)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 10, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 12)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 11, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 13)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 12, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 14)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 13, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 15)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 14, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 16)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 15, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 17)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 16, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 18)
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 17, 3) = ThisWorkbook.Sheets ('InputFile'). Cells (a, 19)
a = a + 21
Siguiente a: El fragmento de bucle for mapea los valores de cada columna de la hoja InputFile con cada paso de prueba para cada ID de caso de prueba.
# 17) lastrow = Hojas ('ReadyTestCases'). Celdas (Hojas ('ReadyTestCases'). Rows.Count, 'C'). End (xlUp) .Row : Esta declaración recalcula el recuento total de filas de la hoja ReadyTestCases después de agregar 21 filas para cada id. De caso de prueba.
#18) a = 1: Esta declaración asigna 1 a la variable a.
# 19) ThisWorkbook.Sheets ('ReadyTestCases'). Activar: Esta declaración activa la hoja ReadyTestCases.
# 20) Para a = 1 para lastrow
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a, 2) = 'Verificar fecha de pedido'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 1, 2) = 'Verificar fecha de envío'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 2, 2) = 'Verificar modo de envío'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 3, 2) = 'Verificar ID de cliente'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 4, 2) = 'Verificar nombre del cliente'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 5, 2) = 'Verificar segmento'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 6, 2) = 'Verify City'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 7, 2) = 'Verificar estado'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 8, 2) = 'Verificar código postal'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 9, 2) = 'Verificar región'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 10, 2) = 'Verificar ID de producto'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 11, 2) = 'Verificar categoría'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 12, 2) = 'Verificar subcategoría'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 13, 2) = 'Verificar nombre del producto'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 14, 2) = 'Verificar ventas'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 15, 2) = 'Verificar cantidad'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 16, 2) = 'Verificar descuento'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 17, 2) = 'Verificar beneficio'
a = a + 21
Siguiente a: este fragmento de bucle For agrega pasos de prueba estáticos para cada caso de prueba.
# 21) Deleteblankrows ('ReadyTestCases'): Llame a la función Deleteblankrow para la hoja 'Ready TestCases'.
# 22) ScreenUpdating = Verdadero: Esto le permite visualizar las actualizaciones de pantalla que ocurren como parte de la ejecución de macros.
# 23) Sub Deleteblankrows (hoja ByVal como cadena): El siguiente código es para la función Deletblankrows, que verificará dinámicamente si hay valores en blanco en los campos de datos. En caso afirmativo, el paso de prueba creado para los datos en blanco se eliminará a su vez eliminando dichas filas.
# 24) Dim wks como hoja de trabajo: Esta declaración declara la variable wks como Hoja de trabajo.
# 25) Establecer wks = ThisWorkbook.Worksheets (Hoja): Esta declaración asigna la hoja de semanas proporcionada como parámetro de entrada.
# 26) Dim i tan largo: Este forro declara a I como Long.
# 28) semanas Activar: Esta declaración activa la hoja.
# 29) lastrow = wks.Cells (Sheets (Sheet) .Rows.Count, 'C'). End (xlUp) .Row: Esta declaración obtiene el recuento de la última fila de la hoja.
# 30) Para i = 1 Para lastrow: El ciclo For itera desde la primera fila hasta la última fila.
# 31) Si WorksheetFunction.CountBlank (Range (Cells (i, 2), Cells (i, 3))) = 1 Entonces: Esta condición comprueba si para cada fila, la segunda y la tercera columna cuentan para el valor en blanco como 1.
# 32) Selection.Rows (i) .EntireRow.Delete: Esta declaración elimina la fila seleccionada si la condición es verdadera.
Ejemplo de uso n. ° 4
Las fórmulas de Excel en la plantilla Test Estimates también se pueden ejecutar usando una macro. También se crea un gráfico utilizando la macro.
Manifestación
- Se mantiene una hoja de 'Estimaciones' que permitirá a los usuarios agregar horas estimadas para las fases de prueba, desde la comprensión de los requisitos comerciales hasta la creación, ejecución y reelaboración de la actualización de scripts de prueba.
- Las celdas resaltadas en verde están habilitadas para la entrada del usuario. Estos son los campos de entrada.
- Los resaltados en azul se derivan automáticamente.
- La segunda hoja incluye métricas de retrabajo y la tercera hoja incluye métricas de complejidad.
- El usuario ingresa el tamaño de la complejidad en términos de H, L y M en la columna D, y la columna E busca automáticamente el factor de complejidad usando vlookup del 'Métricas de complejidad' hoja.
- El usuario ingresa el tamaño de la reelaboración en términos de H, L y M en la columna F, y la columna G busca automáticamente el factor de complejidad mediante el vlookup de la hoja 'Métricas de reelaboración'.
- Luego, los factores se utilizan en la columna H para obtener los esfuerzos totales para la estimación.
- Otra macro cuando se ejecuta prepara el gráfico y lo agrega en la cuarta hoja 'Gráfico'.
- Las fórmulas incluidas se manejan a través de la macro usando la tecla de método abreviado CTRL + MAYÚS + E.
Estimados
Métricas de reelaboración
Métricas de complejidad
Gráfico
Hoja de código VBA (macro) para estimaciones
|_+_|Explicación del código
(a) ThisWorkbook.Sheets (1) .Activat: Se activa la primera hoja 'Estimaciones'.
(b) Hojas ('Estimaciones'). Celdas (4, 8) = Hojas ('Estimaciones'). Celdas (4, 2) * Hojas ('Estimaciones'). Celdas (4, 3) * Hojas ('Estimaciones' ) .Células (4, 5) * Hojas ('Estimaciones'). Celdas (4, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 4.
(c) Hojas ('Estimaciones'). Celdas (5, 8) = Hojas ('Estimaciones'). Celdas (5, 2) * Hojas ('Estimaciones'). Celdas (5, 3) * Hojas ('Estimaciones' ) .Células (5, 5) * Hojas ('Estimaciones'). Celdas (5, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 5.
(d) Hojas ('Estimaciones'). Celdas (6, 8) = Hojas ('Estimaciones'). Celdas (6, 2) * Hojas ('Estimaciones'). Celdas (6, 3) * Hojas ('Estimaciones' ) .Células (6, 5) * Hojas ('Estimaciones'). Celdas (6, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 6.
(e) Hojas ('Estimaciones'). Celdas (7, 8) = Hojas ('Estimaciones'). Celdas (7, 2) * Hojas ('Estimaciones'). Celdas (7, 3) * Hojas ('Estimaciones' ) .Células (7, 5) * Hojas ('Estimaciones'). Celdas (7, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 7.
(f) Hojas ('Estimaciones'). Celdas (8, 8) = Hojas ('Estimaciones'). Celdas (8, 2) * Hojas ('Estimaciones'). Celdas (8, 3) * Hojas ('Estimaciones' ) .Células (8, 5) * Hojas ('Estimaciones'). Celdas (8, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y asigna la columna H para la fila 8.
(g) Hojas ('Estimaciones'). Celdas (9, 8) = Hojas ('Estimaciones'). Celdas (9, 2) * Hojas ('Estimaciones'). Celdas (9, 3) * Hojas ('Estimaciones' ) .Células (9, 5) * Hojas ('Estimaciones'). Celdas (9, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 9.
(h) Hojas ('Estimaciones'). Celdas (10, 8) = Hojas ('Estimaciones'). Celdas (10, 2) * Hojas ('Estimaciones'). Celdas (10, 3) * Hojas ('Estimaciones' ) .Células (10, 5) * Hojas ('Estimaciones'). Celdas (10, 7): Esta declaración calcula la columna B * columna C * columna E * columna G y se asigna a la columna H para la fila 10.
(i) Hojas ('Estimaciones'). Celdas (11, 8) = Hojas ('Estimaciones'). Celdas (4, 8) + Hojas ('Estimaciones'). Celdas (5, 8) + Hojas ('Estimaciones' ) .Células (6, 8) + Hojas ('Estimaciones'). Celdas (7, 8) + Hojas ('Estimaciones'). Celdas (8, 8) + Hojas ('Estimaciones'). Celdas (9, 8) + Hojas ('Estimaciones'). Celdas (10, 8): Esta declaración suma la celda H2 a H10 y asigna el valor final a H11. Este valor proporciona el esfuerzo total (en horas).
(j) Para i = 3 a 10
Hojas ('Gráfico'). Celdas (i - 2, 1) = Hojas ('Estimaciones'). Celdas (i, 1)
Hojas ('Gráfico'). Celdas (i - 2, 2) = Hojas ('Estimaciones'). Celdas (i, 8)
Siguiente yo : Esta copia de For Loop pega los datos de la columna 1 y la columna 8 de la hoja Estimaciones en la hoja Gráfico. Esto se hace para que los datos de la hoja Chart se puedan utilizar para preparar un gráfico circular. Hay otra macro escrita para la hoja 'Gráfico' que prepara un gráfico para la misma.
Hoja de código VBA (macro) para gráficos
|_+_|Explicación del código
- Dim rng como rango: Esta declaración declara rng como un valor de rango.
- Dim es como objeto: Esta declaración declara est como valor de objeto.
- Este Workbook.Sheets ('Chart'). Activar: Esta declaración activa la hoja de gráfico.
- Establecer rng = ActiveSheet.Range ('A2: B8'): El rango de A2 a B8 de sheet-Chart se establece en rng.
- Establecer est = ThisWorkbook.Sheets ('Gráfico'). Shapes.AddChart2: Esta declaración se utiliza para iniciar la creación de un nuevo Gráfico en la hoja-Gráfico.
- est.Chart.SetSourceData Fuente: = rng: Esta declaración proporciona un rango de datos para contemplar en el gráfico.
- est.Chart.ChartType = xl3DPieExploded: El tipo de gráfico se establece en 3D Pie of Exploded type. xl3DPieExploded ayuda a determinar este tipo de gráfico.
- est.Chart.HasTitle = True: Esta declaración verifica si el gráfico ya tiene un título.
- est.Chart.ChartTitle.Text = 'Estimaciones de prueba': Esta declaración reemplaza el título del gráfico a 'Estimaciones de prueba'.
- est.Chart.SetElement (msoElementDataLabelCenter): Esta declaración establece las etiquetas de datos y las leyendas del gráfico.
- est.Chart.SetElement (msoElementLegendBottom): Esta declaración coloca las etiquetas de datos en la parte inferior del gráfico.
Formas de ejecutar una macro
Una macro se puede ejecutar de 4 formas:
- Usando el icono Ejecutar en la ventana del editor de VBA.
- En el archivo de Excel, seleccione la opción de menú Ver -> Macros -> Ver macro -> Seleccione el nombre de la macro y seleccione Ejecutar.
- Cree un atajo mientras crea la macro, y al presionar las teclas de atajo se activará la ejecución de la macro.
- La forma más fácil de usar es crear un botón de acción ( P.ej. Botón de comando) al que se asignaría una macro que, al hacer clic, desencadenaría la ejecución de la macro.
Veremos cómo agregar un botón de comando y asignar una macro al botón. Cuando se hace clic en el botón, se ejecutará la macro.
Agregar un botón de control de formularios en Excel
- Seleccione Menú 'Desarrollador' -> Insertar -> Controles de formulario -> Icono de botón de selección y agregue el botón en la hoja de Excel.
- Ingrese el nombre y el valor de texto del botón. El nombre del botón se usa en la codificación VBA para reconocer este botón de comando, mientras que el texto es lo que se muestra en el botón.
- Ahora haga clic derecho en el botón de comando y seleccione la opción 'Asignar macro' , aparece la lista de macros, seleccione el nombre de la macro que desea asignar.
- Una vez asignada la macro, al hacer clic en el botón se activa la ejecución de la macro asignada.
- En este ejemplo, el 'Obtener estimaciones de prueba' El botón está asignado a 'Estimados' macro.
- De manera similar, agregaremos un botón de comando para la hoja del gráfico y asignaremos la macro para que el gráfico active la generación del gráfico.
- Al hacer clic en el 'Crear gráfico' El botón ejecuta la macro de Chart. Esto mejora la usabilidad de la macro.
Conclusión
Estos fueron algunos ejemplos en tiempo real que podrían ser parte de la rutina diaria del evaluador en el trabajo, que podrían identificarse inteligentemente para la generación de macros y, por lo tanto, podrían ahorrar una gran cantidad de tiempo en esfuerzos manuales irrelevantes y repetitivos al automatizar la tarea.
Las capturas de pantalla relevantes, el código VBA y la comprensión detallada de cada línea de código se han cubierto en este artículo. Espero que esto le dé una buena ventaja a los QA sobre cómo transformarse de una mentalidad de prueba manual a una mentalidad macro.
Para las personas que creen que el trabajo de los probadores manuales es puramente un trabajo no técnico, demostremos que están equivocados mediante la aplicación requerida de conocimientos técnicos para mejorar la productividad.
Autor: Esta publicación útil en profundidad está escrita por Shobha D. Ella trabaja como líder de proyecto y tiene más de 9 años de experiencia en pruebas manuales, de automatización (IBM RFT y Selenium usando Java) y API.
Lectura recomendada
- Trabajar con objetos de Excel de VBScript
- Creación de marco de Selenium y acceso a datos de prueba desde Excel - Tutorial de Selenium n. ° 21
- Las 5 tareas de prueba más comunes que los evaluadores olvidan probar (y cómo evitar eso)
- Las 5 cosas principales que un evaluador debe tener para sobresalir (y las perspectivas cambiantes del evaluador de software)
- Subtarea JIRA con ejemplo (JIRA Crear subtarea)