¿Cuál es el significado de «versión estable»?

Los productos de software masivos se construyen en la parte superior de, entre otras cosas, una infraestructura de pruebas aún más masiva, que contiene literalmente 1000 de pruebas dedicadas de diferentes tipos.

Todas estas pruebas están ahí para asegurar que el software tiene la corrección funcional diseñada en todos los aspectos, y la capacidad de recuperación para funcionar bien bajo presión o ataques (utilizando pruebas de estrés y fuzz designadas, entre otros) en cualquier momento dado.

Simplemente, si todas las pruebas pasan en el laboratorio durante un periodo de tiempo suficientemente largo, tenemos una versión estable.

¿Cómo pasamos de una versión estable a otra?

Sobre las versiones estables, construimos ramas en las que enriquecemos el software con nuevas características. Ese desarrollo provoca una inestabilidad natural debido a multitud de factores, siendo los principales la falta de conciencia de los desarrolladores sobre la complejidad del software y su entorno de pruebas, la baja cobertura de las nuevas pruebas o simplemente la codificación descuidada. Esa inestabilidad se refleja simplemente en el número de pruebas que empiezan a fallar como resultado de algún desarrollo. Los fallos se reconocen, y el equipo se centra en solucionar los problemas detectados mientras se esfuerza por optimizar la cobertura de las pruebas de las nuevas características. A medida que la nueva rama se estabiliza, la nueva versión candidata puede enviarse a los clientes internos para realizar algunas pruebas preliminares de las nuevas características y el comportamiento general. Si todo va bien, volviendo a la definición original de estabilidad – si no se descubren nuevos defectos durante un cierto período de tiempo, tanto por el equipo de desarrollo como por los clientes internos, y la nueva rama se comporta bien en el laboratorio (teniendo resultados de pruebas consistentes con la versión principal y estable), se puede fusionar con la línea principal, momento en el que podemos afirmar que tenemos una nueva versión estable.

El ciclo continúa, y continúa, a perpetuidad.