Seminario web destacado: MISRA C++ 2023: todo lo que necesita saber | Vea ahora

Tiempo de leer: 3 minutos

General

Una institución de servicios financieros multinacional líder produce aplicaciones que permiten a sus clientes acceder a una variedad de servicios de banca personal, hipotecas y préstamos a través del sitio web de la empresa.

El Desafío

Como muchas otras instituciones financieras, DevOps fue una iniciativa clave en esta organización líder de servicios financieros y los equipos de desarrollo estaban bajo presión para acelerar la entrega de software. Tenían cientos de microservicios de Java, muchos de los cuales contenían código heredado que tenía poca cobertura de código. La evidencia indicó que los cambios realizados en los servicios con menor cobertura de código se correlacionaron con tasas de defectos significativamente más altas.

La productividad del desarrollador fue otra iniciativa importante. La mala cobertura estaba creando una cantidad alarmante de reprocesamiento al final del ciclo. Además, los desarrolladores pasaban demasiado tiempo tratando de crear manualmente pruebas unitarias para aumentar la cobertura. Estos desafíos estaban creando imprevisibilidad tanto en la calidad como en los plazos de entrega. Los líderes de entrega de software buscaban una manera de ayudar a los desarrolladores a trabajar de manera más eficiente para aumentar la productividad sin sacrificar la calidad.

El enfoque

La organización determinó que necesitaban encontrar una solución que:

  • Mida los niveles de cobertura de código existentes para los esfuerzos de prueba manuales y automatizados.
  • Automatice la generación de pruebas unitarias para maximizar la cobertura.
  • Admite las siguientes herramientas y tecnologías.
    • Marcos de prueba JUnit 4 y 5
    • IDE de IntelliJ y Eclipse
    • Sistemas de compilación Maven y Gradle
    • Sistemas CI de Jenkins y GitHub
    • Primavera, bota de primavera y Lombok

La empresa avanzó con una prueba de concepto con Jtest donde Parasoft proporcionó
con ellos:

  • Excelente orientación y soporte para implementar la solución de pruebas de Java para ejecutar pruebas unitarias
  • Visibilidad y métricas procesables de una colección automatizada de niveles de cobertura de código existentes
  • Generación con un solo clic de pruebas unitarias que triplicaron la cobertura en solo unos minutos

La Solución

Usando IA para automatizar la generación de pruebas unitarias, Jtest ofreció algunas capacidades claramente diferenciadas que facilitaron la construcción del caso de negocios.

  • Asistente de pruebas unitarias. Unit Test Assistant de Parasoft Jtest habilitado para IA es un complemento IDE que ayuda a guiar a los usuarios a través de la práctica de pruebas unitarias con acciones sencillas de un solo clic para crear, escalar y mantener pruebas unitarias.
  • Análisis de impacto de pruebas. Jtest aprovecha la IA para apuntar selectivamente solo al código modificado e identificar el subconjunto correcto de pruebas para validar esos cambios.
  • Compatibilidad con Spring y Spring Boot. El soporte especializado para estos marcos reduce una gran cantidad de esfuerzo para los desarrolladores para pruebas de MVC, simulación y más.
  • Cobertura agregada. Los desarrolladores pueden ver marcadores de cobertura de código dentro del código para una cobertura de código combinada basada en múltiples prácticas de prueba, como pruebas unitarias, pruebas manuales y pruebas funcionales. La visión holística enfoca los esfuerzos de prueba, lo que aumenta la eficiencia.
  • Pruebas de seguridad de aplicaciones estáticas (SAST). Una gran ventaja con Jtest es que también puede realizar pruebas de análisis estático automatizado para código con soporte para CWE, OWASP y más. Si bien la empresa no estaba buscando SAST, se dio cuenta de que Parasoft ofrecía una solución que satisfacía su necesidad de probar las vulnerabilidades de seguridad.

Después de implementar Jtest, el equipo de desarrollo de esta organización financiera pudo generar conjuntos de pruebas integrales en cuestión de horas. En unas pocas semanas, alcanzaron su objetivo de una cobertura de código del 85 % en el código modificado para sus microservicios más críticos para el negocio.

Los resultados

Al utilizar Jtest habilitado para IA de Parasoft, el equipo pudo crear mejores pruebas unitarias e impulsar una mayor cobertura de código.

“Desde que implementamos Parasoft Jtest, hemos reducido con éxito la cantidad de tiempo que lleva crear y mantener pruebas unitarias en más del 50 %”.

—Director de desarrollo en la organización de servicios financieros

La solución entregó resultados comerciales positivos para sus iniciativas estratégicas.

  1. Mayor productividad del desarrollador. La ganancia de productividad del desarrollador de Java se estimó en 4 a 10 horas por semana de tiempo por desarrollador que podría pasar de las pruebas unitarias a la innovación. Eso suma más de 20,000 100 horas al año para su equipo de XNUMX desarrolladores.
  2. Calidad de código mejorada. Las tasas de defectos se redujeron en más del 20%, lo que resultó en:
    • Entrega acelerada
    • Reelaboración reducida
    • Mayor confianza en las entregas de software

La firma financiera pudo crear mejores pruebas unitarias e impulsar una mayor cobertura de código con pruebas unitarias impulsadas por IA. Lograron resultados significativos que les permitieron entregar rápidamente software de alta calidad.

  • Creación de pruebas unitarias 100 % más rápidas. La generación con un solo clic de pruebas unitarias para código y servicios heredados mejoró la productividad de los desarrolladores. Construyeron un conjunto completo y significativo de casos de prueba JUnit dos veces más rápido.
  • 85% de cobertura de código en pocas semanas. La empresa aumentó la cobertura de código del 20 % al 85 % en promedio para sus microservicios más críticos para el negocio.
  • Reducción del 90 % en el tiempo de ejecución de la prueba de regresión en su canalización de CI/CD. Jtest aprovecha la IA para detectar cambios en el código y solo ejecuta las pruebas que se ven afectadas por el cambio.

Además de aumentar la productividad del equipo de desarrollo, esta organización financiera redujo el costo total de las pruebas. El ROI de la implementación de la herramienta se logró en menos de tres meses. Entregaron código de calidad más rápido con menos defectos a un costo menor.

Encuentre ejemplos reales de cómo la IA y el aprendizaje automático aumentan la cobertura de las pruebas unitarias y eliminan el trabajo redundante.

  • Industria: Financiero
  • Tamaño de la empresa: 42,000
  • Ubicación: Estados Unidos/Global
  • Solución: jprueba