automated regression testing
Este tutorial explica los desafíos de las pruebas de regresión automatizadas. También aprenderemos sobre el proceso y los pasos para automatizar las pruebas de regresión:
Aprenderemos cómo automatizar los casos de prueba de regresión comenzando por identificarlos, seleccionar una herramienta para hacer la automatización, hacer análisis de costos, tiempo y esfuerzo, escribir scripts y finalmente entregarlo al equipo de prueba manual para que puedan ejecutar los casos de prueba. desde cualquier lugar en cualquier momento.
Si se pregunta por qué solo el conjunto de pruebas de regresión, es porque el conjunto de pruebas de regresión es el principal candidato para la automatización, ya que es el conjunto de casos de prueba que son repetitivos y que requieren mucho tiempo. Por lo tanto, automatizarlos le ahorraría muchos recursos y también consumiría menos tiempo.
Obtendrá informes rápidos sobre los casos de prueba de regresión y también puede utilizar estos pasos para automatizar otros conjuntos de pruebas.
=> Haga clic aquí para ver la serie completa de pruebas de regresión.
Lo que vas a aprender:
- Prueba de regresión automatizada
- Pruebas automatizadas: desafíos en un entorno ágil
- Pasos para automatizar las pruebas de regresión
- Conclusión
Prueba de regresión automatizada
Recientemente, cuando quise comenzar mi nuevo Proyecto de Pruebas Automatizadas con cuatro recursos, pensé en aplicar cualquiera de las metodologías ágiles. Pero no pude continuar porque se me plantearon una serie de preguntas.
Las preguntas eran como:
- ¿Es posible utilizar metodologías ágiles en pruebas automatizadas?
- ¿Puedo usar herramientas tradicionales?
- ¿Debería optar por herramientas de código abierto?
- ¿Cuáles son los desafíos que tengo que enfrentar si estoy implementando la automatización en el entorno ágil?
En este artículo analicemos algunos de los desafíos que enfrentamos al implementar la Automatización con metodologías ágiles. Las pruebas de regresión automatizadas en el entorno ágil representan un riesgo de volverse caóticas, desestructuradas y descontroladas.
Los proyectos ágiles presentan sus propios desafíos al equipo de automatización. La metodología Agile enfatiza la colaboración en equipo y la entrega frecuente de un producto. Factores como el alcance poco claro del proyecto, las iteraciones múltiples, la documentación mínima, las necesidades de automatización tempranas y frecuentes y la participación activa de las partes interesadas, etc., exigen muchos desafíos por parte del equipo de automatización.
Pruebas automatizadas: desafíos en un entorno ágil
Hay varios desafíos ágiles para el equipo de automatización. Sin embargo, un algunos de ellos se resumen a continuación.
Desafío 1:Fase de requisitos
El desarrollador de Test Automation captura los requisitos en forma de 'historias de usuario', que son breves descripciones de la funcionalidad relevante para el cliente.
Cada requisito debe priorizarse de la siguiente manera:
Alto: Estos son requisitos de misión crítica que es absolutamente necesario realizar en la primera versión.
Medio: Estos son los requisitos que son importantes, pero se pueden solucionar hasta que se implementen.
Bajo: Estos son los requisitos que es bueno tener pero no críticos para el funcionamiento del software.
Una vez que se establecen las prioridades, se planean las “iteraciones” de lanzamiento. Normalmente, cada iteración de lanzamiento de Agile tarda entre 1 y 3 meses en entregarse. La gente del cliente / software se toma la libertad de realizar demasiados cambios en los requisitos. A veces, estos cambios son tan volátiles que las iteraciones se eliminan. Estos cambios son mayores desafíos en la implementación del proceso de prueba de Agile Automation.
curriculum vitae de pruebas de software para 1 año de experiencia
Desafío 2:Seleccionar las herramientas adecuadas
Las herramientas tradicionales de prueba final con funciones de grabación y reproducción obligan a los equipos a esperar hasta que finaliza el software. Además, las herramientas tradicionales de automatización de pruebas no funcionan para un contexto ágil porque resuelven problemas tradicionales que son diferentes de los desafíos que enfrentan los equipos de automatización ágil.
La automatización en las primeras etapas de un proyecto ágil suele ser muy difícil, pero a medida que el sistema crece y evoluciona, algunos aspectos se estabilizan y resulta apropiado implementar la automatización. Por lo tanto, la elección de las herramientas de prueba se vuelve fundamental para obtener los beneficios de eficiencia y calidad de Agile.
Desafío 3:Fase de desarrollo de guiones
Los probadores de automatización, los desarrolladores, los analistas de negocios y las partes interesadas del proyecto contribuyen por completo a las reuniones de inicio en las que se seleccionan las “Historias de usuarios” para el siguiente sprint. Una vez que se seleccionan las 'Historias de usuario' para el sprint, se utilizan como base para un conjunto de pruebas.
A medida que la funcionalidad crece con cada iteración, se deben realizar pruebas de regresión para garantizar que la funcionalidad existente no se haya visto afectada por la introducción de una nueva funcionalidad en cada ciclo de iteración. los escala de la prueba de regresión crece con cada sprint y asegura que esto siga siendo una tarea manejable y que el equipo de prueba use la automatización de prueba para la suite de regresión.
Desafío 4:Administracion de recursos
El enfoque ágil requiere una combinación de habilidades de prueba, es decir, se requerirán recursos de prueba para definir escenarios y casos de prueba poco claros, realizar Prueba manual junto con los desarrolladores, escriba pruebas de regresión automatizadas y ejecute los paquetes de regresión automatizados.
A medida que avanza el proyecto, también se requerirán habilidades especializadas para cubrir más áreas de prueba que podrían incluir integración y pruebas de rendimiento.
Debe haber una combinación adecuada de especialistas en dominios que planifiquen y recopilen los requisitos. La parte desafiante en la administración de recursos es encontrar recursos de prueba con múltiples habilidades y asignarlos.
Desafío 5:Comunicación
Debe existir una buena comunicación entre los Pruebas de automatización equipo, desarrolladores, analistas comerciales y partes interesadas. Debe haber una interacción altamente colaborativa entre el cliente y los equipos de entrega. Una mayor participación del cliente implica más sugerencias o cambios por parte del cliente. E implica más ancho de banda para la comunicación.
El desafío clave es que el proceso debe poder capturar e implementar de manera efectiva todos los cambios y la integridad de los datos debe mantenerse. En las pruebas tradicionales, los desarrolladores y probadores son como el agua y el aceite, pero en un entorno ágil, la tarea desafiante es que ambos deben trabajar juntos para lograr el objetivo.
Desafío 6:Reunión diaria de Scrum
La reunión diaria de Scrum es una de las actividades clave en el proceso ágil. Los equipos se reúnen durante 15 minutos en sesiones de pie. ¿Cuál es la efectividad de estas reuniones? ¿Hasta qué punto estas reuniones ayudan a los desarrolladores a practicar la automatización? etc., se discuten en esta reunión.
Desafío 7:Fase de lanzamiento
El objetivo del proyecto Agile es entregar un producto de trabajo básico lo más rápido posible y luego pasar por un proceso de mejora continua. Esto significa que no existe una única fase de liberación para un producto. La parte desafiante radica en las pruebas de integración y las pruebas de aceptación del producto.
Pasos para automatizar las pruebas de regresión
El proceso a seguir para automatizar la regresión se puede dividir con precisión en los siguientes pasos:
Estos 7 pasos se explican a continuación en detalle en términos simples para su fácil comprensión.
1. Identificación
#1) Identifica el Casos de prueba que debería ser parte del conjunto de pruebas de regresión.
- Para comenzar a automatizar los casos de prueba de regresión, lo primero que debe hacer es identificar los casos de prueba de regresión y definirlos correctamente con todos los pasos, datos y requisitos previos.
- Para asegurarse de tener un conjunto de pruebas de regresión eficaz, no olvide incluir:
- Casos de prueba con defectos recurrentes.
- Casos de prueba que cubren escenarios de un extremo a otro.
- Casos de prueba que son más visibles para los usuarios finales.
- Casos de prueba sobre valores límite.
- Buena combinación de casos de prueba positivos y negativos.
- Casos de prueba complejos.
#2) Identifica el herramientas de automatización que se adapten mejor a sus requisitos y al comportamiento de la aplicación. Una vez que los casos de prueba de regresión estén identificados y listos para la automatización, identifique las herramientas que mejor se adapten a sus casos de prueba.
La mejor manera de identificar las herramientas es hacer una matriz con las herramientas y sus requisitos y luego realizar un seguimiento de qué herramienta satisface qué requisitos.
Lectura sugerida => Lista de las mejores herramientas de prueba de automatización
#3) Identifica el Lenguaje de programación que desea utilizar. Con tantas herramientas disponibles en el mercado, estas herramientas admiten varios idiomas. Por lo tanto, es importante identificar el lenguaje de programación en el que desea escribir sus casos de prueba de automatización.
Ejemplo :Supongamos que tenemos un proyecto en el que queremos automatizar un conjunto de pruebas de regresión para una aplicación basada en navegador.
Como se explicó anteriormente, identificaremos los casos de prueba.
- Supongamos que nuestro caso de prueba es 'Verifique que un usuario pueda iniciar sesión correctamente con un nombre de usuario y una contraseña válidos'.
A continuación, identificaremos las herramientas de automatización.
- Un caso de prueba basado en navegador se puede automatizar con ' Selenio ”, “ Ranorex ”,“ Prueba completa ”. Decidamos la herramienta Selenium que mejor se adapte a los requisitos.
Ahora, identifiquemos un lenguaje de programación.
- Queremos utilizar ' Java ”Como lenguaje de programación como un lenguaje altamente soportado.
2. Análisis
#1) Hacer Costo análisis. Es muy importante trabajar dentro de los límites presupuestarios. Por lo tanto, después de la fase de identificación, tendrá una idea de cuántos casos de prueba deben automatizarse y cuáles son las posibles herramientas que se pueden utilizar.
Todos los hallazgos de la fase de identificación lo ayudarán a elaborar un presupuesto aproximado y, por lo tanto, puede obtener cualquier aprobación, etc., si es necesario.
#2) Hacer recurso y esfuerzo análisis para ver si tiene los recursos para trabajar en esto. Junto con el análisis de costos, es muy importante hacer un análisis de recursos y esfuerzo para una mejor asignación de recursos y utilizar su tiempo en el proyecto de manera eficiente.
Al estimar los recursos y los esfuerzos, asegúrese de tener en cuenta los riesgos, como si alguien se enferma o si algunos casos de prueba necesitan más recursos para su ejecución, etc.
#3) Hacer Hora Análisis. Se requiere un análisis de tiempo para asegurarse de que pueda finalizar el proyecto de automatización dentro del presupuesto y los plazos. Mientras trabaja en el análisis de tiempo, será útil preparar un gráfico de línea de tiempo para monitorear el progreso durante el desarrollo.
Para un mejor análisis cronológico del proyecto:
- Identifique las tareas y subtareas en sus proyectos.
- Priorice las tareas y subtareas.
- Dibuje un diagrama de Gantt o un diagrama de red para una mejor representación de la línea de tiempo.
Ejemplo :Siguiendo adelante con nuestro ejemplo en consideración desde la fase de identificación, la explicación de esta fase se da a continuación:
Análisis de costos:
Supongamos que el costo aproximado de este proyecto es una cantidad de $ X.
Recursos y esfuerzo:
Para ello, se debe automatizar un caso de prueba de un extremo a otro y necesitamos un recurso a tiempo completo durante aproximadamente 24 horas y también necesitamos un recurso más para revisar el trabajo. Por tanto, necesitamos 2 recursos y la estimación del esfuerzo es de unas 40 horas.
Análisis de tiempo:
Para esto, dibujemos un pequeño diagrama de Gantt para ver la línea de tiempo.
3. Capacitación / Contratación
#1) Si algunos recursos requieren capacitación , luego planifique su entrenamiento. A veces, es posible que tenga algunos recursos de prueba manual que estén interesados en escribir casos de prueba de automatización o algunas personas hayan trabajado en la automatización pero con herramientas diferentes y estén dispuestas a aprender la herramienta que ha seleccionado para su automatización.
En este caso, identifique estos recursos y planifique su capacitación para que puedan comenzar a trabajar en la automatización de casos de prueba de regresión.
#2) Si necesitamos más recursos, trabajemos en contratación plan. Cuando haya realizado el análisis de recursos para los esfuerzos y si no puede satisfacer las necesidades con los recursos ya disponibles, planifique contratar algunos recursos nuevos con las habilidades adecuadas que se requieren para el proyecto dentro del presupuesto.
Ejemplo:
Supongamos que ya tenemos un recurso que está familiarizado con los conceptos de Java y quiere aprender Selenium. Luego, organizaremos el entrenamiento de selenio para esa persona.
Si no tenemos recursos disponibles para la automatización. Luego, contrataremos a una persona que tenga experiencia en la automatización de tales casos de prueba usando selenio y java.
4. Marco y directrices
#1) Una vez que la herramienta y los recursos estén listos, trabaje para crear una marco de referencia o decidir cuál usar de los marcos existentes. Se pueden usar múltiples marcos ya construidos o puede construir su marco desde cero.
Al seleccionar o construir un marco, asegúrese de involucrar a los componentes, casos de prueba, registros, informes, entrada, conexión a la base de datos, etc.
#2) Decidir por el otro herramientas de apoyo que desea utilizar. Como el desarrollo de un script de automatización es una tarea de desarrollo que implica escribir código, sería mucho mejor descubrir las otras herramientas de desarrollo que serían necesarias para apoyar la escritura de sus scripts.
Por ejemplo Algunas herramientas que pueden ser de ayuda incluyen git, GitHub, Jenkins, etc.
#3) Esboza el pautas para escribir scripts de automatización. Es necesario delinear las pautas para que todos los recursos que trabajan en el proyecto estén sincronizados y utilicen las mismas convenciones de nomenclatura, los mismos procedimientos para el check-in / check-out del código y el mismo lenguaje de programación.
estructura de datos de gráficos de c ++
Ejemplo:
Marco de referencia: Decidamos BDD (desarrollo impulsado por el comportamiento) marco para pruebas de automatización.
Herramientas de apoyo: Las herramientas que necesitamos para respaldar completamente la automatización serán, GitHub, Jenkins, Log4J, Cucumber y JUnit.
5. Scripts de automatización
Empiece a escribir scripts de automatización. Una vez que tengamos todo, es decir, la herramienta, el lenguaje de programación, las habilidades requeridas y los casos de prueba que deben automatizarse, podemos comenzar a escribir scripts de automatización.
Mientras escribimos los guiones, debemos asegurarnos de que:
- Se siguen las Directrices.
- Estamos usando las herramientas.
- Los casos de prueba están modularizados.
- Deberíamos poder reutilizar los componentes si son necesarios en varios casos de prueba.
También debemos asegurarnos de que el código se mantenga correctamente en la herramienta de control de versiones y que todos los miembros del equipo puedan colaborar fácilmente.
Ejemplo:
Escribamos scripts reales para ejecutar este caso de prueba. La muestra de los scripts se puede mostrar a continuación.
Primero, el escenario del pepino para este caso de prueba sería el siguiente:
Característica: verificar la funcionalidad de inicio de sesión
Como usuario quiero iniciar sesión en la aplicación
Esquema del escenario: inicie sesión en la aplicación
Dado que abro la aplicación
Cuando ingreso el nombre de usuario ''
Y escribo la contraseña ''
Y hago clic en el botón Iniciar sesión
Luego voy a la página de inicio
Ejemplos:
| nombre de usuario | contraseña |
| testuser1 | contraseña1 |
| testuser2 | contraseña2 |
Después del archivo de características, implementaremos la definición de paso para los pasos mencionados en el archivo de características.
|_+_|Al final, la implementación real de la clase de funcionalidad de inicio de sesión se vería a continuación:
|_+_|6. Revisión
[imagen fuente ]
# 1) Revisión de código: Una vez que un desarrollador de automatización ha terminado con la escritura de scripts de automatización, es muy importante pasar por los diferentes niveles de revisión del código.
Las revisiones de código ayudan en
- Identificación de verificaciones incorrectas.
- Encontrar puntos de optimización de código.
- Encontrar mejores formas de implementar la funcionalidad para un uso eficiente de los recursos.
Las revisiones de código también exponen el trabajo de un desarrollador a los otros desarrolladores y le dan una perspectiva diferente y también un margen de mejora.
# 2) Revisión de casos de prueba: Junto con la revisión del código, la revisión del caso de prueba también es muy importante. Necesitamos asegurarnos de que los scripts de prueba de automatización cuando se ejecutan realizan el mismo conjunto de acciones y verificaciones que esperamos de los casos de prueba manuales.
Por lo tanto, revisar los casos de prueba de automatización con analistas de negocios o expertos en pruebas ayuda a aumentar la confianza en las pruebas de automatización de esos casos de prueba.
Ejemplo:
Para nuestro ejemplo en consideración, digamos que para la revisión del código obtuvimos comentarios como 'elemento de búsqueda por id y no por nombre'. Aquí, lo tendremos en cuenta y modificaremos nuestro script en consecuencia.
Además, se podría realizar una revisión de prueba para agregar pasos de prueba si se encuentra en la página de inicio después de iniciar sesión correctamente. Luego, también agregaríamos esto a nuestros scripts.
7. Entregar
Entregue los casos de prueba, para que cualquiera pueda ejecutarlos en cualquier momento. Una vez que los scripts de automatización están listos para su uso, es muy importante elaborar un plan de entrega para los scripts de automatización.
Este plan es necesario ya que queremos asegurarnos de que la automatización de los casos de prueba no limite su ejecución a un conjunto específico de personas o habilidades. Todos los miembros del equipo o del proyecto deben poder ejecutar los casos de prueba.
Uno de los posibles planes de entrega es proporcionar un trabajo de Jenkins que se pueda activar para ejecutar los casos de prueba automatizados.
Ejemplo:
En nuestro caso, supongamos que hemos entregado el caso de prueba utilizando un trabajo de Jenkins. Este trabajo de Jenkins toma el código de GitHub, lo compila y ejecuta los casos de prueba en una máquina diferente.
Una vez que el trabajo es exitoso, le muestra el informe de prueba generado. Cualquiera que tenga acceso a Jenkins puede ejecutar este trabajo. Además, este trabajo se puede programar para que se ejecute a una hora específica.
Conclusión
Si podemos enfrentar estos desafíos de una manera bien optimizada, las pruebas de regresión automatizadas en el entorno ágil son una excelente oportunidad para que QA asuma el liderazgo de los procesos ágiles. Está en una mejor posición para cerrar la brecha entre los usuarios y los desarrolladores, comprender qué se requiere, cómo se puede lograr y cómo se puede garantizar antes de la implementación.
La práctica de la automatización debe tener un interés personal en ambos, el resultado, así como continuar asegurando que todo el sistema en evolución cumpla con los objetivos comerciales y sea adecuado para el propósito.
Automatizar un caso de prueba de regresión siempre es útil ya que es el mejor candidato para comenzar pruebas de automatización . Puede seguir los pasos mencionados anteriormente para automatizar cualquier conjunto de pruebas y no solo la regresión.
Las pruebas de automatización también son muy útiles y rentables, y la inversión de tiempo en las pruebas de automatización es solo escribir scripts y mantenerlos. Por lo tanto, las pruebas de automatización deben planificarse y programarse adecuadamente para un proyecto exitoso.
Sobre el Autor: J.B.Rajkumar tiene más de 15 años de experiencia tanto en pruebas académicas como de software. Ha trabajado como entrenador corporativo, jefe de pruebas, gerente de control de calidad y gerente de control de calidad.
Háganos saber sus comentarios / sugerencias sobre este artículo.
=> Visite aquí para ver la serie completa de pruebas de regresión.
Lectura recomendada
- Mejores herramientas de prueba de software 2021 [Herramientas de automatización de pruebas de control de calidad]
- Descarga del libro electrónico Testing Primer
- 4 pasos hacia el desarrollo de la mentalidad de pruebas ágiles para una transición exitosa a un proceso ágil
- Desafíos de las pruebas manuales y de automatización
- Diferencia entre la repetición de pruebas y las pruebas de regresión con ejemplo
- 5 desafíos y soluciones de pruebas móviles
- Pruebas de SaaS: desafíos, herramientas y enfoque de prueba
- Las 10 herramientas de prueba de regresión más populares en 2021