Integración Continua para PowerBuilder

Aumente la agilidad, la productividad y la seguridad

Continuous Integration for PowerBuilder

¿Qué es la Integración Continua (CI)?

El concepto de integración continua (CI) es la práctica de fusionar varias veces al día todas las copias de trabajo de los desarrolladores en una versión centralizada, alojada en un repositorio compartido.

Los despliegues automatizados conducen a la entrega continua (CD), una extensión frecuente de la integración continua.
Para desplegar versiones fiables, la entrega continua implica verificar el cumplimiento de la compilación con los requisitos de calidad, estabilidad y seguridad a través de pruebas automatizadas y análisis de código estático para detectar errores, problemas de calidad y vulnerabilidades (SAST).

Por lo tanto, cada actualización de código se verifica automáticamente y, si se acepta, puede desplegarse en producción.

En última instancia, un flujo de trabajo CI/CD aumentará la agilidad y productividad de su equipo de desarrollo, así como la calidad y seguridad del código.

¿Por qué implementar CI/CD para aplicaciones PowerBuilder?

Antes de enviar su código al repositorio, los desarrolladores deben actualizarlo primero para reflejar los cambios realizados desde que tomaron su copia. 

  1. Si lo hacen con frecuencia, el repositorio contendrá menos cambios y tendrán menos trabajo que hacer antes de enviar sus propias modificaciones.
  2. Se reduce el riesgo de múltiples conflictos de integración cuando su rama de código se fusiona de nuevo.
  3. Al probar el código con frecuencia, los desarrolladores descubrirán errores más temprano. Es menos costoso corregirlos porque los desarrolladores aún tienen en mente el código que acaban de escribir.
  4. CI reduce el riesgo de que otros compañeros de equipo construyan sobre código que contiene errores, lo que generaría errores adicionales y costos de corrección.

Flujo de trabajo de Integración Continua / Entrega Continua

Un flujo de trabajo CI/CD típico estaría compuesto por los siguientes pasos:

Flujo de trabajo de Integración Continua

1. Ejecutar pruebas unitarias localmente

Las pruebas unitarias pueden ejecutarse manualmente, o escribirse y automatizarse según las prácticas de desarrollo dirigido por pruebas.

Todas las pruebas unitarias deben pasar en el entorno local del desarrollador antes de incorporar sus cambios en la versión principal. Esto evita que su trabajo en progreso rompa las copias de otros desarrolladores.

2. Confirmar cambios y generar una compilación

Los desarrolladores envían sus cambios al repositorio y fusionan su rama de código con la versión principal.

Un servidor de compilación compila el código periódicamente o incluso después de cada commit y reporta los resultados a los desarrolladores.

PowerBuilder 2025 mejora la integración continua con un nuevo compilador de alto rendimiento y procesos de automatización simplificados.

Las versiones recientes de PowerBuilder ofrecen una gama de características que simplifican este proceso:

Herramienta de compilación PBAutoBuild

Desde la versión 2021, PowerBuilder incluye PBAutoBuild, para compilar sus aplicaciones e iniciar un flujo de trabajo CI/CD:

  • Compilar su aplicación cliente/servidor con comandos
  • Compilar su proyecto PowerClient con comandos
  • Compilar su proyecto PowerServer con comandos

Si está utilizando PowerBuilder 2019 o 2017, consulte este artículo para aprender a usar la herramienta anterior "PowerBuilder Compiler".

Integración con sistemas de control de código fuente

PowerBuilder también se integra de forma nativa con controles de código fuente como GIT, SVN o sistemas de control de código fuente externos compatibles con SCC. Esto simplifica compartir una versión común del código y obtenerla para propósitos CI/CD.

Lenguaje ORCAScript

El lenguaje ORCAScript está destinado a realizar operaciones de control de código fuente y compilar bibliotecas, espacios de trabajo y ejecutables de PowerBuilder sin intervención humana.

3. Inspeccionar el código

Las herramientas de inspección de código ejecutan un análisis estático para identificar defectos.

Cada bloque de código se verifica contra un conjunto de reglas para encontrar vulnerabilidades de seguridad, errores y problemas de mantenibilidad. Se genera automáticamente un informe para contar y clasificar defectos por severidad, y evaluar si una compilación es aceptable para despliegue o no.

Puede usar Visual Expert para inspeccionar su código PowerBuilder y de base de datos:

   

Localizando problemas a nivel de instrucción


Tablero de revisión de código con indicadores de alto nivel

4. Probar la compilación - Pruebas continuas

La integración continua tiene como objetivo automatizar tareas para verificar y generar compilaciones desplegables tan frecuentemente como sea posible. 

Las pruebas son un paso esencial en este proceso, y la automatización de pruebas es necesaria para lograr este objetivo: cada compilación será probada exhaustivamente e indicadores generados automáticamente ayudarán a evaluar si la compilación es desplegable.

¿Por qué automatizar las pruebas?

