Evita Usar isTesting u Otros Flags Similares

Evita que el código de prueba llegue a producción eliminando banderas como isTesting y utilizando inyección de dependencias, separando configuraciones y modelando servicios externos adecuadamente.

7 mar 2025 • 2 min de lectura • Equip Q2BSTUDIO

Empresa-Software-Apps

No dejes que el código de prueba llegue a producción

Resumen: Evita agregar flags como isTesting o similares en tu código.

Problemas ??

  • Abstracción deficiente
  • Contaminación con código no relacionado al negocio
  • Código frágil
  • Comportamiento inconsistente
  • Dependencias ocultas
  • Dificultad en la depuración
  • Uso de flags booleanas
  • Pruebas no confiables
  • Código dependiente del entorno de producción

Soluciones ??

  1. Eliminar condicionantes innecesarios
  2. Utilizar inyección de dependencias
  3. Modelar servicios externos sin usar mocks
  4. Separar configuraciones
  5. Aislar la lógica de prueba
  6. Mantener límites de comportamiento bien definidos

Refactorización ??

El uso de patrones adecuados permite eliminar flags innecesarias en la lógica del código.

Contexto ??

Cuando agregas flags como isTesting, mezclas código de prueba y producción, creando caminos ocultos que solo se activan en pruebas. Esto impide cubrir correctamente el código en producción y aumenta el riesgo de errores.

Ejemplo de Código ??

Incorrecto ?

struct PaymentService {
    is_testing: bool,
}

impl PaymentService {
    fn process_payment(&self, amount: f64) {
        if self.is_testing {
            println!('Modo de prueba: Omitiendo pago real');
            return;
        }
        println!('Procesando pago de ${}', amount);
    }
}

Correcto ??

trait PaymentProcessor {
    fn process(&self, amount: f64);
}

struct RealPaymentProcessor;
impl PaymentProcessor for RealPaymentProcessor {
    fn process(&self, amount: f64) {
        println!('Procesando pago de ${}', amount);
    }
}

struct TestingPaymentProcessor;
impl PaymentProcessor for TestingPaymentProcessor {
    fn process(&self, _: f64) {
        println!('No se ejecuta pago: Omitiendo transacción real');
    }
}

struct PaymentService {
    processor: T,
}

impl PaymentService {
    fn process_payment(&self, amount: f64) {
        self.processor.process(amount);
    }
}

Detección ??

  • [x] Semi-Automática

Se puede detectar esta mala práctica buscando flags condicionales como isTesting, environment == 'test' o DEBUG_MODE, indicios de que la lógica de prueba se está filtrando a la producción.

Etiquetas ???

  • Pruebas

Nivel ??

  • [x] Intermedio

Importancia de la separación de entornos ???

Es esencial mantener una separación clara entre código de prueba y producción. Si se mezclan, se rompe la correspondencia entre el comportamiento real y el funcionamiento del programa.

Generación de código por IA ??

Las herramientas de IA suelen introducir este problema al priorizar soluciones rápidas sobre un buen diseño.

Detección de IA ??

Si se configuran correctamente, las herramientas de detección pueden identificar este problema al analizar lógica condicional basada en estados de prueba.

Conclusión ??

Evita utilizar flags como isTesting en tu código. En su lugar, aplica inyección de dependencias y modela los entornos para garantizar una separación clara entre la lógica de prueba y producción.

En Q2BSTUDIO, una empresa especializada en desarrollo y servicios tecnológicos, promovemos las mejores prácticas de desarrollo para garantizar código limpio y mantenible. Nuestro equipo de expertos se asegura de aplicar principios sólidos de arquitectura de software, evitando problemas como la filtración de código de prueba en producción.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat