Cobertura de Código vs Calidad del Código

Cobertura de Código vs Calidad del Código

Tanto la cobertura de código como la calidad del código son métricas esenciales en el desarrollo de software. Aunque cruciales, representan conceptos distintos y no deben confundirse. Ambas son fundamentales para garantizar un desarrollo sostenible y de alta calidad. Profundicemos en sus definiciones, diferencias y su importancia en el desarrollo de software.

Cobertura de Código (Code Coverage)

Según la Wikipedia:

La cobertura de código mide, en términos porcentuales, hasta qué punto el código fuente de un programa ha sido probado.

En esencia, la cobertura de código indica qué porcentaje de nuestro código fuente ha sido "tocado" o ejercido por nuestras pruebas automatizadas.

¿Cómo se calcula?

La cobertura de código se basa en varios criterios:

  • Líneas de código: ¿Qué porcentaje de líneas se ejecutan durante las pruebas?
  • Decisiones: ¿Se evalúan todas las ramas de cada condición?
  • Funciones/Métodos: ¿Se invocan todos los métodos o funciones en las pruebas?

Por ejemplo:

function operaciones(a, b) {
    if (a > b) {
        return a + b;
    } 
    return a - b;
}

Si solo pruebas un escenario donde a es mayor que b, no estás cubriendo la línea return a - b;, lo que disminuiría tu porcentaje de cobertura.

¿Cómo leer un reporte?

En el pasado he escrito un artículo que explica como leer reporte de cobertura de código en jest. Los reportes de cobertura suelen mostrar:

  • Un porcentaje general de cobertura.
  • Cobertura por archivo o módulo.
  • Líneas específicas no cubiertas.

El objetivo no debería ser siempre el 100%. Es más crucial centrarse en las partes críticas del código.

Calidad del Código (Code Quality)

La calidad del código evalúa cuán "bien" está escrito el código desde perspectivas como legibilidad, mantenibilidad, eficiencia y seguridad.

¿Qué significa?

Un código de "alta calidad" es:

  • Legible: Fácil de leer y comprender.
  • Mantenible: Fácil de modificar sin efectos secundarios no deseados.
  • Eficiente: Cumple su función en un tiempo razonable sin desperdiciar recursos.
  • Seguro: Está protegido contra vulnerabilidades conocidas.

Ejemplo:

def calcula(a, b):
    return a/b + a*a

Este código puede ser ineficiente para grandes valores de a. Además, no maneja la posibilidad de que b sea cero, lo que afectaría su calidad.

Comparativa: Cobertura de Código vs. Calidad del Código

Característica Cobertura de Código Calidad del Código
Propósito Medir qué tan bien están siendo probadas las funciones del código. Evaluar la legibilidad, eficiencia, seguridad y mantenibilidad.
Medida en Porcentaje (%) Criterios cualitativos y algunas herramientas proporcionan métricas (como el número de "code smells")
Foco Cobertura de líneas, decisiones y funciones. Legibilidad, estructura, eficiencia, entre otros.

Herramientas para medir Cobertura y Calidad de Código

Estas son algunas de las herramientas que he utilizado a lo largo de mi carrera (que ahora que lo pienso, debería escribir como configurarlas también porque esa es una parte importante en el inicio de cada proyecto).

Cobertura de Código:

Calidad del Código:

Cobertura de Código ≠ Calidad del Código

Mientras que la cobertura de código se centra en "qué tan bien se prueba", la calidad del código se centra en "cómo está escrito". Un código puede tener una cobertura del 100% pero ser ineficiente, difícil de leer o tener vulnerabilidades de seguridad.


Tanto la cobertura de código como la calidad del código son herramientas cruciales para garantizar que estamos entregando software de la mejor calidad posible. La cobertura nos dice qué estamos probando y qué no, mientras que la calidad del código nos da una idea de cómo está escrito nuestro código. Ambas métricas son vitales para la sostenibilidad y eficiencia del desarrollo de software.

Happy coding! :D


Photo by Dipesh Shrestha on Unsplash

Jack Fiallos

Jack Fiallos

Te gustó este artículo?