Skip to content
IRC-CodingIRC-Coding
Calidad de softwareMétricasCode CoverageCyclomatic ComplexityTechnical DebtMTTRTasa de erroresMétricas de software

Métricas de Calidad de Software: Indicadores Clave

Domina las métricas esenciales de calidad: Code Coverage, Cyclomatic Complexity, MTTR, tasa de errores y Technical Debt.

S

schutzgeist

3 min read
Métricas de Calidad de Software: Indicadores Clave

Métricas de Calidad de Software

La calidad de software no se evalúa solo de forma subjetiva, sino que también se puede medir. Las métricas ayudan a los equipos a cuantificar el estado de su código, hacer seguimiento del progreso e identificar problemas potenciales temprano. Este artículo presenta las métricas más importantes y explica cómo utilizarlas de manera efectiva.

En Resumen

  • Las métricas hacen la calidad de software objetiva y comparable.
  • Code Coverage, complejidad, tasa de errores, MTTR y Deuda Técnica son indicadores clave.
  • Las métricas siempre deben considerarse en contexto, nunca de forma aislada.
  • Una combinación de métricas técnicas, de proceso y operacionales proporciona la mejor visión.

Descripción Técnica Compacta

Una métrica es una medida cuantificable que representa un aspecto específico de la calidad de software. Puede medir propiedades técnicas del código, como la complejidad, o aspectos de proceso, como el tiempo hasta la corrección de un error. Lo importante es usar las métricas como indicadores, no como la única base para tomar decisiones.

Métricas Importantes en Perspectiva

Métricas Técnicas

  • Code Coverage: Porcentaje del código cubierto por pruebas automatizadas. Los objetivos típicos oscilan entre 70 y 90 por ciento, dependiendo del contexto del proyecto.
  • Cyclomatic Complexity: Mide el número de caminos independientes a través de una función. Valores superiores a 10 se consideran a menudo críticos.
  • Cognitive Complexity: Evalúa qué tan difícil es para las personas entender el código.
  • Code Duplicates: Identifica bloques de código repetidos que son propensos a errores de mantenimiento.
  • Technical Debt Ratio: Relación entre el código problemático y la base de código total.

Métricas de Proceso

  • Defect Density: Número de errores por unidad de tamaño de código, por ejemplo, por 1.000 líneas.
  • Bug Escape Rate: Errores que atraviesan el aseguramiento de calidad y llegan a producción.
  • Test Failure Rate: Porcentaje de ejecuciones de prueba fallidas a lo largo del tiempo.
  • Code Review Turnaround Time: Tiempo hasta que se completa una revisión.

Métricas Operacionales

  • MTTR (Mean Time To Recovery): Tiempo promedio para recuperarse después de una caída.
  • MTBF (Mean Time Between Failures): Tiempo promedio entre dos caídas.
  • Availability: Porcentaje de tiempo durante el cual el sistema está disponible.
  • Error Rate: Porcentaje de solicitudes fallidas en operación.
  • Latency: Tiempo de respuesta de interfaces o transacciones.

Ejemplo Práctico: Panel de Control para un Equipo de Desarrollo

Team-Qualitätsdashboard:

Tests:
- Code-Coverage: 82 Prozent
- Unit Test Failure Rate: 1,2 Prozent
- Integration Test Failure Rate: 0,5 Prozent

Code-Qualität:
- Durchschnittliche Cyclomatic Complexity: 6
- Code-Duplikate: 2,1 Prozent
- Technical Debt Ratio: 4,5 Prozent

Betrieb:
- Availability: 99,95 Prozent
- MTTR: 18 Minuten
- Error Rate: 0,3 Prozent

Prozess:
- Code Review Turnaround Time: 4 Stunden
- Bug Escape Rate: 3 pro Sprint
- Defect Density: 0,8 pro 1.000 Zeilen

Ventajas y Desventajas

Ventajas

  • Objetividad: Las decisiones se basan en datos, no en intuición.
  • Alerta Temprana: Las tendencias negativas se hacen visibles antes de volverse críticas.
  • Comparabilidad: Los equipos y proyectos pueden medirse usando los mismos indicadores.
  • Motivación: Los objetivos claros fomentan la conciencia de calidad en el equipo.

Desventajas

  • Enfoque en Objetivos Equivocados: Un Code Coverage alto por sí solo no dice nada sobre la calidad de las pruebas.
  • Manipulación: Las métricas pueden abusarse para cumplir objetivos sin aumentar la calidad real.
  • Esfuerzo: La recopilación y el análisis requieren herramientas y tiempo.
  • Falta de Contexto: Una misma métrica puede tener significados diferentes en proyectos distintos.

Puntos Relevantes para el Examen

  • Definición y propósito de las métricas de software.
  • Diferencia entre métricas técnicas, de proceso y operacionales.
  • Significado e interpretación de Code Coverage y Cyclomatic Complexity.
  • Relación entre MTTR, MTBF y Availability.
  • Peligros de métricas aisladas o manipuladas.

Preguntas Típicas de Examen (con Respuesta Breve)

  1. ¿Qué mide Code Coverage? El porcentaje del código que se ejecuta a través de pruebas.

  2. ¿Qué es Cyclomatic Complexity? El número de caminos independientes a través de una función o módulo.

  3. ¿Qué significa MTTR? Mean Time To Recovery, el tiempo promedio hasta la recuperación.

  4. ¿Por qué no deben considerarse las métricas de forma aislada? Porque de lo contrario se pueden malinterpretar o manipular fácilmente.

  5. Menciona una métrica operacional. Availability, Error Rate o Latency.

Continúa en la Ruta de Aprendizaje de Calidad de Software

El siguiente artículo en la ruta de aprendizaje de Calidad de Software cubre Fundamentos de Software Testing, con Unit Tests, Integration Tests, E2E Tests, TDD y BDD como fundamento del software de alta calidad.

Fuentes Principales

  1. https://iso25000.com
  2. https://martinfowler.com/bliki/CannotMeasureProductivity.html
  3. https://en.wikipedia.org/wiki/Software_metric
Volver al blog
Share:

Entradas relacionadas