Tome un camino más rápido e inteligente hacia la automatización de pruebas C/C++ impulsada por IA. Descubra cómo >>
Pruebas de regresión funcional con SOAtest como parte de un proceso de integración continua
La integración continua fusiona las copias de trabajo de todos los desarrolladores en una línea principal compartida. Este proceso hace que el desarrollo de software sea más accesible, más rápido y menos riesgoso para los desarrolladores. Lea este artículo para comprender cómo configurar SOAtest para ejecutar pruebas de regresión funcional como parte de CI.
Saltar a la sección
La integración continua fusiona las copias de trabajo de todos los desarrolladores en una línea principal compartida. Este proceso hace que el desarrollo de software sea más accesible, más rápido y menos riesgoso para los desarrolladores. Lea este artículo para comprender cómo configurar SOAtest para ejecutar pruebas de regresión funcional como parte de CI.
Una regresión se define como "una tendencia o cambio hacia un estado inferior o menos que perfecto", que es lo que todos intentamos evitar al desarrollar software. Las pruebas de regresión descubren defectos que se introducen en nuestro software al añadir nuevas funciones, corregir errores o modificar la aplicación.
La prueba de regresión es un método común que la mayoría de los procesos de desarrollo de software utilizan para verificar la funcionalidad del software después de realizar modificaciones en él. Estas pruebas determinan si las nuevas modificaciones afectan la funcionalidad actual del software. Por supuesto, se necesitan nuevas pruebas para la nueva funcionalidad. Las pruebas de regresión aseguran que lo que ya se probó sigue siendo funcional.
Las pruebas de regresión juegan un papel vital en la integración continua (CI) en el desarrollo de software al garantizar que el código recién integrado no rompa la funcionalidad existente ni introduzca regresiones. Estas pruebas brindan la retroalimentación rápida esencial en CI al detectar defectos en el código recién integrado para que puedan identificarse y resolverse rápidamente antes de que afecten la estabilidad del software.
Pruebas de regresión Incluye pruebas funcionales. En la práctica, la mayoría de las pruebas funcionales se convierten con el tiempo en pruebas de regresión. La principal diferencia radica en el momento y el objetivo de estas pruebas.
Prueba funcional Se realiza típicamente durante el desarrollo, cuando se desarrollan, implementan y prueban nuevas funciones. Se centra en funciones, características o casos de uso específicos del software para verificar su comportamiento según lo esperado. Puede implicar diversas técnicas de prueba, como pruebas unitarias, pruebas de API, pruebas de IU, entre otras.
Las pruebas de regresión, por otro lado, se realizan durante el desarrollo como parte de la canalización de CI y/o después de hitos de desarrollo importantes, como al final de un sprint o un ciclo de lanzamiento. Las pruebas de regresión se automatizan tanto como sea posible para que puedan ser repetibles y eficientes, e incluyen pruebas tanto funcionales como no funcionales. Más sobre eso a continuación.
Las pruebas de regresión se benefician significativamente de la automatización y, por lo tanto, las herramientas diseñadas para respaldar la práctica también admiten la automatización de todos los tipos de pruebas. Estas herramientas ayudan a automatizar la ejecución de casos de prueba que verifican la funcionalidad del software, recopilan y analizan resultados e informan sobre cualquier problema de regresión. Aquí hay algunas clases de herramientas de automatización de software de uso común para las pruebas de regresión funcional.
Estos tipos de herramientas mencionados son un subconjunto de las muchas herramientas diferentes que pueden ser necesarias para validar completamente una aplicación. Es fundamental que estas herramientas funcionen juntas a la perfección para facilitar la canalización de CI/CD.
CI es una práctica bien entendida y bien adoptada y un primer paso necesario para mejorar significativamente la velocidad de entrega de aplicaciones. Permite a los desarrolladores enviar sus cambios directamente a una rama maestra del código fuente. Un solo desarrollador puede impulsar potencialmente muchos cambios a la rama maestra a lo largo de un solo día. Para asegurarse de que la rama principal sea impecable, se pueda construir y tenga calidad de producción, es fundamental contar con casos de prueba apropiados para cada cambio, ya que sirve como la copia dorada del código fuente de la aplicación.
Profundicemos en cómo configurar Parasoft SOAtest para ejecutar pruebas funcionales y pruebas de regresión como parte de un proceso de integración continua. Repasaremos los pasos para configurar Parasoft SOAtest con Jenkins, una popular plataforma de automatización que utiliza la aplicación de demostración de código abierto Parabank y la implementaremos con Docker para simplificar las cosas.
El siguiente diagrama muestra el flujo de trabajo descrito en este artículo. Siga los pasos de izquierda a derecha.

Es cierto que esto no está del todo en el espíritu de una verdadera integración continua, ya que estamos comenzando con una imagen de Docker preconstruida. Pero esto nos ahorra la molestia de construir Parabank con Maven e instalar y configurar Tomcat/Java.
El siguiente diagrama muestra un diagrama más realista del mundo real de CI. Tan pronto como un desarrollador verifica el código fuente en GitHub, queremos ejecutar las pruebas de regresión necesarias y cualquier nuevo caso de prueba funcional para verificar que la aplicación aún esté en buen estado, incluso después de los cambios del desarrollador.

Un cambio de código fuente en GitHub activa automáticamente una compilación en Jenkins, y Jenkins inicia una etapa de compilación de Maven, que ejecuta cualquier análisis de código estático y JUnit prueba y compila nuestra aplicación. Si todas las pruebas unitarias pasan, la aplicación empaquetada, parabank.war, se implementa en un servidor de aplicaciones, en este caso, Tomcat, como parte de la etapa de implementación. SOAtest luego inicia la etapa de prueba y ejecuta pruebas de regresión y pruebas funcionales.
Solo después de que las pruebas unitarias y los casos de prueba de caja negra pasan durante la ejecución de SOAtest, los cambios originales del desarrollador se consideran correctos.
Repasemos los requisitos previos y los pasos para configurar el proceso en el primer diagrama.

![]()

![]()




![]()



Si queremos que nuestra compilación de Jenkins falle debido a fallas en la prueba SOAtest, agregamos el indicador -fail cuando invocamos soatestcli. Como esto:
soatestcli.exe -fail -data %TEMP_WORKSPACE_PATH% -resource /Parabank -config "builtin://Demo Configuration" -localsettings %LOCALSETTINGS_PATH%
Si abre la prueba en la interfaz de usuario de SOAtest Desktop, descubrirá que esta falla de prueba es principalmente un problema de configuración de los datos de prueba y del entorno de prueba. El Servicio de Procesador de Préstamos rechazó un préstamo que debería haber aprobado.
Implementar la integración continua en su proceso de desarrollo de software aumenta significativamente la velocidad de entrega de aplicaciones. Soluciones automatizadas como Prueba SOA ofrecer una estrategia de prueba de regresión escalable y eficiente con la capacidad de ejecutar casos de prueba que verifiquen la funcionalidad del software, cotejen y analicen resultados e informen cualquier problema de regresión. La combinación ayuda a los equipos a alcanzar una mayor velocidad de lanzamiento, mejorar la productividad de las pruebas y garantizar una alta cobertura de las pruebas.
Modernice sus aplicaciones: pase de las pruebas manuales a CI/CD