Hace un par de semanas comencé a trabajar un proyecto con @dfontde y @CodeRaguet para automatizar pruebas de una aplicación AS400/RPG. Nunca en mi mi vida había hecho nada con esa tecnología y creo que justamente ese fue un factor clave para que decida involucrarme en el proyecto.
Nuestro primer día de trabajo, uno de los programadores de la aplicación en cuestión nos hizo un breve tour introductorio a la plataforma AS400, al lenguaje RPG y a la aplicación sobre la cual debemos trabajar.
Dadas las particularidades de la plataforma y de cómo está construida la aplicación, decidimos tomar un enfoque de caja negra. Básicamente vamos a intercambiar mensajes con la aplicación via una cola. De esta forma nuestras pruebas se reducen a correr un setup (el cual hay que codear en RPG), escribir un mensaje en una cola, leer la respuesta de otra cola y verificar dicha respuesta. Todo esto lo vamos a codear en Java, que si bien no es «el sueño del pibe», me resulta bastante más amistoso que RPG.
Hicimos una primer prueba de concepto exitosa para entender la interacción Java/PC <-> RPG/AS400. En este momento estamos analizando la herramienta de especificación de pruebas para lo cual estamos haciendo una prueba de concepto con FitNesse.
Continuará…
Esta prupuesta suena superinteresante. Muchas gracias por compartirla.
La verdad es que has despertado mi curiosidad ya que, aunque he tenido ocasión de trabajar con pruebas automáticas en otros entornos más «modernos y amigables», como Java y sobre todo .NET, nunca le he podido dedicar tiempo a intentar adaptar el TDD al AS/400, con el que seguimos trabajando «a machete» con una aplicación que ha visto ya dos milenios. Bueno, hemos hecho algunos test en programas por lotes, con un enfoque parecido al que planteas (en interactivo ni se me ocurre cómo podríamos atacarlo), pero más como atajo en algunas pruebas que no bajo un verdadero enfoque TDD.
¡Espero con impaciencia la continuación de este post! Un abrazo
Ojo que no hicimos TDD ni tampoco es la intención del equipo. La idea fue automatizar tests para reducir los tiempos de regresión. Sin embargo creo que con la arquitectura implementada debería ser simple usar TDD, pero ocurre que los tiempos de interacción con la aplicación AS400 no son instantáneos lo cual haría que el proceso de TDD resulte bastante tedioso.
Hola esta información me fue muy útil y conseguí crear mí propio Framework en java para automatizar as400 y a si integran lo con otros tipos de tecnologías
Hola, estuve leyendo este post y en este momento me encuentro en un proyecto para implementar CD en estas plataformas, quería saber si tuvieron algún avance que puedan compartir, muchas gracias
Hola Juan,
Logramos cumplir el objetivo que nos habíamos propuesto que era agregar pruebas automatizadas a la aplicación en cuestión. Luego de eso yo pasé a trabajar en otro equipo y desconozco cuanto más profundizó el equipo.
Saludos!