what is automation testing
Una guía completa para comenzar a realizar pruebas de automatización en su proyecto:
¿Qué son las pruebas de automatización?
¿Dónde está la clave de seguridad en un enrutador?
La prueba de automatización es una técnica de prueba de software para probar y comparar el resultado real con el resultado esperado. Esto se puede lograr escribiendo scripts de prueba o utilizando cualquier herramienta de prueba de automatización. La automatización de pruebas se utiliza para automatizar tareas repetitivas y otras tareas de prueba que son difíciles de realizar manualmente.
¿Desea iniciar la prueba de automatización en su proyecto, pero está luchando con los pasos más básicos que se mencionan a continuación?
- ¿Cómo introducir la automatización en su proyecto?
- ¿Cómo seleccionar la mejor y más adecuada herramienta de automatización?
- ¿Cómo desarrollar scripts de forma eficaz?
- ¿Cómo ejecutar y mantener scripts de prueba?
- Y, finalmente, ¿cuáles son las mejores prácticas que debe seguir para realizar pruebas de automatización exitosas?
Hoy, hemos planeado enriquecer sus conocimientos con una serie de tutoriales sobre “ Introducción a las pruebas de automatización ”. Esta serie de tutoriales de automatización responderá a todas las preguntas anteriores paso a paso con ejemplos simples.
¡Echemos un vistazo a la serie de tutoriales sobre cómo iniciar la automatización en su proyecto!
Proceso de automatización de principio a fin:
Tutorial #1 : La mejor guía para iniciar la automatización en su proyecto
Tutorial #2: Tipos de pruebas automatizadas y algunos conceptos erróneos
Tutorial #3: 10 pasos para introducir la automatización en su proyecto
Tutorial #4: La guía de la A a la Z sobre cómo seleccionar la mejor herramienta de automatización
Tutorial #5: Frameworks de automatización y desarrollo de scripts
Tutorial #6: Ejecución y reporte de Automatización
Tutorial #7: Mejores prácticas y estrategias de automatización de pruebas
Consejos de automatización:
Tutorial #8: 10 consejos que debe leer antes de automatizar su trabajo de prueba
Tutorial #9: ¿En qué se diferencia la planificación de pruebas para proyectos manuales y de automatización?
Tutorial #10: ¿Cuándo optar por la automatización?
Tutorial #11: Desafíos de las pruebas de automatización
Tutorial #12: Guía para implementar la prueba de concepto (POC) en automatización
Tutorial #13: Cómo seleccionar casos de prueba correctos para la automatización
Tutorial #14: Cómo traducir casos de prueba manuales en scripts de automatización
Carrera de automatización:
Tutorial #15: Consejos para convertirse en un mejor probador de automatización
Tutorial #16: Automatización de pruebas: ¿es una carrera especializada? ¿Los probadores normales también pueden realizar automatización?
Herramientas de automatización populares:
Tutorial #17: Tutoriales de Selenium Más de 31 mejores tutoriales de capacitación gratuitos sobre Selenium
Tutorial #18: Tutoriales de QTP
Tutorial #19: Herramienta de prueba de servicios web SoapUI
Tutorial #20: HP LoadRunner para pruebas de rendimiento
Marcos de automatización:
Tutorial #21: ¿Por qué necesitamos un marco para la automatización?
Tutorial #22: Frameworks de automatización más populares
Automatización en Agile:
Tutorial #23: Cómo implementar una automatización eficiente en el mundo ágil
Otras herramientas de automatización:
Tutorial #24: Las mejores herramientas de prueba de automatización
Tutorial #25: Herramienta de automatización de GUI de Sikuli
Tutorial #26: PowerShell: automatización de la interfaz de usuario de la aplicación de escritorio con PowerShell
Tutorial #27: Grabador de automatización de Catalon (alternativa a Selenium IDE)
Tutorial #28: Geb Tool: Automatización del navegador usando Geb Tool
Tutorial #29: AutoIt: Cómo manejar ventanas emergentes usando AutoIt
Tutorial #30: Pepino: automatización con la herramienta pepino y selenio
Tutorial #31: Herramienta de prueba de transportador para pruebas de extremo a extremo de aplicaciones AngularJS
Pruebas de automatización móvil:
Tutorial #32: Tutorial práctico de Appium Studio
Tutorial #33: Tutorial de Appium para principiantes
Tutorial #34: Tutorial de Selendroid: Marco de automatización móvil de Android
Tutorial #35: Tutorial de Ranorex: una potente herramienta de prueba de escritorio, web y móvil
Ejemplos de automatización específicos de dominio:
Tutorial #36: Automatización de aplicaciones JAVA / J2EE
Preparación de entrevistas para trabajos de automatización:
Tutorial #37: Preguntas de la entrevista sobre pruebas de automatización
Tutorial #38: Preguntas de la entrevista de selenio
¡Exploremos el primer tutorial de la serie 'La guía definitiva para las pruebas de automatización'!
Lo que vas a aprender:
- ¿Qué son las pruebas de automatización?
- Automatización: un método rentable para las pruebas de regresión
- Escenarios que requieren automatización
- Pruebas adecuadas para la automatización
- ¿Qué NO automatizar?
- Ejemplo simple de automatización de pruebas
- ¿Qué son las afirmaciones?
- Conclusión
- Lectura recomendada
¿Qué son las pruebas de automatización?
Si un software puede hacer algo, entonces, ¿por qué un software no puede probar un software?
¿Le suena lógica esta afirmación?
Si es así, felicitaciones, ahora está pensando en la automatización de pruebas, que es el punto central que vamos a discutir en esta serie de tutoriales informativos.
Imagínese el primer día en su trabajo como SQA. Se le presenta una aplicación para ser probada. Es una aplicación ERP que contiene cientos de formularios y miles de informes. Empiece su prueba exploratoria abriendo un formulario que contiene alrededor de 50 campos diferentes.
Intenta ingresar datos aleatorios en este formulario que tomó alrededor de 20 minutos. Luego presionas enviar. ¡¡Wolla !! Se muestra un mensaje de error que parece una excepción no controlada. Te vuelves muy feliz. Con orgullo, anota los pasos e informa el error en su sistema de gestión de errores. Gran esfuerzo, te sientes realmente seguro y enérgico. Continúas las pruebas hasta que termina el día y encuentras algunos errores más. “Increíble primer día”, pensaste.
Ahora llega el día siguiente, el desarrollador ha solucionado el problema y lanza una nueva versión de la compilación. Probaste el mismo formulario con los mismos pasos y descubrió que el error está corregido. Lo marcas como fijo. Gran esfuerzo. Ha contribuido a la calidad del producto al identificar ese error y, a medida que este error se corrige, la calidad mejora.
Ahora llega el tercer día, un desarrollador ha lanzado nuevamente una versión más nueva. Ahora, nuevamente debe probar ese formulario para asegurarse de que no se encuentre ningún problema de regresión. Los mismos 20 minutos. Ahora te sientes un poco aburrido.
Ahora imagínese dentro de 1 mes, las versiones más nuevas se lanzan constantemente y en cada lanzamiento, debe probar este formulario extenso más 100 de otros formularios como este, solo para asegurarse de que no haya regresión.
Ahora te sientes enojado. Te sientes cansado . Empiezas a saltarte pasos. Completa alrededor del 50% del total de campos. Tu precisión no es la misma, tu energía no es la misma y definitivamente tus pasos no son los mismos.
Y un día, el cliente informa el mismo error de la misma forma. Te sientes patético. Te sientes inseguro ahora. Crees que no eres lo suficientemente competente. Los gerentes están cuestionando su capacidad.
Tengo una noticia para ti; esta es la historia del 90% de los probadores manuales que existen. No eres diferente.
Los problemas de regresión son los más dolorosos. Nosotros somos humanos. Y no podemos hacer lo mismo con la misma energía, velocidad y precisión todos los días. Eso es lo que hacen las máquinas. Para eso se requiere la automatización, para poder repetir los mismos pasos con la misma velocidad, precisión y energía que se repitieron la primera vez.
Espero que entiendas mi punto !!
Siempre que surja una situación de este tipo, debe automatizar su caso de prueba. La automatización de pruebas es tu amiga . Le ayudará a concentrarse en la nueva funcionalidad mientras se ocupa de las regresiones. Con la automatización, puede completar ese formulario en menos de 3 minutos.
El script llenará todos los campos y le dirá el resultado junto con capturas de pantalla. En caso de falla, puede señalar la ubicación donde falló el caso de prueba, lo que le ayudará a reproducirlo con facilidad.
Automatización: un método rentable para las pruebas de regresión
Los costos de automatización son realmente más altos al principio. Incluye el costo de la herramienta, luego el costo del recurso de prueba de automatización y su capacitación.
Pero cuando los scripts están listos, se pueden ejecutar cientos de veces repetidamente con la misma precisión y bastante rápido. Esto le ahorrará muchas horas de pruebas manuales. Por lo tanto, el costo disminuye gradualmente y, en última instancia, se convierte en un método rentable para Pruebas de regresión .
Escenarios que requieren automatización
El escenario anterior no es el único caso en el que necesitará pruebas de automatización. Hay varias situaciones que no se pueden probar manualmente.
Por ejemplo ,
- Comparación de dos imágenes píxel a píxel.
- Comparación de dos hojas de cálculo que contienen miles de filas y columnas.
- Probando una aplicación bajo la carga de 100.000 usuarios.
- Benchmarks de desempeño.
- Probando la aplicación en diferentes navegadores y en diferentes sistemas operativos en paralelo.
Estas situaciones requieren y deben probarse con herramientas.
Entonces, ¿cuándo automatizar?
Esta es una era de metodología ágil en SDLC, donde el desarrollo y las pruebas irán casi en paralelo y es muy difícil decidir cuándo automatizar.
Considere las siguientes situaciones antes de pasar a la automatización
- El producto puede estar en sus etapas primitivas, cuando el producto ni siquiera tiene UI, en estas etapas debemos tener una idea clara de lo que queremos automatizar. Deben recordarse los siguientes puntos.
- Las pruebas no deben quedar obsoletas.
- A medida que el producto evoluciona, debería ser fácil elegir los scripts y agregarlos.
- Es muy importante no dejarse llevar y asegurarse de que los scripts sean fáciles de depurar.
- No intente la automatización de la interfaz de usuario en las etapas iniciales, ya que la interfaz de usuario está sujeta a cambios frecuentes, lo que provocará fallas en los scripts. En la medida de lo posible, opte por la automatización a nivel de API / sin interfaz de usuario hasta que el producto se estabilice. La automatización de API es fácil de arreglar y depurar.
Cómo decidir los mejores casos de automatización:
La automatización es una parte integral de un ciclo de prueba y es muy importante decidir qué queremos lograr con la automatización antes de decidir automatizar.
Los beneficios que la automatización parece proporcionar son muy atractivos, pero al mismo tiempo, una suite de automatización mal organizada puede estropear todo el juego. Los probadores pueden terminar depurando y arreglando los scripts la mayor parte del tiempo, lo que resulta en una pérdida de tiempo de prueba.
Esta serie le explica cómo una suite de automatización puede volverse lo suficientemente eficiente para recoger los casos de prueba correctos y producir los resultados correctos con los scripts de automatización que tenemos.
Además, he cubierto las respuestas a preguntas como cuándo automatizar, qué automatizar, qué no automatizar y cómo diseñar estrategias de automatización.
Pruebas adecuadas para la automatización
La mejor manera de abordar este problema es idear rápidamente una 'estrategia de automatización' que se adapte a nuestro producto.
La idea es agrupar los casos de prueba para que cada grupo nos dé un tipo de resultado diferente. La ilustración que se muestra a continuación muestra cómo podríamos agrupar nuestros casos de prueba similares, según el producto / solución que estemos probando.
Ahora profundicemos y entendamos lo que cada grupo puede ayudarnos a lograr:
#1) Haga un conjunto de pruebas de todas las funciones básicas Pruebas positivas . Esta suite debe estar automatizada, y cuando esta suite se ejecuta en cualquier compilación, los resultados se muestran de inmediato. Cualquier script que falle en esta suite conduce a un defecto S1 o S2, y esa compilación específica puede ser descalificada. Así que hemos ahorrado mucho tiempo aquí.
Como paso adicional, podemos agregar este conjunto de pruebas automatizadas como parte de BVT (pruebas de verificación de compilación) y verificar los scripts de automatización de QA en el proceso de construcción del producto. Entonces, cuando la compilación está lista, los probadores pueden verificar los resultados de la prueba de automatización y decidir si la compilación es adecuada o no para la instalación y el proceso de prueba adicional.
Esto claramente logra los objetivos de la automatización que son:
- Reduzca el esfuerzo de prueba.
- Encuentra errores en etapas anteriores.
#2) A continuación, tenemos un grupo de Pruebas de extremo a extremo .
En soluciones grandes, probar una funcionalidad de extremo a extremo es la clave, especialmente durante las etapas críticas del proyecto. Deberíamos tener algunos scripts de automatización que también incluyan pruebas de solución de extremo a extremo. Cuando se ejecuta esta suite, el resultado debe indicar si el producto en su conjunto está funcionando como se espera o no.
Se debe indicar el conjunto de pruebas de automatización si alguna de las piezas de integración está rota. Este paquete no necesita cubrir todas y cada una de las pequeñas características / funcionalidades de la solución, pero debe cubrir el funcionamiento del producto en su conjunto. Siempre que tengamos una versión alfa o beta o cualquier otra versión intermedia, estos scripts son útiles y brindan cierto nivel de confianza al cliente.
Para comprender mejor, supongamos que estamos probando un portal de compras online , como parte de las pruebas de extremo a extremo, deberíamos cubrir solo los pasos clave involucrados.
Como se indica a continuación:
- Inicio de sesión de usuario.
- Examinar y seleccionar elementos.
- Opción de pago: cubre las pruebas iniciales.
- Gestión de pedidos de backend (implica comunicarse con múltiples socios integrados, verificar el stock, enviar correos electrónicos al usuario, etc.): esto ayudará a probar la integración de piezas individuales y también el quid del producto.
Entonces, cuando se ejecuta uno de estos scripts, se da la confianza de que la solución en su conjunto está funcionando bien.
#3) El tercer conjunto es el Pruebas basadas en características / funcionalidades .
Para ejemplo Es posible que tengamos la funcionalidad para buscar y seleccionar un archivo, por lo que cuando automatizamos esto podemos automatizar los casos para incluir la selección de diferentes tipos de archivos, tamaños de archivos, etc., para que se realicen pruebas de características. Cuando hay cambios o adiciones a esa funcionalidad, esta suite puede servir como una suite de regresión.
#4) El siguiente en la lista sería Pruebas basadas en UI. Podemos tener otra suite que probará funcionalidades puramente basadas en la interfaz de usuario, como la paginación, la limitación de caracteres del cuadro de texto, el botón de calendario, los menús desplegables, los gráficos, las imágenes y muchas de esas características centradas únicamente en la interfaz de usuario. La falla de estos scripts generalmente no es muy crítica a menos que la interfaz de usuario esté completamente inactiva o ciertas páginas no aparezcan como se esperaba.
#5) Podemos tener otro conjunto de pruebas que son sencillas pero muy laboriosas de realizar manualmente. Las pruebas tediosas pero simples son los candidatos ideales para la automatización, por ejemplo, ingresar detalles de 1000 clientes en la base de datos tiene una funcionalidad simple pero extremadamente tediosa de realizar manualmente, tales pruebas deben automatizarse. De lo contrario, en su mayoría terminan siendo ignorados y no evaluados.
¿Qué NO automatizar?
A continuación se presentan algunas pruebas que no deben automatizarse.
# 1) Pruebas negativas / pruebas de conmutación por error
No debemos intentar automatizar pruebas negativas o de conmutación por error En cuanto a estas pruebas, los evaluadores deben pensar analíticamente y las pruebas negativas no son realmente sencillas para dar un resultado de aprobado o reprobado que puede ayudarnos.
Las pruebas negativas necesitarán mucha intervención manual para simular un escenario real de recuperación de desastres. Solo para ejemplificar, estamos probando características como la confiabilidad de los servicios web; para generalizarlo aquí, el objetivo principal de tales pruebas sería causar fallas deliberadas y ver qué tan bien el producto logra ser confiable.
Simular las fallas anteriores no es sencillo, puede implicar inyectar algunos stubs o usar algunas herramientas en el medio y la automatización no es la mejor manera de hacerlo.
# 2) Pruebas ad hoc
Es posible que estas pruebas no sean realmente relevantes para un producto en todo momento y esto puede incluso ser algo en lo que el evaluador podría pensar en esa etapa del inicio del proyecto, y también el esfuerzo por automatizar una prueba ad-hoc debe validarse contra la criticidad. de la característica que tocan las pruebas.
Por ejemplo , Un evaluador que está probando una función que se ocupa de la compresión / encriptación de datos podría haber realizado pruebas ad-hoc intensas con la variedad de datos, tipos de archivos, tamaños de archivos, datos corruptos, una combinación de datos, usando diferentes algoritmos, en varios plataformas, etc.
Cuando planeamos automatización es posible que deseemos priorizar y no realizar una automatización exhaustiva de todas las pruebas ad hoc solo para esa función, y terminar con un poco de tiempo para automatizar las otras funciones clave.
# 3) Pruebas con configuración previa masiva
Hay pruebas que requieren enormes requisitos previos.
Por ejemplo, Es posible que tengamos un producto que se integre con un software de terceros para algunas de las funciones, ya que el producto se integra con cualquier sistema de cola de mensajería que requiera instalación en un sistema, configuración de colas, creación de colas, etc.
Los 3rdEl software de terceros puede ser cualquier cosa y la configuración puede ser compleja por naturaleza y, si dichos scripts están automatizados, estos dependerán para siempre de la función / configuración de ese software de terceros.
Los requisitos previos incluyen:
En la actualidad, las cosas pueden parecer simples y limpias, ya que se están realizando las configuraciones de ambos lados y todo está bien. Hemos visto en numerosas ocasiones que cuando un proyecto entra en la fase de mantenimiento, el proyecto se traslada a otro equipo, y terminan depurando dichos scripts donde la prueba real es muy sencilla pero el script falla debido a un 3rdproblema de software de fiesta.
Lo anterior es solo un ejemplo, en general, esté atento a las pruebas que tienen configuraciones previas laboriosas para una prueba simple que sigue.
Ejemplo simple de automatización de pruebas
Cuando está probando un software (en la web o en el escritorio), normalmente usa un mouse y un teclado para realizar sus pasos. La herramienta de automatización imita esos mismos pasos mediante el uso de secuencias de comandos o un lenguaje de programación.
Por ejemplo , si está probando una calculadora y el caso de prueba es que debe sumar dos números y ver el resultado. El script realizará los mismos pasos haciendo uso de su mouse y teclado.
El ejemplo se muestra a continuación.
Pasos del caso de prueba manual:
- Iniciar calculadora
- Presione 2
- Presione +
- Presione 3
- Presione =
- La pantalla debería mostrar 5.
- Cierre la calculadora.
Script de automatización:
|_+_|La secuencia de comandos anterior es solo una duplicación de sus pasos manuales. El guión es fácil de crear y también fácil de entender.
¿Qué son las afirmaciones?
La penúltima línea del guión necesita más explicación.
Assert.AreEqual ('5', txtResult.DisplayText, 'La calculadora no muestra 5);
En cada caso de prueba, tenemos algún resultado esperado o predicho al final. En el script anterior, esperamos que se muestre “5” en la pantalla. El resultado real es el resultado que se muestra en la pantalla. En cada caso de prueba, comparamos el resultado esperado con el resultado real.
Lo mismo ocurre con las pruebas de automatización. La única diferencia aquí es que, cuando hacemos esa comparación en la automatización de pruebas, se llama de otra manera en cada herramienta.
Algunas herramientas lo llaman ' Afirmación ', Algunos lo llaman' control ”Y algunos lo llaman“ validación ”. Pero básicamente, esto es solo una comparación. Si esta comparación falla, por P.ej. una pantalla muestra 15 en lugar de 5, entonces esta afirmación / punto de control / validación falla y su caso de prueba se marca como fallido.
Cuando un caso de prueba falla debido a una afirmación, eso significa que ha detectado un error a través de la automatización de la prueba. Debe informarlo a su sistema de administración de errores como lo hace normalmente en las pruebas manuales.
En el script anterior, hemos realizado una afirmación en la penúltima línea. 5 es el resultado esperado, txtResult . DisplayText es el resultado real y si no son iguales, se nos mostrará un mensaje que dice 'La calculadora no muestra 5'.
Conclusión
A menudo, los evaluadores se encuentran con los plazos y mandatos del proyecto para automatizar todos los casos para mejorar las estimaciones de las pruebas.
Hay algunas percepciones 'erróneas' comunes sobre la automatización.
Son:
- Podemos automatizar cada caso de prueba.
- La automatización de pruebas reducirá enormemente el tiempo de prueba.
- No se introducen errores si los scripts de automatización se ejecutan sin problemas.
Debemos tener claro que la automatización puede reducir el tiempo de prueba solo para ciertos tipos de pruebas. Automatizar todas las pruebas sin ningún plan o secuencia dará lugar a scripts masivos que requieren un mantenimiento pesado, fallan con frecuencia y también necesitan mucha intervención manual. Además, en productos en constante evolución, los scripts de automatización pueden volverse obsoletos y necesitar algunas comprobaciones constantes.
Agrupar y automatizar a los candidatos adecuados ahorrará mucho tiempo y brindará todos los beneficios de la automatización.
Este excelente tutorial se puede resumir en tan solo 7 puntos.
Prueba de automatización:
- Es la prueba que se realiza mediante programación.
- Utiliza la herramienta para controlar la ejecución de pruebas.
- Compara los resultados esperados con los resultados reales (afirmaciones).
- Puede automatizar algunas tareas repetitivas pero necesarias ( P.ej. Sus casos de prueba de regresión).
- Puede automatizar algunas tareas que son difíciles de hacer manualmente (P.ej.Escenarios de prueba de carga).
- Los scripts pueden ejecutarse rápida y repetidamente.
- Es rentable a largo plazo.
Aquí, la automatización se explica en términos simples, pero eso no significa que siempre sea fácil de hacer. Hay desafíos, riesgos y muchos otros obstáculos involucrados. Existen numerosas formas en las que la automatización de pruebas puede fallar, pero si todo va bien, los beneficios de la automatización de pruebas son realmente enormes.
Próximos de esta serie:
En nuestros próximos tutoriales, discutiremos varios aspectos relacionados con la automatización.
Éstos incluyen:
- Tipos de pruebas automatizadas y algunos conceptos erróneos.
- Cómo introducir la automatización en su organización y evitar los errores comunes al realizar la automatización de pruebas.
- El proceso de selección de herramientas y comparación de varias herramientas de automatización.
- Frameworks de automatización y desarrollo de scripts con ejemplos.
- Ejecución y reporting de Test Automation.
- Mejores prácticas y estrategias de automatización de pruebas.
¿Está ansioso por saber más sobre todos y cada uno de los conceptos de pruebas de automatización? Esté atento y esté atento a nuestra lista de próximos tutoriales de esta serie y no dude en expresar sus pensamientos en la sección de comentarios a continuación.
Lectura recomendada
- Proceso de prueba de automatización de 10 pasos: cómo iniciar las pruebas de automatización en su organización
- Tutorial de Geb: pruebas de automatización del navegador con la herramienta Geb
- Sikuli GUI Automation Testing Tool - Guía para principiantes, parte 2
- Guía paso a paso para implementar la prueba de concepto (POC) en las pruebas de automatización
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- ¿Los probadores están perdiendo el control sobre las pruebas debido a la automatización?
- Desafíos de las pruebas manuales y de automatización
- 10 consejos que debe leer antes de automatizar su trabajo de prueba