La experiencia de ClipPlatform aplicando Testing

En ClipPlatform llevamos ya 4 años aplicando testing a todos los desarrollos que realizamos para Business Central. Para nosotras, el testing no es algo nuevo: ya lo habíamos probado muchos años antes, en época de Dynamics NAV. 

En este artículo quiero explicaros en qué proyectos lo hemos aplicado, cuándo ha funcionado, cuándo no lo ha hecho, y por qué nos hemos enamorado de los tests y no nos planteamos hacer nada en el futuro que no contenga testing automatizado.

 

🔵 No se daban las condiciones

El framework de test de Business Central no es nuevo y no ha aparecido con el modelo de desarrollo de extensiones con el lenguaje AL. El framework de test apareció hace ya 14 años con Dynamics NAV 2009 SP1, aunque es cierto que hasta Business Central casi nadie hacía testing en sus desarrollos.

Laura y yo supimos de él por primera vez en 2011, en la primera edición de BC Tech Days, donde hicieron una presentación explicando el framework de test y su funcionamiento. En su momento nos pareció un concepto interesante, pero no le hicimos mucho caso.

Para que el testing sea eficaz, se tienen que cumplir una serie de condiciones:

  • Todos los miembros del equipo que participan en el desarrollo de un mismo proyecto tienen que aplicar testing
  • El testing debería cubrir todas las funcionalidades desarrolladas
  • Si después del desarrollo inicial, la funcionalidad sufre cambios, los tests deben ser modificados acorde a los nuevos requerimientos
  • Los tests se deben continuar ejecutando periódicamente durante toda la vida del software (no sólo durante la vida del proyecto inicial de implantación, sino durante toda la vida del software)

En ese momento no podíamos cumplir con ninguna de ellas, de modo que ni siquiera le dimos una oportunidad.

 

🔵 Dándole una oportunidad al testing

Con Dynamics NAV 2013 nos pidieron un desarrollo que nos pareció super indicado para aplicar testing:

  • El cliente era nuevo, de modo que no había desarrollos previos no cubiertos por testing
  • Las desarrolladoras en este proyecto íbamos a ser solo Laura y yo, de modo que no teníamos que convencer a ningún jefe ni a ningún compañero de que se apuntaran al carro. Íbamos a probarlo por nuestra cuenta y a ver qué tal.

Hicimos una valoración normal, como si solo fuéramos a hacer el desarrollo que nos habían pedido y no fuéramos a escribir todo el código adicional de testing. El tiempo extra para escribir las funciones de test iban a correr a cuenta nuestra, como tiempo de formación.

Esa primera experiencia fue muy satisfactoria. Nos gustó esto del testing. Y para nuestra sorpresa, no dedicamos más tiempo al desarrollo que el que habíamos valorado inicialmente. Así que no hubo sobrecostes, el código nos pareció que era bastante robusto, y habíamos aprendido unas técnicas nuevas que nos podrían servir para el futuro.

Pero quedaron cosas en el tintero. No pudimos llegar a ver todo el potencial que el testing nos podía ofrecer, porque una vez entregados los desarrollos nos desvinculamos del proyecto, y en mantenimientos futuros ya nadie utilizó los tests que existían.

Después de eso, nos dedicamos a hacer proyectos de migración en los que no nos propusimos hacer testing, porque no hacíamos desarrollos nuevos, sino que cogíamos desarrollos existentes y los pasábamos a una nueva versión de Dynamics NAV.

 

🔵 El testing da resultados ✅

En 2019 aterrizamos en el proyecto en el que estamos trabajando ahora mismo. De nuevo, un proyecto muy indicado para darle una oportunidad al testing: desarrollo completamente nuevo, sin código previo, y en el que las únicas desarrolladoras éramos Laura y yo.

En este proyecto hemos podido apreciar realmente las ventajas del testing:

  • Desarrollamos incluso más rápidas que cuando no hacíamos testing, aunque a esta velocidad también ha contribuido el hecho de utilizar Git y muchas otras herramientas que nos ofrecne un entorno de desarrollo moderno como Visual Studio Code.
  • Desarrollamos con menos bugs: tanto el consultor como los usuarios clave nos lo han dicho en repetidas ocasiones: ellos han notado una disminución en los bugs, y nosotras también los hemos apreciado. Y no es que ahora no introduzcamos bugs en nuestros desarrollos; seguimos introduciendo los mismos de siempre, pero detectamos muchos más en fase de desarrollo y los corregimos antes de que lo vean los consultores. Y, por supuesto, antes de que llegue a las manos de los usuarios. Aún así, alguno se cuela de vez en cuando.
  • La calidad del software que producimos ha mejorado. No sólo porque hay menos bugs, sino también porque hemos conseguido que tras 4 años de desarrollos continuos y siendo ahora 6 desarrolladores a tiempo completo trabajando en el mismo proyecto, el código no se ha convertido en un “espagueti” que no entiende nadie. Al contrario, el código sigue siendo limpio, legible y mantenible. Y todo ello ha sido gracias al testing. Hemos pasado ya por 32 refactorings de entidad y 13 nuevos desarrollos que venían a ampliar lo existente en determinadas situaciones. Sin testing hubiera sido imposible.

Son muchas las veces que recuerdo estar haciendo un desarrollo, pensar que ya estaba acabado y perfectamente funcionando, ejecutar toda la suite de tests y descubrir un problema en el que no había pensado lo más mínimo. En todas estas ocasiones, recuerdo el comentario que le he hecho a Laura: sin los tests, de este problema no me hubiera dado ni cuenta y en producción la hubiéramos “liado parda”. De todos modos, soy consciente que los tests son más fáciles de implementar cuando se desarrollan a la par que la funcionalidad. 

En ClipPlatform nos queda un reto importante con los tests: crear tests para un addon o desarrollo importante ya existente. ¡Estamos en ello!

 

🔵 Aprende testing con ClipPlatform

A lo largo de este post he tratado de plasmarte el gran papel que desde ClipPlatform otorgamos al testing. Para aprender sobre testing, te proponemos varios de nuestros recursos:

Nuestra apuesta por el testing es clara, y queremos que tú también aprendas y descubras todo su potencial. Por eso, te esperamos en la masterclass gratuita Testing con TDD el próximo 15/02 a las 15.30h. Estos son los puntos que abordaremos:

  1. Beneficios del testing automatizado
  2. Metodología TDD (Test-Driven Development)
  3. Funcionamiento del framework de test de Business Central
  4. Cómo crear buenos tests
  5. Retos del testing automatizado
  6. Ronda de preguntas y respuestas

¡Anímate y aprende con nosotras sobre TDD con contenido 100% actualizado de verdadero valor!

¡Hasta pronto!

Deja un comentario

10 cursos gratis, sin tarjeta

Accede a los cursos Gratis de Business Central

Instalación, ventas, fabricación y Power BI.

Acceso inmediato, sin límite de tiempo.