Haz pruebas mientras duermes (y los fines de semana)
Autor: Rajith Attapattu
Tranquilo. No me refiero a centros de desarrollo a larga distancia,
horas extra en fin de semana o trabajar de noche. En vez de ello, quiero
llamar tu atención sobre la cantidad de poder de cómputo que tenemos a
disposición. Específicamente, cuánto no estamos aprovechando para hacer
nuestras vidas como programadores un poco más fáciles. ¿Constantemente
estás teniendo dificultades para tener suficiente poder de cómputo
durante la jornada de trabajo? Si es así, ¿qué están haciendo tus
servidores de prueba fuera de las horas de trabajo normal? A menudo
están sin carga durante la noche y los fines de semana. Puedes usar eso
a tu favor.
- ¿Te has sentido culpable de confirmar un cambio sin ejecutar todas las
pruebas? Una de las razones principales de que los programadores no
ejecutan los conjuntos de pruebas antes de hacer commit al código se
debe a la cantidad de tiempo que puede tomar. Cuando las fechas límite
se avecinan y la presión acecha, los humanos naturalmente empezamos a
tomar atajos. Una forma de abordar esto es romper los largos conjuntos
de pruebas en dos o más perfiles. Uno pequeño, un perfil de pruebas
obligatorio que sea rápido de ejecutar, te ayudará a asegurarte de que
las pruebas se ejecuten antes de cada commit. El total de lo perfiles
(incluyendo el perfil obligatorio, sólo para estar seguros) puede ser
automatizado para ejecutarse durante la noche, listo para reportar los
resultados en la mañana.
- ¿Has tenido suficiente oportunidad de poner a prueba la estabilidad de
tu producto? Las pruebas de más larga duración son vitales para
identificar fugas de memoria y otros problemas de estabilidad. Rara vez
se ejecutan durante el día, ya que consumen tiempo y recursos. Puedes
automatizar una carga de prueba durante la noche y una un poco más larga
durante el fin de semana. Del viernes 6.00 PM hasta las 6.00 AM del
siguiente lunes hay 60 horas de tiempo potencial para las pruebas.
- ¿Estás obteniendo tiempo de calidad en tu entorno de pruebas de
rendimiento? He visto altercados entre equipos para tener tiempo en
estos entornos. En la mayoría de los casos ningún equipo obtiene tiempo
de calidad durante el día, mientras que el ambiente está virtualmente
inactivo durante las horas posteriores. Los servidores y la red no está
ocupados durante la noche o los fines de semana. Es el momento ideal
para ejecutar algunas pruebas de rendimiento de calidad.
- ¿Hay demasiadas permutaciones de pruebas manuales? En muchos casos tu
producto está destinado a ser ejecutado en una variedad de plataformas.
Por ejemplo, en 32 y 64 bits, en Linux, Solaris y Windows, o simplemente
en diferentes versiones del mismo sistema operativo. Para empeorar las
cosas, muchas aplicaciones modernas son expuestas a una plétora de
mecanismos de transporte y protocolos (HTTP, AMQP, SOAP, CORBA,
etcétera). Probar manualmente todas estas permutaciones consume mucho
tiempo y comúnmente se realizan cerca de una fecha de liberación debido
a la presión de recursos. Por desgracia, puede ser demasiado tarde en el
ciclo para capturar desagradables errores.
Las pruebas automatizadas que se ejecutan durante la noche o fin de
semana asegurarán que todas estas permutaciones son puestas a prueba con
mayor frecuencia. Con un poco de pensamiento y algo de conocimiento de
secuencias de comandos (scripting) puedes programar unos cuantos
trabajos cron para poner en marcha algunas pruebas durante la noche y
los fines de semana. Hay también muchas herramientas de prueba por ahí
que podrían ser útiles. Algunas organizaciones incluso tienen granjas de
servidores que turnan servidores a través de diferentes departamentos y
equipos para asegurar que los recursos son utilizados eficientemente. Si
esto está disponible en tu empresa, puedes enviar las pruebas para que
sean ejecutadas en la noche o durante los fines de semana.
Traducción: Espartaco Palma
Leer contribución original