Velocidad y fiabilidad
Medir, paralelizar, cazar la inestabilidad y leer la cobertura por lo que realmente vale.
Velocidad y fiabilidad de la suite
Una suite de dieciocho minutos deja de ejecutarse antes de hacer push. Una suite que falla una de cada seis veces por razones variables deja de leerse: el equipo la relanza y, si pasa, se fusiona. En ambos casos, la suite ha dejado de cumplir su función, y no porque contenga malos tests, sino porque se ha vuelto demasiado costosa o demasiado ruidosa como para que alguien le preste atención.
Estas dos degradaciones se instalan de forma progresiva y se tratan de la misma manera: midiendo. Nadie adivina correctamente en qué se va el tiempo de una suite de tests, y nadie adivina la causa de un test inestable. Ambas cosas se constatan, con herramientas que ya están en su proyecto. Esta lección empieza, por tanto, leyendo los datos que Surefire y Gradle ya producen, y continúa con la paralelización, las causas reales de la inestabilidad y lo que la cobertura de código mide de verdad.
Medir antes de optimizar
Surefire escribe un archivo XML por clase de test en target/surefire-reports, con la duración de cada método. Basta una ordenación por duración decreciente para identificar a los culpables.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión