Aviso Legal
® Software Crafters es una marca registrada.
Durante el período de dominio británico en la India colonial, el país se vio afectado por una plaga de cobras.
El problema requería una solución urgente, ya que podía ser mortal.
Y cómo no, al gobierno de turno se le ocurrió una “idea brillante”.
El plan se basaba en ofrecer una prima a cualquier persona que fuera capaz de traer una cobra muerta.
Aquello al principio funcionó.
Pero, al tiempo, en vez de cazar las cobras, la población se dedicó a criarlas para generar ingresos.
Evidentemente cuando los británicos se dieron cuenta del engaño, cancelaron el programa.
Bien.
Esto pone de manifiesto dos cosas.
Que las personas respondemos a los incentivos.
Los incentivos pueden ser perversos y pueden traer consecuencias inesperadas.
Verás.
Hubo una época en el desarrollo de software en el que se puso de moda exigir a los equipos un umbral cercano al 100% de cobertura de tests.
Esto provocó que en muchos equipos escribieran pruebas de muy baja calidad, o incluso directamente sin aserciones.
Tests que directamente no comprobaban nada, sólo invocaban métodos con distintos argumentos para alcanzar el porcentaje deseado.
Por si no lo sabes, la cobertura de código solo nos proporciona información sobre el porcentaje de líneas de código que se ejecutan durante las pruebas.
Una buena cobertura debe ser una consecuencia de cómo programamos, no un objetivo en sí mismo.
Evidentemente debe haber un mínimo, aunque esto es difícil de establecer.
No todo el código es igual de crítico, probablemente ciertas funcionalidades claves deberían tener un porcentaje cercano al 100%.
Mientras que otros artefactos más sencillos, que estén respaldados por el compilador, puede que incluso no necesiten tests.
Si hacemos la media de estos dos escenarios, podríamos pensar que una cobertura de tests decente, que nos sirviera como red de seguridad, al menos estaría por encima del 50%.
En fin, es difícil dar un número exacto de porcentaje de cobertura adecuado, lo que sí está claro es que la calidad de las pruebas incide directamente sobre la seguridad que proporcionan.