Obviamente, cada equipo prueba sus productos.
Sin embargo, toda entrega incluye defectos.

Los probadores se esfuerzan por atraparlos: algunos siempre permanecen, mientras que otros reaparecen, sin importar cuán exhaustiva sea la prueba manual.

Una herramienta de automatización de pruebas es una manera muy eficiente de complementar sus pruebas manuales, para mejorar la eficiencia y cobertura de sus operaciones de prueba.

Leer más: pasos para crear pruebas automatizadas

Tareas de automatización de pruebas

¿Es productiva la automatización de pruebas?

Las generaciones anteriores de herramientas tenían la reputación de requerir demasiado esfuerzo para crear y mantener pruebas, lo que derrotaba el propósito de ganar productividad.

A menudo se basaban en 2 estrategias:

  • Desarrollar scripts para especificar pruebas - costoso de desarrollar.
  • Grabar acciones de prueba en pantalla - fácil de crear, pero no resistente a cambios de GUI y demasiado costoso de mantener.

Las herramientas modernas ofrecen un enfoque diferente, basado en reconocimiento de objetos:

  • Escanear el código para identificar objetos
  • Definir acciones de prueba seleccionando un objeto y un tipo de acción (hacer clic en un botón, ingresar un valor en un campo…). Mucho más simple que escribir scripts, ya no se requieren habilidades de codificación.
  • Debido a que los objetos son estables, las pruebas son muy resistentes al cambio de UI. Los costos de mantenimiento son mucho menores que las herramientas de grabación.

Este ejemplo de prueba automatizada iniciará la aplicación, seleccionará un método de autenticación, ingresará credenciales y hará clic en el botón de inicio de sesión.

Leer más

Pruebas automatizadas vs. manuales

Comparemos ambas estrategias con KPIs críticos:

  Manual Auto  
Precisión Las pruebas manuales son menos precisas debido a posibles errores humanos.
Las pruebas automatizadas son consistentes y confiables.
Productividad Ejecutar muchas pruebas manuales requiere tiempo y es costoso. Las pruebas automatizadas son más rápidas.
Sin costos adicionales para repetir tantas veces como sea necesario.
Inicio Puede comenzar a ejecutar pruebas manuales instantáneamente.
Las pruebas automatizadas requieren tiempo preliminar para predefinir pruebas y acciones.
Flexibilidad Las pruebas manuales son más flexibles: permiten probar aleatoriamente o improvisar pruebas más profundas sobre la marcha en un área muy específica.
Las pruebas de automatización no lo hacen.

Las pruebas automatizadas obviamente aportan beneficios importantes pero no pueden sustituir completamente a las pruebas manuales.

La mejor estrategia consiste en combinar sabiamente los 2 enfoques dependiendo de:

  • la naturaleza y estabilidad de las pruebas 
  • el tiempo disponible para la creación de pruebas automatizadas 
  • la existencia de un flujo de trabajo de integración continua
  • ...

Para ir más lejos:

Pruebas automatizadas para PowerBuilder

Puede usar AscentialTest para automatizar las pruebas de aplicaciones PowerBuilder y PowerServer

  • Integración con SVN a través de control de versiones.
  • Integración con JIRA a través de seguimiento de defectos.
  • Línea de comandos para ejecutar pruebas a través de herramientas de terceros como TFS, Azure y Jenkins.
  • Plugin de AscentialTest para Jenkins.

5. Localizar su aplicación

Las herramientas modernas hacen posible automatizar varias tareas en un flujo de trabajo CI/CD. El soporte multilingüe ahora es una de ellas.

Si su aplicación se despliega en varios países, probablemente la traduzca para servir mejor a los usuarios. Y una vez en producción, tiene que actualizar sistemáticamente las traducciones, para mantener una experiencia de usuario consistente.

 

Herramientas y recursos

Enable for PowerBuilder separa las traducciones del código, e incluye características específicas para integrar en un pipeline CI/CD:

  • Extraer nuevas cadenas e importarlas en la base de datos multilingüe
  • Exportar frases y traducciones a un archivo (Json, XML, Excel)
  • Importar traducciones desde un archivo (Json, XML, Excel)

Puede agregar una tarea multilingüe a su flujo de trabajo, por ejemplo:

  1. Extraer y cargar nuevas frases en la base de datos multilingüe.
  2. Opcionalmente puede pre-traducirlas si la memoria de traducción tiene traducciones.
  3. Importar traducciones en la base de datos multilingüe Generar una NUEVA COMPILACIÓN con frases multilingües actualizadas

Nota: las frases son usualmente traducidas por traductores profesionales. Ellos enviarán de vuelta las traducciones, para importación automática en la base de datos multilingüe. Este segundo proceso es independiente del proceso de compilación.

Nota: AscentialTest proporciona una característica de traducción de pruebas para que el mismo conjunto de pruebas pueda usarse para probar la aplicación objetivo a través de idiomas soportados.