Al menos eso es lo que pensé cuando hace un año, me uní a un equipo en ATO, una empresa de análisis de salud que ofrece una gama de productos para científicos de datos en el sector de la salud. Es un dominio de negocio altamente especializado y regulado que probablemente tiene un acrónimo para casi todo en el mundo. Déjame darte un ejemplo. En la Clasificación Internacional de Enfermedades, eso es algo real, hay un código, W6162XD, que significa, literalmente significa, golpeado por un pato, encuentro subsiguiente. Y en tal dominio de negocio especializado, se pidió a nuestro equipo que cubriera todas las características principales con pruebas automatizadas para propósitos de regulación.
El alcance incluía 64 épicas de pruebas. Todavía recuerdo este número. Para un no profesional como yo, la UI parecía un millón de casillas de verificación, acrónimos, tablas con números aleatorios por todas partes, impulsado por una aplicación de React de cinco años y un backend de Java de diez años. Java tenía su propia historia pasando de monolito a microservicios, luego de vuelta, dejándonos con un montón de APIs heredadas y desactualizadas, pero eso es para otro momento. Por ahora, centrémonos en React. A medida que el producto evolucionaba, algunos de los componentes han crecido a más de mil líneas de código con esos enormes use effects, con dependencias faltantes, y array de dependencias, y todo eso.
React versión 17, la mayor parte del código sin tipar. ESLint y Prettier se perdieron durante la migración a la nube. Y antes de continuar, solo quería mencionar que esta no es una situación poco común para empresas en crecimiento que se centran en construir nuevas características. Ahora, dicho esto, nuestra primera reacción a este proyecto se puede resumir con una cita de mi compañero de equipo. Este código es imposible de probar. O, hablando en lenguaje científico, R45.4, irritabilidad y enojo. El desafío no fue aceptado. Con todas esas excusas corriendo en mi cabeza, no, no es mi trabajo, incluso un desarrollador junior puede hacer eso, incluso AI puede hacer eso, y después de cinco horas de estar preguntando a chatgpt, estúpida AI, nunca tomará mi trabajo, está bien, escribiré la prueba, al menos dime qué tipo de prueba debo escribir, ¿por dónde empiezo? Necesitábamos una estrategia de pruebas.
Comments