Auto-testing for validating the new functionality of the ERP system

Innowise ejecutado pruebas automatizadas de software to ensure that integrating new system functionalities did not compromise the integrity of the existing features.

Desafío

Nuestro cliente introdujo una nueva funcionalidad en su sistema ERP y la integró con la versión existente. Confiaron en Innowise para evaluar la estabilidad de la versión de software desplegada. Proporcionamos servicios de pruebas automatizadas de software, aiming at identifying potential issues in the system and fixing them.

Solución

Innowise elevó el sistema ERP del cliente con un enfoque multifacético de pruebas de software automatizadas. Incorporó pruebas de humo, funcionales y de regresión, todas ejecutadas dentro de una tubería de integración continua/entrega continua (CI/CD). Las pruebas de humo se emplearon para verificar rápidamente la estabilidad de las funcionalidades clave, mientras que las pruebas funcionales fueron vitales para examinar la corrección de cada característica. Las pruebas de regresión fueron cruciales para garantizar que las nuevas actualizaciones no afectaran negativamente a las funcionalidades existentes. La integración de estos métodos de prueba en la canalización CI/CD agilizó el proceso de desarrollo. Este enfoque permitió la rápida identificación y resolución de problemas, y garantizó un despliegue coherente de funciones sólidas y de alta calidad en el sistema ERP.

Evaluación de casos de prueba para la automatización

Al principio, nos encargaron que revisáramos los casos de prueba elaborados por los evaluadores manuales. Aprovechando nuestra amplia experiencia en pruebas de software, profundizamos en cada caso, realizando manualmente los pasos de cada caso de prueba para evaluar su complejidad y viabilidad de automatización. Nuestro objetivo era determinar la forma más eficaz de automatizar las tareas repetitivas y lentas sin afectar a la precisión de los resultados de las pruebas.

Realización de pruebas con humo

Nuestros probadores crearon una colección de casos de pruebas de humo pregrabados que se ponían en marcha con cada nueva compilación. Estas pruebas eran esenciales para confirmar que las principales funcionalidades del software funcionaban, garantizando la coherencia y el rigor. Si una prueba automatizada señalaba un problema, alertaba inmediatamente a nuestro equipo, lo que permitía identificarlo rápidamente y actuar en consecuencia.

La flexibilidad de nuestro proceso permitió a nuestro equipo resolver rápidamente cualquier problema detectado durante la compilación. Aplicamos rápidamente los ajustes necesarios y volvimos a desplegar la construcción sin demora, garantizando una interrupción mínima.

Integración de pruebas funcionales en cada sprint

Pasamos sin problemas de la verificación de amplio alcance de las pruebas de humo al enfoque de pruebas funcionales específicas y meticulosas. Esto garantizó que cada nueva actualización fuera eficaz de forma aislada y se integrara a la perfección con los componentes de software ya establecidos. Realizamos pruebas funcionales en cada sprint para evaluar rigurosamente cada desarrollo incremental y mantener la calidad y cohesión generales del software.

Pruebas de regresión del software

Hemos seguido un proceso ágil pero minucioso para aplicar pruebas de regresión automatizadas. Nuestro equipo creó un entorno de pruebas que reflejaba las condiciones reales de producción, garantizando que nuestros resultados fueran lo más precisos posible. Con Selenium, automatizamos los guiones de las pruebas de regresión, lo que aumentó significativamente la eficiencia, un factor crucial para los sistemas complejos.

Una vez automatizadas, ejecutamos estas secuencias de comandos con la última versión para comprobar si había incoherencias o fallos. Tras ejecutar las pruebas, analizamos a fondo los resultados y detectamos cualquier error o problema que pudiera surgir.

Si detectábamos algún problema, lo solucionábamos rápidamente ajustando el código y volviendo a ejecutar las pruebas para confirmar la eficacia de nuestras correcciones. Este ciclo de pruebas, análisis y perfeccionamiento era una constante con cada nueva actualización del software, lo que garantizaba su estabilidad y la funcionalidad prevista. Este enfoque eficaz de las pruebas de regresión fue clave para mantener la fiabilidad y el rendimiento del software, reduciendo así el riesgo de errores y proporcionando una experiencia de usuario fluida.

Canalización de integración continua/entrega continua (CI/CD)

Además de nuestro riguroso proceso de pruebas, también las hemos integrado en el proceso de integración y entrega continuas (CI/CD), lo que ha mejorado la eficacia y la capacidad de respuesta de nuestro ciclo de desarrollo. Utilizamos la herramienta Allure para elaborar informes detallados, que nos proporcionaron una visión clara de los resultados de las pruebas. Esta integración nos permitió establecer un sistema automatizado en el que las pruebas se lanzaban cada noche. Esta rutina de pruebas nocturnas garantizaba la evaluación inmediata de cualquier nuevo cambio, lo que permitía identificar y resolver los problemas con rapidez. La incorporación de los informes de Allure a nuestro canal de CI/CD permitió que nuestro equipo tuviera acceso a datos completos de las pruebas cada mañana, lo que agilizó la toma de decisiones y mantuvo un enfoque constante en la calidad y la estabilidad. Esta integración aceleró nuestro proceso de pruebas y reforzó la fiabilidad de cada versión de software que entregamos.

