how develop test scripts using top 5 most popular test automation frameworks
Cuando comience a aprender acerca de la automatización de pruebas, debe encontrar el término 'marco de automatización de pruebas'. Quizás algunos de ustedes se sientan incómodos con este término y empiecen a sentir que es algo difícil de entender y aún más difícil de implementar.
Este tutorial está escrito con el objetivo de ayudarlo a comprender los marcos de automatización de pruebas de la manera más simple posible. Lea todos los tutoriales en este ‘ Serie de tutoriales de pruebas de automatización aquí .
Marco de automatización de pruebas (en un lenguaje muy simple) es un 'conjunto de reglas'. Las reglas nos ayudan a escribir scripts de tal manera que resultan en un 'menor mantenimiento'.
Para comprender completamente el concepto del marco, primero tenemos que aprender cómo escribimos scripts simples y luego cómo implementar un marco en ellos.
En la automatización de pruebas, escribimos scripts. Las secuencias de comandos se tratan básicamente de tres 'A':
- ARREGLO
- ACCIÓN
- AFIRMACIÓN
A continuación se muestran los detalles de cada A, con ejemplos:
#1.ARREGLOo identificación de objeto
Identificamos objetos (botones, menús desplegables, etc.) ya sea por sus identificadores, nombres o por sus títulos de ventana, etc.
En el caso de la aplicación web, identificamos por ID de usuario, o por XPath o por CSS o por nombre de clase, etc. Si nada funciona, identificamos los objetos usando las coordenadas del mouse (pero no es un método confiable de identificación de objetos)
Tome este ejemplo de Selenium WebDriver (con C #) en el que identificamos objetos usando el id. (Aplicación web)
|_+_|Otro ejemplo de MS Coded UI (aplicación de escritorio)
|_+_|Después de la identificación, organizamos o almacenamos estos objetos en UIMaps o Object Repository para reutilizarlos en nuestros scripts. Es por eso que este paso se llama ARREGLO.
#2.ACCIÓNen el objeto identificado
¿Cuáles son los conceptos básicos de la programación informática?
Cuando se identifican los objetos, realizamos algún tipo de acciones sobre ellos ya sea con el mouse o con el teclado.Por ejemplo, o hacemos clic, o hacemos doble clic, o pasamos el mouse sobre él o, a veces, arrastramos y soltamos. A veces escribimos en cuadros de texto. Entonces, cualquier tipo de acción que realicemos en estos objetos se cubre en este segundo paso.
Ejemplo 1 : (Selenium WebDriver con C #)
|_+_|Ejemplo 2 : (Interfaz de usuario codificada en MS con C #)
|_+_|#3.AFIRMACIÓN
La aserción es básicamente verificar el objeto con algún resultado esperado. Por ejemplo, si presionamos 2 + 3 en la calculadora, la pantalla debería mostrar 5. En este caso, nuestro resultado esperado es 5. Este concepto ya se explicó en nuestro primer tutorial.
Aquí damos un ejemplo de afirmación:
|_+_|Casi todos los guiones escritos en la automatización de pruebas contienen estas tres cosas: arreglo, acción y afirmación.
Ahora eche un vistazo a un script completo que contiene todos estos pasos. El script abrirá una calculadora, presione 1 + 6 y luego verifique si la pantalla muestra 7 o no.

Ejemplo A:
|_+_|Lo que vas a aprender:
- ¿Qué le pasa a ese guión?
- Hay cinco marcos populares en la automatización de pruebas:
- # 1. Marco lineal:
- # 2. Marco de modularidad:
- # 3. Marco basado en datos:
- # 4. Marco basado en palabras clave:
- # 5. Marco de automatización de pruebas híbridas:
- Conclusión
- Lectura recomendada
¿Qué le pasa a ese guión?
El guión es fácil de entender y espero que entienda el concepto de tres 'A' en el ejemplo anterior. Pero no todo va bien con ese guión.
Este script no permite un mantenimiento sencillo. Tomemos de nuevo el ejemplo de la calculadora, si tenemos que escribir casos de prueba de cada función de la calculadora, habrá muchos casos de prueba. Si hay 10 casos de prueba y en cada prueba, tenemos que definir el mismo objeto, entonces si ocurre algún cambio en el nombre o id del objeto, tenemos que cambiar la parte de identificación del objeto en 10 casos de prueba.
Por ejemplo, tome el ejemplo del botón ADD en el script.
|_+_|Digamos que esta línea se usa en 10 casos de prueba. Ahora, en la próxima versión de la calculadora, el desarrollador ha cambiado el nombre del botón de 'Agregar' a 'Más'. Ahora, cuando ejecutemos nuestros casos de prueba, fallarán y tendremos que cambiar la línea anterior a esto en 10 casos de prueba.
|_+_|Entonces tenemos que mejorar este caso de prueba. Debemos seguir el famoso principio DRY en nuestra codificación. SECO significa 'No se repita'. Debemos escribir la parte de identificación del objeto de tal manera que el objeto debe identificarse solo en un lugar y debe llamarse en todas partes.
Eche un vistazo al script mejorado.
Ejemplo B:
|_+_|En el ejemplo anterior, hemos separado el calWindow y txtResult objetos y muévalos a la parte superior para que puedan usarse en diferentes métodos de prueba. Los hemos definido solo una vez y podemos usarlos en tantos casos de prueba como queramos.
También hemos creado dos funciones. ClickButton () que acepta un nombre de botón y haga clic en él y AddTwoNumbers () que toma dos números cualesquiera y los suma usando el botón de clic función dentro de él.
En el momento en que empezamos a 'mejorar' nuestro código y hacerlo reutilizable y mantenible, significa que estamos haciendo uso de cualquier marco de automatización. Ahora se pone interesante.
Ver también=> ¿Por qué necesitamos el marco para la automatización de pruebas?
Existen cinco marcos populares en la automatización de pruebas :
- Lineal
- Modularidad
- Impulsado por datos
- Impulsado por palabras clave
- Híbrido
Ahora explicaremos cada marco con la ayuda de sus características.
# 1. Marco lineal:
Caracteristicas
- Todo lo relacionado con un script se define dentro de los scripts.
- No le importa la abstracción y la duplicación de código
- La grabación y reproducción normalmente generan código lineal
- Fácil de empezar
- Pesadilla de mantenimiento.
Al leer las 5 características anteriores de Linear Framework, podemos relacionar fácilmente nuestro Ejemplo A con ellas. Este ejemplo utiliza básicamente un marco lineal. Todo lo relacionado con un script se define dentro del script. los ventana de llamada y TxtResult se definen dentro del script. El script no se preocupa por la abstracción y la duplicación de código. También es una pesadilla de mantenimiento, como he explicado anteriormente.
Entonces, ¿por qué deberíamos usar este marco?
Este marco se puede utilizar en proyectos a pequeña escala donde no hay muchas pantallas de IU. Además, cuando usamos cualquier herramienta de automatización por primera vez, normalmente genera código en forma lineal. Para que podamos aprender sobre qué código genera la herramienta de automatización para acciones específicas. Aparte de estas razones, este marco debe evitarse en su secuencia de comandos.
=> Vea aquí el ejemplo de marco lineal y de palabras clave con ejemplo QTP.
# 2. Marco de modularidad:
Caracteristicas
- Los objetos se definen una vez y se pueden reutilizar en todos los métodos de prueba.
- Se crean métodos pequeños y precisos para funcionalidades individuales
- El caso de prueba es la colección de estos pequeños métodos y objetos reutilizables.
- Esto nos permite escribir código mantenible.
Al leer las características anteriores, podemos relacionar nuestro Ejemplo B con estas características. En ese ejemplo, hemos creado una abstracción moviendo el calWindow en la parte superior y definirlo dentro de una propiedad que se puede utilizar en todas partes. Hemos creado dos funciones pequeñas e independientes llamadas ClickButton () y AddTwoNumbers () . Combinamos estas dos pequeñas funciones para crear nuestro script final que prueba la funcionalidad 'Agregar' de la calculadora.
Esto resulta en un mantenimiento más fácil. Si ocurre algún cambio en la interfaz de usuario de la calculadora, tenemos que cambiar solo en las funciones. Nuestros guiones permanecerán intactos. Este marco se utiliza mucho en la automatización. El famoso Page Object Framework (que se usa con Selenium) también es una especie de marco de modularidad. Distribuimos toda la aplicación web en páginas separadas. Los botones, menús desplegables y casillas de verificación de cada página se definen dentro de la clase de esa página. Si ocurre algún cambio en el sitio web, tenemos que cambiar solo en esa clase de página y otras páginas permanecen intactas. Esto da como resultado un mejor mantenimiento y una legibilidad más fácil de los scripts.
La única desventaja de este marco es que requiere buenos conceptos orientados a objetos y fuertes habilidades de desarrollo. Si tiene esos, este marco es muy recomendable.
# 3. Marco basado en datos:
Caracteristicas:
- Los datos de prueba (valores de entrada y salida) se separan del script y se almacenan en archivos externos. Puede ser un archivo CSV, una hoja de cálculo de Excel o una base de datos.
- Cuando se ejecuta el script, estos valores se seleccionan de archivos externos, se almacenan en variables y reemplazan los valores codificados si están presentes.
- Realmente útil en lugares donde el mismo caso de prueba debe ejecutarse con diferentes entradas.
Ejemplo C:
Queremos ejecutar el caso de prueba de adición con tres entradas diferentes.
Los datos son
7 + 2 = 9
5 + 2 = 7
3 + 2 = 5
Almacenamos estos datos (tanto de entrada como de salida) en un archivo CSV externo.

En el script anterior, definimos nuestra fuente de datos en la parte superior del script, que es un archivo .csv.
Hemos proporcionado la ruta de ese archivo.CSV y le hemos dicho al script que lo analice 'Secuencialmente'. Eso significa que el script se ejecutará tantas veces como filas haya presentes en el archivo CSV. En nuestro caso, el script se ejecutará 3 veces. En cada ejecución, agregará los dos números definidos en las dos primeras columnas y verificará que la suma de estos dos números coincida con el número presente en la tercera columna.
Hay varias ventajas de este marco. Todos los valores se almacenan fuera del script, por lo que si se produce algún cambio en la siguiente compilación, solo tenemos que cambiar los datos en el archivo externo y el script permanecerá intacto.
La segunda ventaja es que se puede ejecutar el mismo script para diferentes entradas. Tome el ejemplo de un ERP en el que debe probar el registro de 100 empleados. Puede escribir un script y almacenar los nombres y otros datos relacionados con los empleados en un archivo externo. Ejecutará un script y se ejecutará 100 veces. Cada vez con datos de empleados diferentes. Puede detectar fácilmente en qué datos el script no registra al empleado. Será una ventaja adicional cuando realice pruebas negativas.
=> Vea aquí el ejemplo de marco híbrido y controlado por datos con ejemplo QTP.
# 4. Marco basado en palabras clave:
Caracteristicas:
- Tanto los datos como las acciones se definen fuera del script.
- Requirió el desarrollo de palabras clave para diferentes tipos de acciones.
- La funcionalidad que tenemos que probar se escribe paso a paso en forma tabular utilizando las palabras clave que desarrollamos y los datos de prueba. Almacenamos esta tabla en archivos externos como un marco basado en datos.
- El script analizará esta tabla y realizará las acciones correspondientes.
- Permite al tester manual que no sabe nada de codificación ser parte de la automatización hasta cierto punto.
Ejemplo D:
Definimos los datos (por ejemplo, 1 + 3 = 4) así como las acciones (por ejemplo, hacer clic, borrar, etc.) en un archivo de Excel en forma tabular.

La secuencia de comandos se convertirá en algo como esto (el siguiente código está escrito con el propósito de comprenderlo)
|_+_|El script anterior es solo un analizador del archivo de Excel. Analiza el archivo de Excel línea por línea y busca palabras clave para realizar las acciones respectivas. Si encuentra la palabra clave 'Clic', hará clic en el objeto definido. Si encuentra 'Verificar resultado', realizará la aserción.
Existen varias ventajas de utilizar el marco basado en palabras clave.
La primera ventaja es que este marco es muy útil en aquellos escenarios donde hay grandes posibilidades de cambios en los casos de prueba. Si algún paso cambia en un caso de prueba, no es necesario que toquemos el código. Solo tenemos que actualizar el archivo de Excel y se actualizará el script.
Puede definir todos sus scripts en un archivo de Excel y entregar este archivo de Excel a los probadores manuales para agregar nuevos scripts o actualizar los existentes. De esta manera, los probadores manuales también pueden convertirse en parte de la automatización de pruebas porque no necesitan codificar nada. Solo actualizarán este archivo de Excel cuando sea necesario y los scripts se actualizarán automáticamente.
La segunda ventaja es que su secuencia de comandos se vuelve independiente de la herramienta. Puede mantener sus scripts en un archivo de Excel y si necesita cambiar su herramienta de automatización en algún momento, puede cambiarla fácilmente escribiendo un analizador de Excel en otra herramienta.
La desventaja de este marco es que necesita inventar palabras clave para varios tipos de acciones. En proyectos a gran escala, habrá tantas palabras clave que necesitará recordar y organizar sus scripts y palabras clave. Esto en sí mismo se convierte en una tarea engorrosa en un momento.
En algunos escenarios complejos, donde los objetos no se pueden identificar fácilmente y necesitamos usar coordenadas del mouse y otras técnicas, este marco no es muy útil.
La función de palabras clave sigue siendo un marco favorito para muchos probadores de automatización. Marco de robot by Google es un popular marco impulsado por palabras clave que cuenta con el apoyo de una comunidad activa.
# 5. Marco de automatización de pruebas híbridas:
Caracteristicas:
- La combinación de dos o más de las técnicas anteriores, tomando sus fortalezas y minimizando sus debilidades.
- El marco puede utilizar el enfoque modular junto con un marco basado en datos o basado en palabras clave.
- El marco puede usar scripts para realizar algunas tareas que podrían ser demasiado difíciles de implementar en un enfoque basado en palabras clave.
En palabras simples, marco híbrido, use la combinación de las técnicas mencionadas anteriormente. Podemos utilizar un marco basado en datos que también es de naturaleza modular. Para algunos casos de prueba, podemos usar un enfoque basado en palabras clave y para permanecer podemos usar modular. Entonces, cada vez que mezclamos dos o más técnicas mencionadas en este artículo, en realidad estamos usando un enfoque híbrido.
Conclusión
Espero que el marco de automatización de pruebas ya no sea un término aterrador para usted ahora. Traté de explicar los frameworks más populares de la manera más simple posible.
Los marcos están aquí para hacerle la vida más fácil. Le ayudan a escribir scripts fiables y fáciles de mantener. Sin el uso de frameworks, el campo de la automatización de pruebas es una pesadilla. Por cada pequeño cambio en la aplicación, debe cambiar su código en cientos de lugares.
Por lo tanto, la comprensión de estos marcos es imprescindible para todo evaluador que desee probar la automatización de pruebas.
mejor reproductor y descargador de música para Android
En nuestro siguiente tutorial en esta serie, aprenderemos 'Ejecución y generación de informes de automatización de pruebas'.
Si me he perdido algo en este artículo o si necesita hacer alguna pregunta, no dude en preguntar en la sección de comentarios.
PREV Tutorial #4 | SIGUIENTE Tutorial # 6
Lectura recomendada
- Marcos QTP - Marcos de automatización de pruebas - Ejemplos de marcos lineales y basados en palabras clave - Tutorial QTP n. ° 17
- Ver comandos de automatización de pruebas: una explicación detallada con ejemplos
- Las 10 herramientas RPA de automatización de procesos robóticos más populares en 2021
- ¿En qué se diferencia la planificación de pruebas para proyectos manuales y de automatización?
- Los marcos de automatización de pruebas más populares con ventajas y desventajas de cada uno: tutorial de Selenium n. ° 20
- Marco de automatización de pruebas sin script: herramientas y ejemplos
- Automatización de pruebas: ¿es una carrera especializada? ¿Los probadores normales también pueden realizar automatización?
- Los 25 mejores marcos y herramientas de prueba de Java para pruebas de automatización (Parte 3)