Integración Continua para PowerBuilder

Aumente la agilidad, la productividad,
la calidad 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 todas las copias de trabajo de los desarrolladores en una versión centralizada, alojada en un repositorio compartido, varias veces al día.

La automatización de los despliegues conduce a la entrega continua (CD), el cual es una extensión común de la integración continua. Para desplegar versiones fiables, integra la verificación de la conformidad de la compilación con los requisitos de calidad, estabilidad y seguridad mediante pruebas automatizadas y análisis de código estático para detectar bugs, problemas de calidad y vulnerabilidades (SAST).

Esto significa que cada actualización del código se comprueba automáticamente y, si se acepta, puede ser desplegada en producción.

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

¿Por qué implementar la integración continua para las aplicaciones PowerBuilder?

Antes de enviar su código al repositorio, los desarrolladores deben primero actualizarlo 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 antes los errores. Es menos costoso arreglarlos porque los desarrolladores siguen teniendo en mente el código que acaban de escribir.
  4. La integración continua reduce el riesgo de que otros compañeros de equipo desarrollen sobre el código que contiene errores, lo que generaría errores adicionales y costes de reparación.

Flujo de trabajo de la integración continua

Un flujo de trabajo de IC típico estaría compuesto por los siguientes pasos:

Flujo de trabajo de integración continua

1. Ejecutar las pruebas unitarias localmente

Las pruebas unitarias pueden ejecutarse manualmente o escribirse y automatizarse de acuerdo con 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 a la versión principal. Esto evita que su trabajo en curso rompa las copias de otros desarrolladores.

2. Confirmar los cambios y generar una nueva compilación (build)

Los desarrolladores envían sus cambios al repositorio y fusionan su rama de código con la versión principal. Un servidor de construcción compila el código periódicamente o incluso después de cada commit y reporta los resultados a los desarrolladores.

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

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 checa con un conjunto de reglas para encontrar vulnerabilidades de seguridad, errores y problemas de mantenibilidad. Se genera automáticamente un informe para contar y clasificar los defectos por gravedad, y evaluar si una compilación es aceptable para su despliegue o no.

Puedes utilizar Visual Expert para inspeccionar tu código de PowerBuilder y de la base de datos:

   

Localizar los problemas a nivel de instrucción y solucionarlos


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

4. Probar la compilación (build) - Pruebas continuas

La integración continua tiene como objetivo automatizar las tareas para verificar y generar builds desplegables con la mayor frecuencia posible.

Las pruebas son un paso esencial en este proceso, y su automatización es necesaria para lograr este objetivo: cada compilación se probará a fondo y los indicadores generados automáticamente ayudarán a evaluar si la compilación es desplegable.

¿Por qué automatizar las pruebas?

Obviamente, todos los equipos prueban sus productos.
Sin embargo, toda entrega incluye defectos.

Los testers se esfuerzan por detectarlos: algunos siempre permanecen, mientras que otros reaparecen, por muy exhaustivas que sean las pruebas manuales.

Una herramienta de automatización de pruebas es una forma muy eficaz de complementar sus tests manuales, para mejorar la eficacia y la cobertura de sus operaciones de prueba.

Más información: pasos para crear pruebas automatizadas

Tareas de automatización de pruebas

¿Es productiva la automatización de pruebas?

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

La automatización de pruebas suele basarse en dos estrategias:

  • Desarrollar scripts para especificar las pruebas - desarrollo costoso.
  • Registrar las acciones de las pruebas en la pantalla - fácil de crear, pero no resistente a los cambios de la interfaz gráfica y demasiado caro de mantener.

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

  • Exploración del código para identificar los objetos.
  • Definir acciones de prueba seleccionando un objeto y un tipo de acción (hacer clic en un botón, introducir un valor en un campo...) es mucho más sencillo que escribir scripts, ya que no se requieren conocimientos de código.
  • Como los objetos son estables, las pruebas son muy resistentes a los cambios de la interfaz de usuario. Los costes de mantenimiento son mucho menores que los de las herramientas que utilizan un recorder.

Este ejemplo de prueba automatizada lanza la aplicación, selecciona un método de autenticación,
introduce las credenciales y hace clic en el botón de inicio de sesión.

Leer más

Pruebas automatizadas y manuales

Comparemos ambas estrategias con los KPI críticos:

  Manual Auto  
Precisión Las pruebas manuales son menos precisas debido a los posibles errores humanos.
Las pruebas automatizadas son coherentes y fiables.
Productividad Ejecutar muchas pruebas manuales lleva mucho tiempo y es caro. Las pruebas automatizadas son más rápidas.
Sin costes adicionales para repetir tantas veces como sea necesario.
Inicio Puede empezar a ejecutar pruebas manuales al instante.
Las pruebas automatizadas requieren un tiempo previo a las pruebas y acciones predefinidas.
Flexibilidad Las pruebas manuales son más flexibles: permiten realizar pruebas de forma aleatoria o improvisar pruebas más profundas sobre la marcha en un área muy específica.
Las pruebas de automatización no lo hacen.

Es evidente que las pruebas automatizadas aportan grandes ventajas, pero no pueden sustituir totalmente a las pruebas manuales.

La mejor estrategia consiste en combinar sabiamente los 2 enfoques en función de:

  • la naturaleza y la 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 allá:

Pruebas automatizadas para PowerBuilder

Puede AscentialTest para automatizar la prueba de las aplicaciones PowerBuilder y PowerServer

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

5. Localice su aplicación

Las herramientas modernas permiten automatizar varias tareas en un flujo de trabajo CI/CD. Ahora, el soporte multilingüe es una de ellas.

Si su aplicación se despliega en varios países, es muy probable que la traduzca para ofrecer un mejor servicio a los usuarios. Cuando la aplicación está en producción, las traducciones deben ser actualizadas sistemáticamente para mantener una experiencia de usuario homogénea.

 

Herramientas y recursos

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

  • Extracción de nuevas cadenas e importación en la base de datos multilingüe
  • Exportación de frases y traducciones a un archivo (Json, XML, Excel)
  • Importación de traducciones desde un archivo (Json, XML, Excel)

Por ejemplo, puede añadir una tarea multilingüe a su flujo de trabajo:

  1. Extraer y cargar nuevas frases en la base de datos multilingüe. Opcionalmente, puede pre-traducirlas si la memoria de traducción ya contiene traducciones.
  2. Importar traducciones en la base de datos multilingüe.
  3. Generar un NUEVO BUILD con frases multilingües actualizadas

Nota: las frases suelen ser traducidas por traductores profesionales. Ellos enviarán las traducciones para su importación automática a la base de datos multilingüe. Este segundo proceso es independiente del proceso de construcción.

Websites