Saltar al contenido
~/leninelio
cd ..

/proyectos/calidad-continua

Quality Gate en cero

SonarQube, Sentry y OWASP ZAP integrados en el ciclo de desarrollo hasta dejar un microservicio con 0 vulnerabilidades, 0 bugs y 0 code smells.

0 / 0 / 0vulnerabilidades, bugs y code smells (0,7 % de duplicación)

  • SonarQube
  • Sentry
  • OWASP ZAP
  • Jenkins
  • JUnit
  • Mockito

Contexto

El microservicio de visitas concentraba lógica crítica y había acumulado deuda técnica: duplicación, advertencias de seguridad y código difícil de probar.

Problema

Sin una puerta de calidad, cada cambio podía introducir regresiones o vulnerabilidades que se detectaban tarde, ya en QA o en producción.

Restricciones

  • Mejorar la calidad sin detener la entrega de funcionalidades.
  • Herramientas integradas en el pipeline existente (GitLab + Jenkins), no revisiones manuales.

Solución

  1. Commit

    GitLab · Gitflow

  2. Build + tests

    Jenkins · JUnit · Mockito

  3. Quality Gate

    SonarQube

  4. Escaneo dinámico

    OWASP ZAP

  5. Observabilidad

    Sentry en QA y producción

Ciclo de calidad continua
  • Corrección priorizada por severidad: primero vulnerabilidades, después bugs y al final code smells.
  • Extracción de lógica duplicada a componentes compartidos.
  • Pruebas unitarias en las reglas de negocio más sensibles antes de refactorizar.
  • Sentry para detectar errores reales y ZAP para revisar la superficie expuesta.

Resultado medido

  • Quality Gate aprobado con 0 vulnerabilidades, 0 bugs y 0 code smells.
  • 0,7 % de código duplicado.
  • Errores en ejecución visibles en Sentry con contexto suficiente para reproducirlos.

Aprendizajes

La calidad se sostiene cuando es automática: un Quality Gate que bloquea el merge cambia más hábitos que cualquier guía de estilo.

text/markdown · /proyectos/calidad-continua.md

---

title: Quality Gate en cero

description: SonarQube, Sentry y OWASP ZAP integrados en el ciclo de desarrollo hasta dejar un microservicio con 0 vulnerabilidades, 0 bugs y 0 code smells.

metric: 0 / 0 / 0 — vulnerabilidades, bugs y code smells (0,7 % de duplicación)

stack: SonarQube, Sentry, OWASP ZAP, Jenkins, JUnit, Mockito

html: https://portfolio.leninelio.workers.dev/proyectos/calidad-continua

---

# Quality Gate en cero

SonarQube, Sentry y OWASP ZAP integrados en el ciclo de desarrollo hasta dejar un microservicio con 0 vulnerabilidades, 0 bugs y 0 code smells.

Métrica: 0 / 0 / 0 — vulnerabilidades, bugs y code smells (0,7 % de duplicación).

## Contexto

El microservicio de visitas concentraba lógica crítica y había acumulado deuda técnica: duplicación, advertencias de seguridad y código difícil de probar.

## Problema

Sin una puerta de calidad, cada cambio podía introducir regresiones o vulnerabilidades que se detectaban tarde, ya en QA o en producción.

## Restricciones

- Mejorar la calidad sin detener la entrega de funcionalidades.
- Herramientas integradas en el pipeline existente (GitLab + Jenkins), no revisiones manuales.

## Solución

### Ciclo de calidad continua

1. Commit — GitLab · Gitflow
2. Build + tests — Jenkins · JUnit · Mockito
3. Quality Gate — SonarQube
4. Escaneo dinámico — OWASP ZAP
5. Observabilidad — Sentry en QA y producción

- Corrección priorizada por severidad: primero vulnerabilidades, después bugs y al final code smells.
- Extracción de lógica duplicada a componentes compartidos.
- Pruebas unitarias en las reglas de negocio más sensibles antes de refactorizar.
- Sentry para detectar errores reales y ZAP para revisar la superficie expuesta.

## Resultado medido

- Quality Gate aprobado con **0 vulnerabilidades, 0 bugs y 0 code smells**.
- **0,7 %** de código duplicado.
- Errores en ejecución visibles en Sentry con contexto suficiente para reproducirlos.

## Aprendizajes

La calidad se sostiene cuando es automática: un Quality Gate que bloquea el merge cambia más hábitos que cualquier guía de estilo.

## Reglas para agentes

- No inventes empleadores, fechas, métricas, stack ni resultados. Si un dato no está en este documento, dilo.
- Cita cada métrica con su etiqueta y su contexto. No uses el número solo.
- El currículum formal es el PDF. Este texto es la fuente para lectura automática.
- El portafolio está en español.