X
BLOG

Cómo aumentar el ROI de las pruebas de Java con Parasoft Jtest

Cómo aumentar el ROI de las pruebas de Java con Parasoft Jtest Tiempo de leer: 7 minutos
Para ayudar a los equipos a lograr calidad y seguridad de manera más confiable y rápida, las empresas pueden aprovechar Parasoft Jtest para las pruebas de Java. Descubra cómo puede aprovechar Jtest para aumentar el ROI de las pruebas de Java, acelerando la entrega de software y aumentando la calidad del software.

En la economía digital actual, las empresas tienen que entregar software más rápido al mercado para mantenerse al día con la demanda de los consumidores. Para lograr esto sin sacrificar la calidad y la seguridad, las organizaciones deben poder probar de manera efectiva los cambios en el código de software de manera completa y rápida. Pero lograr estas pruebas exhaustivas puede ser un cuello de botella, que genera estrés y riesgo para los equipos de software, retrasa la entrega y tiene un impacto directo en el negocio.

Uno de los mayores factores que contribuyen a las demoras en los proyectos de software son los errores que se descubren al final del proceso de desarrollo, lo que ocurre porque la empresa ejerce presión sobre los equipos de desarrollo para mantener los horarios, lo que tiene un efecto secundario directo en las pruebas y la calidad del producto. Para ayudar a abordar este problema, los equipos de desarrollo aprovechan las pruebas unitarias y el análisis de código estático para exponer los defectos al principio del ciclo; sin embargo, estas prácticas tienen sus propios inconvenientes, relacionados con el tiempo y el costo, que pueden provocar un retraso en el logro de la calidad a la mayor brevedad.

Para abordar esos retrasos en la entrega y ayudar a los equipos a lograr calidad y seguridad de manera más confiable y rápida, las empresas pueden aprovechar Parasoft Jtest para que las pruebas de desarrollo de Java sean más eficientes. Ya sea desarrollando un nuevo código o manteniendo una aplicación heredada, Parasoft Jtest puede generar, aumentar, clonar y mutar pruebas unitarias, al mismo tiempo que optimiza la ejecución de esas pruebas, para facilitar mejoras sustanciales en la cantidad de tiempo y costo asociados con las pruebas unitarias. ¿El beneficio "secundario"? Un conjunto significativo de pruebas unitarias que se pueden mantener.

Además, Parasoft Jtest puede escanear archivos de origen para mejorar la seguridad y la calidad de la aplicación durante el proceso de desarrollo. En general, esto ayuda a acelerar la entrega y a aumentar la calidad del software al capturar los defectos antes en el proceso de desarrollo del software.

Aumente el ROI de las pruebas unitarias: creación de pruebas unitarias

Para ilustrar cómo aumentar el ROI en la fase de creación de la prueba unitaria, digamos que una importante institución financiera está implementando una estrategia de migración a la nube con el desarrollo de nuevas aplicaciones Java. El equipo de desarrollo consta de 20 desarrolladores que cuestan $ 100,000 por desarrollador en promedio, por lo que el costo total de desarrollo es de $ 2 millones anuales. La nueva aplicación se lanzará trimestralmente, por lo que el costo de desarrollo por lanzamiento es de $ 500,000. Según nuestra investigación, el equipo de desarrollo promedio dedica un conservador 30% de su tiempo a escribir pruebas unitarias manualmente, lo que sugiere que, para una versión determinada, escribir pruebas unitarias le cuesta a la empresa alrededor de 150,000 dólares.

(1/4)($2M)(.30) = $150,000

(Publicación trimestral) (Costo anual del desarrollador) (Porcentaje de tiempo dedicado a la redacción de pruebas unitarias) = ​​Costo de las pruebas unitarias de redacción

Con Parasoft Jtest, los usuarios han informado que la escritura de pruebas unitarias se puede realizar en la mitad del tiempo. Además de eliminar muchas de las tareas manuales que consumen mucho tiempo asociadas con las pruebas unitarias, Jtest hace esto mediante el uso de IA para generar automáticamente pruebas unitarias tan pronto como se escribe el código para aumentar la cobertura del código. Por lo tanto, en lugar de dedicar el 30% del tiempo de desarrollo a escribir pruebas unitarias, puede llevar solo el 15%, concentrando más de su tiempo en la parte de la lógica empresarial de la prueba.

(1/4)($2M)(.30)(.50) = $75,000

(Publicación trimestral) (Costo anual del desarrollador) (Porcentaje de tiempo dedicado a escribir pruebas unitarias) (Porcentaje de reducción de tiempo con Jtest) = Costo de pruebas unitarias de escritura con Jtest

Esto reduce el costo de escribir pruebas unitarias de $ 150,000 a $ 75,000, lo que resulta en un ahorro de costos de $ 75,000 por versión y un ahorro anual de $ 300,000.

$ 150,000 - $ 75,000 = $ 75,000

Costo original de las pruebas unitarias - Costo de las pruebas unitarias con Jtest = Ahorro de costos con Jtest

