Estrategias de prueba modernas para el desarrollo de aplicaciones IBM i: sentando las bases de la calidad en entornos RPG y CL.

Por Chris White

4 minutos de lectura

Durante décadas, IBM i se ha ganado su reputación como una plataforma sólida como una roca. Sin embargo, en el dinámico entorno de desarrollo actual, centrado en el cliente, la estabilidad ya no es suficiente. Las aplicaciones también deben ser rápidamente adaptables, seguras y resilientes, sin comprometer la calidad. Esta exigencia genera nuevas presiones para los equipos de desarrollo, en particular para aquellos que aún dependen de prácticas heredadas.

Un área donde esta tensión se siente con mayor intensidad es en las pruebas. Desde que tengo memoria, he observado que muchos clientes subestiman o relegan las pruebas rigurosas a las etapas finales de la entrega. Sin embargo, los tiempos están cambiando y las pruebas están empezando a ocupar un lugar central para muchos de nuestros clientes. A medida que los equipos de IBM i se modernizan, las pruebas ya no son un lujo, sino un componente crítico para la salud del software y la velocidad de entrega.

 

DevOps, Agile y la búsqueda de la calidad

La creciente adopción, aunque más lenta de lo esperado, de prácticas Agile, DevOps y CI/CD, incluso en entornos tradicionales de IBM i, está elevando gradualmente la importancia de las pruebas. Estas metodologías modernas buscan acelerar la entrega, pero también requieren mayor consistencia y estándares más altos de calidad del código.

Lamentablemente, muchas empresas que utilizan IBM i siguen dependiendo de pruebas manuales, procesos de control de calidad basados ​​en anécdotas o incluso la verificación por parte del usuario final. Estos enfoques son lentos, propensos a errores e incapaces de adaptarse a los cambios continuos. ¿El resultado? Lanzamientos con errores, regresiones inesperadas y retrasos en la entrega de valor.

En el desarrollo de software moderno, las pruebas unitarias son un requisito básico. Sin embargo, en IBM i —especialmente en entornos RPG y CL— las pruebas unitarias aún son una práctica incipiente. Las razones son comprensibles: históricamente, la plataforma carecía de marcos de prueba, y muchos programas RPG están estrechamente acoplados y son difíciles de aislar para su prueba.

Pero eso está cambiando. Ahora existen herramientas de prueba ligeras para RPG. Y lo que es más importante, se está produciendo un cambio de mentalidad: los desarrolladores de IBM i están empezando a adoptar la idea de que el código comprobable es mejor código: más fácil de mantener, más fácil de refactorizar y más seguro de implementar.

Si es difícil de probar, probablemente sea difícil de mantener.

 

Por qué son importantes las pruebas unitarias

Las pruebas unitarias brindan seguridad durante la refactorización, ayudan a prevenir regresiones y facilitan la incorporación de nuevos desarrolladores. A medida que las organizaciones modernizan sus aplicaciones IBM i, las pruebas unitarias ofrecen una forma práctica de mejorar gradualmente la confianza en el código heredado sin necesidad de reescribirlo por completo.

 

Adoptando el enfoque Shift Left – Con expectativas realistas

El movimiento generalizado en la industria de "desplazar a la izquierda" —que consiste en incorporar las pruebas (y la seguridad) en una etapa más temprana del ciclo de desarrollo— se considera una buena práctica. Sin embargo, no está exento de inconvenientes. He observado, casi sin excepción, que la responsabilidad del control de calidad recae cada vez más en los desarrolladores, de quienes ahora se espera que escriban, ejecuten y mantengan las pruebas, además de entregar nuevas funcionalidades.

La dirección suele pasar por alto esta realidad. Sin inversión en automatización, este cambio simplemente aumenta la carga de trabajo de los desarrolladores y genera cuellos de botella. Las herramientas de pruebas automatizadas, los entornos de prueba y los flujos de trabajo son esenciales para escalar los esfuerzos de calidad sin ralentizar la entrega.

El mensaje es claro: si estás cambiando a la izquierda, debes automatizar.

 

Donde la automatización genera el mayor impacto

La automatización de pruebas no significa intentar automatizar todas las pruebas posibles. En cambio, significa automatizar de forma consistente donde el valor es mayor:

  • Pruebas unitarias: se ejecutan automáticamente como parte de un proceso de compilación o CI.
    * Pruebas de humo: Ejecutar después de la implementación para verificar la funcionalidad básica.
  • Pruebas de regresión: Detecta problemas introducidos por cambios en el código.

Las plataformas DevOps modernas y las herramientas de scripting (como Jenkins, GitHub Actions o soluciones DevOps dedicadas para IBM i, como Rocket DevOps) pueden activar estas pruebas como parte de su canal de entrega. Al combinarse con el control de versiones y la automatización de compilaciones, la automatización de pruebas constituye la base de un proceso de entrega resiliente.

 

La cultura importa: Fomentando la calidad liderada por los desarrolladores

La adopción de pruebas en IBM i no es solo un desafío técnico; a menudo es también un desafío cultural. Muchos equipos siguen trabajando de forma aislada, donde el control de calidad está separado del desarrollo y las pruebas son reactivas en lugar de proactivas.

Para superar esto:

  • Anime a los desarrolladores a responsabilizarse de la calidad, no solo del código.
  • Incluya los objetivos de las pruebas en la planificación del sprint y en las revisiones de rendimiento.
  • Proporcionar capacitación y tiempo para adoptar nuevas prácticas de prueba.
  • Alinee las métricas de prueba (por ejemplo, cobertura de código, tasa de aprobación de pruebas) con los KPI empresariales.

 

Un camino realista hacia la adopción de pruebas en IBM i

Para los equipos de IBM i que recién comienzan, probar la transformación puede parecer abrumador. Pero no tiene por qué ser todo o nada. Aquí les presentamos un camino realista a seguir:

  1. Comience con código nuevo: Introduzca pruebas unitarias para cualquier programa RPG o programa de servicio nuevo.
  2. Concéntrese en las áreas de alto riesgo: Identifique el código heredado que cambia con frecuencia o causa problemas y desarrolle una cobertura de pruebas básica en esas áreas.
  3. Automatice las tareas sencillas: las pruebas de humo y la validación de sintaxis a menudo se pueden automatizar con un mínimo esfuerzo.
  4. Invierte en herramientas: ya sean de código abierto o comerciales, existen herramientas que permiten realizar pruebas unitarias con RPG, analizar el código y automatizar procesos, y merece la pena invertir en ellas.

 

Reflexiones finales: Confianza a través de las pruebas

Las pruebas modernas no buscan la perfección, sino crear ciclos de retroalimentación que ayuden a los equipos a detectar problemas a tiempo, reducir el trabajo manual e implementar con confianza. Para los equipos de IBM i que modernizan sus prácticas de desarrollo, las pruebas sólidas son el primer paso hacia la resiliencia y la agilidad.

Publicaciones relacionadas

Ciberseguridad

Cómo afrontar la paradoja de la modernización

Rocket Software
Lectura de 5 minutos
Afronta la paradoja de la modernización de TI. Descubre por qué fracasan las reescrituras masivas de sistemas y cómo la modernización precisa protege tu infraestructura central a la vez que impulsa la innovación.
Hybrid Cloud

Rocket® DevOps 11.1: Marcando la pauta para 2026

Chris White
6 minutos de lectura
La semana pasada lanzamos Rocket® DevOps 11.1.
Hybrid Cloud

Las complejidades ocultas del lanzamiento de nuevas versiones en IBM® i

Chris White
4 minutos de lectura
Entregar una nueva versión de Rocket DevOps es siempre un hito.