Mostrando las entradas con la etiqueta Unit Test. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Unit Test. Mostrar todas las entradas

domingo, mayo 17, 2020

Hacer un procedimiento sin hacer Unit Test "Es una irresponsabilidad"

El título de este artículo lo tome de la charla que dio Gaston Milano en el GUG Montevideo, la misma se llama: "Gente, Ideas, Herramientas - Gaston Milano sobre App Coronavirus UY".

En la charla Gaston explica el proceso de desarrollo de la aplicación "Coronavirus UY", cuando se refiere al testing que se le hizo a la aplicación hace hincapié en los Unitt Test.  Sin dudas que esto es importante pero en ocasiones hay que lograr que los equipos y las organizaciones se encuentren maduros para sumar al proceso de desarrollo esta buena práctica.

Hace casi un año escribía algunos artículos sobre "Pruebas unitarias en GeneXus", no fue nada técnico pero conté un poco mi proceso para llegar a la necesidad de contar con Unit Test. Tuve un largo camino dado que primero debía lograr migrar a GeneXus 16 para lograr usar GXTest. 

Tuve que atravesar algunos problemas antes de poder llegar a implementar Unit Test con GeneXus pero luego de migrar la aplicación de GX9 a GX 15 y por último a GX16 pude llegar a comenzar a implementar mis primeros Unit Test.

En nuestra experiencia tuvimos algunos problemas que fuimos resolviendo pero que nos hicieron cambiar de parecer a la hora de hacer pruebas unitarias para cada procedimiento de nuestra KB. Los principales problemas que encontramos fueron los siguientes:

  • La KB creció considerablemente: por defecto se crean tres objetos (Unit Test, SDT y un Data Provider). 
  • Se necesita Licencia para usar GX-Server y para usar con integración continua
  • No es una práctica extendida dentro de los desarrolladores

En realidad el problema mas complejo de resolver es que los unit test no son una práctica extendida dentro de los desarrolladores genexus y esto hace que no se tenga apoyo para poder lograr recursos para usar GX-Test.

El problema del crecimiento de la kb se puede solucionar modificando los unit test en los casos que sea posible (En un próximo artículo voy a explicar como lo hacemos).

El licenciamiento se puede solucionar pero todavía no pude lograr que se vean los beneficios de esto para obtener los recursos necesarios (Estoy en proceso).

En resumen considero que debemos comenzar a utilizar las pruebas unitarias y extender esta práctica entre la comunidad genexus para poder enriquecer la herramienta, logrando que las organizaciones tengan esto como obligatorio.

El principal debe en la utilización de los unit test esta del lado de los desarrolladores que todavía no han integrado esto a su forma de trabajo y esto hace que en equipos grandes sea complejo implementar esta práctica.

En otro artículo voy a explicar como usamos los unit test en una KB grande que esta teniendo liberaciones de versiones a producción de forma mensual.







domingo, mayo 05, 2019

Pruebas Unitarias en GeneXus

Dentro de la comunidad GeneXus no existe mucho apego a las pruebas unitarias o no es una práctica común, por lo menos esa es mi impresión. En realidad si tengo que ser justo veo que las pruebas unitarias no son utilizadas por muchos programadores independientemente del lenguaje que usen.

Dentro de la industria existen muchas empresas que tienen dentro de sus prácticas la utilización de pruebas unitarias pero no lo veo muy adaptado por parte de los programadores o la mayoría de los que pude hablar lo ven como algo que les quita tiempo.

Estudiando el tema dentro de la comunidad no pude encontrar muchas opiniones sobre el tema y lo que pude encontrar esta relacionado a GX-Unit que lo intente comentar en otros artículos de este blog.

En la comunidad la persona que se ha preocupado mas por el tema es Enrique Almeida y podrán encontrar varios artículos en su blog. En GeneXus 16 encontramos la posibilidad de crear "Unit Test" de forma automática la cual pueden encontrar toda la información en el siguiente link.

En síntesis GeneXus cuenta con una herramienta incluida en el IDE la cual nos permite crear pruebas unitarias de forma automática, esta herramienta es gratuita para el desarrollador pero si quiero usar estos "unit test" con mis procesos de Integración Continua (CI/CD) tengo que adquirir una licencia.

En mi experiencia con los años pude entender la importancia de las pruebas unitarias y se han convertido en una necesidad para poder brindar la calidad que los productos en los que trabajo me exigen. Esto me llevo a evaluar las herramientas existentes para GeneXus y las diferentes opiniones de miembros de la comunidad pero mi conclusión final es que las herramientas existentes tienen mucho camino por recorrer para poder cubrir todas nuestras necesidades.

Un problema de las herramientas existentes para GeneXus es que al ser poco utilizadas por la comunidad no le damos la oportunidad de que mejoren para cubrir nuestras necesidades.

En la actualidad me encuentro en un proyecto que necesita hacer refactoring y cambios grandes de arquitectura pero si no logro tener pruebas unitarias se me hace muy difícil garantizar que los cambios que hago no rompan parte de las funcionalidades existentes en el sistema.

Por este motivo estoy implementando pruebas unitarias a medida que voy modificando el código del sistema y voy a compartir mi experiencia en un próximo artículo, de todas maneras adelanto que estoy usando parte de los "unit test" de GeneXus y por otro lado programar mis pruebas unitarias a mano para poder cubrir mis necesidades.

















miércoles, septiembre 05, 2018

GXUnit (Pruebas unitarias en GeneXus) (DEPRECATED)

En otro artículo comentaba que estaba contento por el resurgimiento de GXUnit pero después de actualizarme me di cuenta que en la actualidad se encuentra "Deprecated". En realidad no se actualiza desde hace un año y hoy en día no se puede descargar del Marketplace de GeneXus.

Estuve indagando y en la actualidad las pruebas unitarias se van a poder actualizar con GXTest4, en principio y por lo que tengo entendido el modulo de gxtest para realizar pruebas unitarias no tiene costo.

Básicamente creo que con GXTest4 voy a poder cumplir el objetivo de realizar pruebas unitarias y va a tener el mantenimiento necesario, esto ayuda a intentar poner recursos para la generación de pruebas unitarias en nuestros procesos de desarrollo.

Por lo que tengo entendido en la versión Tero estara integrado, para GeneXus 15 hay que bajarlo e instalarlo a mano. En mi caso ya lo tengo instalado y me encuentro por arrancar con mis primeras pruebas unitarias.




martes, septiembre 04, 2018

GXUnit (Pruebas unitarias en GeneXus)

En el último mes me encuentro en una búsqueda de mejorar el código que estoy desarrollando y la calidad de los productos en los que estoy participando. Mi motivación se basa en la necesidad de mejorar y adoptar una nueva cultura de trabajo en la cual pueda acompañar las tendencias de la industria de TI.

En principio creo que adoptar la cultura DevOps me permitiría acompañar los cambios necesarios para estar a la altura de los nuevos desafíos a los que me estoy enfrentando a diario.

La intención de comenzar en DevOps me ha llevado a investigar sobre Integración Continua y Liberación continua dentro de la Comunidad GeneXus.

Todo esto me ha llevado a volver a escuchar de la importancia de GXUnit y ver que por suerte ha tenido un resurgimiento, pueden leer mas en estos dos artículos:  GXUnit renace nuevamente y Renovando interés en GXUnit

También comparto los comentarios en donde se ve con asombro que la comunidad de usuarios no le damos la importancia que tiene el proyecto de GXUnit y realmente creo que tenemos que impulsar la utilización de pruebas unitarias en GeneXus.

Ahora me queda comenzar a implementar pruebas unitarias y ver como sacarle el mejor provecho a GXUnit.