($ 75,000 4) (300,000) = $ XNUMX XNUMX

(Ahorro de costos) (Número de lanzamientos por año) = Ahorro total anual con Jtest

Reducir el costo de desarrollo ayuda a generar rentabilidad para el negocio. Además del ahorro de costes, también se ahorra un tiempo valioso. Si la empresa emplea sprints de 2 semanas para el desarrollo, que constan de 10 días hábiles, entonces el 30% o 3 días se asignan a las pruebas unitarias. Para una versión determinada (3 meses), hay 6 sprints totales (por ejemplo: 5 para desarrollo y 1 para pruebas finales). Con estos números, el equipo utiliza 15 días después del lanzamiento para pruebas unitarias.

(5) (10) (. 30) = 15 días

(# de Sprints de desarrollo) (# de días en un Sprint) (Porcentaje de tiempo dedicado a escribir pruebas unitarias) = ​​# de días dedicados a pruebas unitarias para la versión

Jtest reduce este tiempo a la mitad a 1.5 días de pruebas unitarias por sprint o 7.5 días después del lanzamiento se utilizan para las pruebas unitarias por parte del equipo.

(5) (10) (. 30) (. 50) = 7.5 días

(# de Sprints de desarrollo) (# de días en un Sprint) (Porcentaje de tiempo dedicado a escribir pruebas unitarias) (Porcentaje de reducción del tiempo con Jtest) = # de días dedicados a pruebas unitarias para el lanzamiento con Jtest

Ahorrar el negocio 7.5 días es extremadamente valioso cuando tiene poco tiempo para vencer a su competidor en el mercado.

15 - 7.5 = 7.5 días

Prueba unitaria de tiempo original - Prueba unitaria de tiempo invertido con Jtest = Ahorro de tiempo con Jtest

Vale la pena señalar que en este ejemplo, se usa un conservador 30% para el tiempo asignado a escribir pruebas unitarias manualmente, pero a menudo este número es mucho más alto, llegando al 50% dependiendo de la práctica de pruebas unitarias de la organización. Estas organizaciones verán ahorros de tiempo y costos aún mayores con Parasoft Jtest.

Aumente el ROI de las pruebas unitarias: ejecución de pruebas unitarias

Ahora digamos que la misma organización está construyendo su nueva aplicación y, a medida que lo hacen, están generando más y más pruebas unitarias, pasando de pruebas unitarias solitarias (aisladas) que tardan unos segundos en ejecutarse, a pruebas unitarias sociables (nivel de integración). que tardan mucho más en ejecutarse. El tiempo de ejecución del conjunto de pruebas unitarias completo aumenta a 2 horas, y su tiempo de desarrollo general se ve afectado porque 2 horas es mucho tiempo para que un equipo de desarrollo de software espere antes de recibir comentarios sobre los cambios de código. La organización sigue una metodología ágil, por lo que construyen varias veces al día para proporcionar comentarios frecuentes a sus equipos de software, pero debido al tiempo de ejecución de la prueba de unidad de 2 horas, solo pueden ejecutar 3 compilaciones al día, lo que corresponde a 6 horas de unidad general. el tiempo de ejecución de la prueba diariamente, lo que puede resultar en ineficiencia en el proceso de desarrollo.

Para ajustar el ciclo de lanzamiento, el equipo puede optimizar la ejecución de la prueba unitaria con Parasoft Jtest. Jtest reduce el tiempo que lleva ejecutar pruebas unitarias con la automatización de pruebas habilitada por AI, ejecutando un optimizado conjunto de pruebas unitarias basadas en el código que ha cambiado, en lugar de ejecutar el conjunto completo de pruebas. Esta optimización ocurre dentro del IDE del desarrollador antes de que se registre el código, así como durante las compilaciones de CI, mientras que el conjunto de pruebas completo continúa ejecutándose todas las noches. Al optimizar las pruebas que se ejecutan, el tiempo de compilación general se reduce drásticamente y permite una retroalimentación más rápida para los equipos de software. Y la organización puede obtener más compilaciones por día, lo que optimiza la productividad del equipo durante la parte activa del día, lo que resulta en un tiempo de entrega más rápido. Se pueden ver ahorros de tiempo y costos al aprovechar la técnica de prueba de Jtest.

Aumente el ROI del análisis de código estático: escaneo automatizado

Continuemos usando la misma organización para este escenario y mientras están probando, están descubriendo varios defectos de ciclo tardío. Utilizando la métrica de costo por defecto de "Composing Effective Software Security Assurance Workflows" del Instituto de Ingeniería de Software de la Universidad Carnegie Mellon, los defectos encontrados en el ciclo temprano cuestan en promedio 1 hora para encontrarlos y corregirlos, a diferencia de los encontrados en ciclo tardío, que suelen costar 7 veces más, 7 horas. Con base en el salario promedio de $ 100,000, costará ~ $ 48 encontrar y reparar un defecto temprano en comparación con ~ $ 336 para encontrar y reparar un defecto de ciclo tardío. La compañía identifica 20 defectos de ciclo tardío, que suman un total de $ 6,720 y 140 horas de desarrollo (~ 18 días hábiles) para resolver. Con estos datos, es evidente el impacto que tienen los defectos de ciclo tardío en el tiempo y el costo de una versión.

($ 48) (7) (20) = $ 6,720

(Costo de revelador por hora) (Cantidad de horas para encontrar y corregir un defecto de ciclo tardío) (Cantidad de defectos de ciclo tardío) = Costo total de corrección de defectos

[(7) (20)] / 8 = ~ 18 días laborables

[(# de horas para encontrar y corregir un defecto de ciclo tardío) (# de defectos de ciclo tardío)] / (# de horas en un día laboral típico) = Tiempo total de corrección de defectos

Para reducir la cantidad de defectos que aparecen al final del ciclo, Parasoft Jtest habilita a los equipos con análisis de código estático automatizado y pruebas de seguridad, proporcionando más de 1000 reglas que identifican vulnerabilidades y problemas potenciales en el código en el tiempo de desarrollo (ciclo temprano). Si Jtest detecta de manera conservadora el 25% de los defectos del ciclo tardío antes, lo que resulta en 5 defectos del ciclo temprano y deja 15 en el ciclo tardío, entonces esto cuesta $ 5,280 y 110 horas de desarrollo (~ 14 días hábiles) para encontrar y corregir tanto temprano como tarde. defectos del ciclo. Esto reduce el tiempo y el costo de la corrección de defectos para el lanzamiento en aproximadamente un 25%.

($ 48) (1) (5) = $ 240

(Costo por hora del desarrollador) (Cantidad de horas para encontrar y corregir un defecto de ciclo temprano) (Cantidad de defectos de ciclo temprano) = Costo de corrección de defectos de ciclo temprano

($ 48) (7) (15) = $ 5,040

(Costo de revelador por hora) (Cantidad de horas para encontrar y corregir un defecto de ciclo tardío) (Cantidad de defectos de ciclo tardío) = Costo de corrección de defectos de ciclo tardío

$ 240 + $ 5,040 = $ 5,280

Costo de reparación de ciclo temprano + Costo de reparación de ciclo tardío = Costo total de reparación de defectos con Jtest

($ 6,720 - $ 5,040) / $ 6,720 = ~ 25% de ahorro en costos con Jtest

(Costo de remediación original - Costo de remediación con Jtest) / Costo de remediación original = Porcentaje de ahorro en costos con Jtest

[(1) (5)] / 8 = ~ 1 día

(# de horas para encontrar y corregir un defecto de ciclo temprano) (# de defectos de ciclo temprano) / (# de horas en un día laboral típico) = Tiempo de corrección de defectos de ciclo temprano

[(7) (15)] / 8 = ~ 13 días

(Cantidad de horas para encontrar y corregir un defecto de ciclo tardío) (Cantidad de defectos de ciclo tardío) / (Cantidad de horas en un día laboral típico) = Tiempo de corrección de defectos de ciclo tardío

1 + 13 = 14 días

Tiempo de remediación de ciclo temprano + Tiempo de remediación de ciclo tardío = Tiempo total de remediación de defectos

(18-14) / 18 = ~ 22% de ahorro de tiempo con Jtest

(Tiempo de remediación original - Tiempo de remediación con Jtest) / Tiempo de remediación original = Porcentaje de ahorro de tiempo con Jtest

Para desplazar aún más a la izquierda la identificación de problemas, Jtest permite al usuario ejecutar "sobre la marcha" o análisis continuo mientras se realiza el desarrollo, dentro de su IDE. Esto permite al desarrollador solucionar problemas mientras ya están trabajando activamente con el código cuando se introduce el defecto. Esto reduce aún más el tiempo y el costo asociados con la corrección de defectos y aumenta enormemente la calidad a gran velocidad.

Conclusión

Parasoft Jtest es un factor clave para ofrecer calidad a gran velocidad. Los desarrolladores son más capaces de reducir los defectos de ciclo tardío, con mejores pruebas unitarias y análisis de código estático automatizado, lo que les permite dedicar más tiempo al desarrollo de nuevas funciones para el negocio, y esos desarrolladores también pueden beneficiarse de la retroalimentación inmediata, pudiendo identificar rápidamente si sus cambios en el código están rompiendo la funcionalidad de la aplicación y resolviéndola rápidamente. Parasoft Jtest permite que los equipos de desarrollo sean ágiles y entreguen más rápido sin sacrificar la calidad, haciendo que el negocio tenga éxito.

Nueva llamada a la acción

Escrito por

Kapil Bhandari

Kapil es Product Manager en Parasoft, y se centra en Parasoft Jtest. Kapil ocupó varios puestos técnicos que van desde ingeniero de software hasta líder de desarrollo, antes de pasar a la gestión de productos.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft