Blog

Cobertura de las pruebas de software: ¿cómo aumenta con la automatización?

¿Cómo la Automatización incrementa la Cobertura de las Pruebas de Software?

Conocida comúnmente como test coverage, la cobertura de la prueba es una de las medidas de la calidad de los tests que nos dice cuánto código se ha probado. Define ciertas entidades del sistema con la intención de cubrirlas con pruebas. Es una forma de indicar cuándo hemos probado lo suficiente y nos da ideas de qué más probar, ampliando así la cobertura.

Por ejemplo, considera realizar pruebas para que sea como barrer los pisos de su casa. Usualmente, me olvido de barrer alguna parte, como el baño del segundo piso, así que mi cobertura no incluye esa habitación. Imagínate si solo incluyera la limpieza de dormitorios para mis criterios de cobertura de barrido.

Bajo ese criterio, si barro el 100% de los dormitorios, ¿significa que toda la casa está limpia? ¡No, porque falta la cocina, el comedor, los baños, etc.!

Por lo tanto, mide la cobertura de la prueba con precaución. Tener un cierto nivel de cobertura es un indicador de la calidad de las pruebas, pero nunca es un indicador de la calidad del sistema, ni tampoco garantiza que todo haya sido probado. La cobertura de prueba nos dice qué porcentaje del código se ha probado, pero tampoco significa que se haya probado en todas las situaciones.

¿Para qué sirve la Cobertura de Prueba?

Siguiendo con el ejemplo anterior, la cobertura de la prueba es buena para:

  • Medir la calidad del barrido.
  • Indicar cuando dejar de barrer.
  • Saber qué otros lugares necesitan ser barridos.

Ciertos criterios pueden ser más poderosos que otros. Conocerlos puede darle un indicador de cuán profundas son las pruebas y cuándo aplicar un criterio u otro. Por ejemplo, se dice que un criterio A incluye otro criterio B si cualquier conjunto de casos de prueba TS que cubre el criterio A también cubre el criterio B.

Según el ejemplo, para el barrido es posible que deseemos seguir los siguientes criterios:

  1. Barrer todos los dormitorios
  2. Barrer cada parte de la casa (dormitorio, baño, cocina, etc.)
  3. Barrer cada pequeño punto, incluso las esquinas, porque es probable que acumulen suciedad.

Como puede ver, el Criterio 3 incluye 2, que incluye 1 (la relación es transitiva ya que el número 3 incluye el número 1). Si diseñamos un caso de prueba para el criterio número 3, también debería cubrir los dos primeros criterios. Para probar software, los criterios generalmente incluyen diversos caminos, condiciones, declaraciones, funciones, etc. dentro de un programa.

Otro ejemplo real podría ser, por ejemplo, la partición de clases de equivalencia, donde se definen las clases y luego se selecciona un elemento de cada clase, y de esta manera cubrimos todas las clases. Si pensamos en pruebas de caja blanca, tenemos cobertura de sentencias, cobertura de rama, cobertura de ruta, etc., y en particular, para las state machines (estados de máquina), tenemos criterios que indican cubrir todos los nodos, todas las transiciones, etc.

¿Dónde encaja la Automatización de Pruebas en todo esto?

Bueno, imagine que se deshace de la escoba y la reemplazas con un robot súper rápido. Lograría limpiar los pisos más rápido y contemplar más lugares, lo que también le permitirá concentrarse en cosas más importantes mientras hace el trabajo por usted:

Más automatización de pruebas = más cobertura de pruebas.

Y usted, ¿mide la cobertura de sus pruebas? ¿Se imagina cómo la automatización ayudaría a mejorar esta medida de calidad de los tests?


¿Buscas asesoría o un socio experto para implementar la automatización de pruebas de software en tu empresa?

Creemos en la automatización como el motor de la ingeniería de calidad. Nuestros ingenieros expertos en metodologías ágiles y que han finalizado +300 proyectos de automatización con éxito, implementan las soluciones apropiadas para tu negocio, en beneficio de la calidad.

Contáctanos y conversemos sobre cómo podemos ayudarte automatizar los casos de prueba en la cantidad correcta y en todos los niveles del sistema, para lograr un retorno de la inversión más alto con pruebas automatizadas.


Otros contenidos relacionados

ROI de la Automatización de Pruebas: Beneficios Comerciales y de TI

¿Cómo optimizar la cobertura de las pruebas a largo plazo?

4 desafíos comunes de la Automatización de Pruebas: ¿cómo enfrentarlos?

41 / 208