Pasos detallados de nuestro proceso CI/CD:

  • Código: Los desarrolladores escribieron y perfeccionaron el código, asegurándose de que cumplía nuestras normas de funcionalidad y diseño.
  • Compromiso: A continuación, confirmamos el código actualizado en nuestro sistema de control de versiones, lo que supone el primer punto de control del proceso.
  • Cree: Este código comprometido se sometió a un proceso de compilación, en el que se convirtió en una forma ejecutable, lista para las pruebas.
  • Pruebas unitarias: Sometimos la compilación a pruebas unitarias, en las que se comprobó la corrección de los componentes individuales. Se llevó a cabo para garantizar que cada componente funcionara a la perfección.
  • Pruebas de humo: Tras las pruebas unitarias, realizamos pruebas de humo en la compilación para determinar rápidamente si las funcionalidades críticas funcionaban como se esperaba.
  • Compromiso: Tras las pruebas de humo, volvemos a enviar el código al sistema de control de versiones, incorporando los cambios realizados tras las pruebas.
  • Consulte: Revisamos a fondo cada compromiso, asegurándonos de que los cambios cumplían nuestras normas de calidad y se ajustaban a los objetivos del proyecto.
  • Puesta en escena: La compilación se trasladó a un entorno de ensayo, que reflejaba fielmente la configuración de producción, para realizar más pruebas.
  • Pruebas del sistema: En la puesta en escena, realizamos pruebas exhaustivas del sistema para validar la compilación en un entorno que simulaba el uso en el mundo real.
  • Producción: Una vez que la compilación superó con éxito todas las fases de las pruebas, se desplegó en el entorno de producción, poniéndola a disposición de los usuarios finales.

Tecnologías

PythonPytest, Selenium, Allure

VSC

Git, Gitlab

AWS Grafana IAM, SNS, SQS, KMS, RDS(PostgreSQL), S3, SES

Gitlab, Docker, Docker Compose

Proceso

Metodología ágil y estructura de sprints

En nuestro proyecto nos ceñimos estrictamente a la metodología ágil, estructurando nuestro proceso de desarrollo en sprints de dos semanas. Este enfoque nos permitió dividir el proyecto en partes manejables, garantizando la coherencia y la eficiencia en cada fase.

Gestión de tareas y colaboración en equipo

Al principio de cada sprint, establecíamos objetivos y tareas claros, que se controlaban con Jira. Esta herramienta mantuvo a nuestro equipo alineado y en el buen camino. La empleamos no solo como rastreador de tareas, sino también como eje central de colaboración y comunicación, para que todos los miembros del equipo estuvieran siempre al tanto de los últimos avances y prioridades.

Revisión de sprints e informes detallados

A medida que nos acercábamos al final de cada sprint, nos centrábamos en consolidar nuestro trabajo y prepararnos para la revisión del sprint. Recopilamos cuidadosamente informes detallados que destacaban la cobertura y los resultados de nuestras pruebas. Estos informes eran algo más que un resumen de las tareas completadas: ofrecían un análisis en profundidad de lo que habíamos conseguido, los retos a los que nos habíamos enfrentado y cómo los habíamos superado. También incluían información sobre nuestros procesos de pruebas y cualquier aprendizaje que pudiéramos aplicar en el siguiente sprint.

Team required

3

AQA Ingenieros

1

Ingeniero DevOps

Resultados

La implantación de pruebas automatizadas para el sistema ERP de nuestro cliente se tradujo en mejoras y eficiencias notables:

  • Lanzamiento más rápido de nuevas funcionalidades: con las pruebas automatizadas, las nuevas funcionalidades se lanzaron el doble de rápido en comparación con el proceso manual anterior.
  • Reduction in bugs: The integration of CI/CD led to a reduction in bugs reaching production, significantly enhancing the software’s reliability.

Ante este resultado positivo, nuestro cliente ha expresado su entusiasmo por nuestra colaboración. Reconocen el valor que aportan a su negocio nuestra experiencia y la implantación de tecnologías de vanguardia. En el futuro, colaboraremos estrechamente con nuestro cliente para aprovechar los éxitos conseguidos y explorar nuevas oportunidades de mejorar sus sistemas y procesos.

    Contáctenos

    Reserve usted una llamada o rellene usted el siguiente formulario y nos pondremos en contacto con usted cuando hayamos procesado su solicitud.

    Envíenos un mensaje de voz
    Adjuntar documentos
    Cargar archivo

    Puede adjuntar 1 archivo de hasta 2 MB. Formatos de archivo válidos: pdf, jpg, jpeg, png.

    Al hacer clic en Enviar, autoriza a Innowise a procesar sus datos personales de acuerdo con nuestra política de privacidad. Política de privacidad para proporcionarle información relevante. Al enviar su número de teléfono, acepta que nos pongamos en contacto con usted a través de llamadas de voz, SMS y aplicaciones de mensajería. Pueden aplicarse tarifas de llamadas, mensajes y datos.

    También puede enviarnos su solicitud
    a contact@innowise.com
    ¿Qué pasa después?
    1

    Una vez recibida y procesada su solicitud, nos pondremos en contacto con usted para detallarle las necesidades de su proyecto y firmar un acuerdo de confidencialidad. Proyecto y firmaremos un acuerdo de confidencialidad.

    2

    Tras examinar sus deseos, necesidades y expectativas, nuestro equipo elaborará una propuesta de proyecto con el alcance del trabajo, el tamaño del equipo, el plazo y los costes estimados con el alcance del trabajo, el tamaño del equipo, el tiempo y las estimaciones de costes.

    3

    Concertaremos una reunión con usted para hablar de la oferta y concretar los detalles.

    4

    Por último, firmaremos un contrato y empezaremos a trabajar en su proyecto de inmediato.

    flecha