El ciclo de vida de lanzamiento de software es el proceso de desarrollo, prueba y distribución de un producto de software (por ejemplo, un sistema operativo ). Generalmente consta de varias etapas, como pre-alfa, alfa, beta y candidata a lanzamiento, antes de que la versión final, o "gold", se lance al público.
La fase pre-alfa se refiere a las primeras etapas de desarrollo, cuando el software aún se está diseñando y construyendo. La prueba alfa es la primera fase de pruebas formales, durante la cual el software se prueba internamente utilizando técnicas de caja blanca . La prueba beta es la siguiente fase, en la que el software es probado por un grupo más grande de usuarios, generalmente fuera de la organización que lo desarrolló. La fase beta se centra en reducir los impactos en los usuarios y puede incluir pruebas de usabilidad.
Después de las pruebas beta, el software puede pasar por una o más fases de lanzamiento candidato, en las que se lo perfecciona y se lo prueba más a fondo, antes de lanzar la versión final.
Algunos programas, en particular en los sectores de Internet y la tecnología, se lanzan en un estado de beta permanente, lo que significa que se actualizan y mejoran continuamente y nunca se consideran un producto totalmente terminado. Este enfoque permite un proceso de desarrollo más ágil y permite que los usuarios lancen el software y lo utilicen en una etapa más temprana del ciclo de desarrollo.
La versión pre-alfa se refiere a todas las actividades que se realizan durante el proyecto de software antes de la prueba formal. Estas actividades pueden incluir el análisis de requisitos , el diseño de software , el desarrollo de software y las pruebas unitarias . En el desarrollo típico de código abierto , existen varios tipos de versiones pre-alfa. Las versiones Milestone incluyen conjuntos específicos de funciones y se lanzan tan pronto como se completa la característica. [ cita requerida ]
La fase alfa del ciclo de vida de la versión es la primera fase de las pruebas de software (alfa es la primera letra del alfabeto griego , que se utiliza como el número 1). En esta fase, los desarrolladores generalmente prueban el software utilizando técnicas de caja blanca . Luego, otro equipo de pruebas realiza una validación adicional utilizando técnicas de caja negra o caja gris . El paso a las pruebas de caja negra dentro de la organización se conoce como versión alfa . [1] [2]
El software alfa no es probado exhaustivamente por el desarrollador antes de ser lanzado a los clientes. El software alfa puede contener errores graves y cualquier inestabilidad resultante podría causar fallas o pérdida de datos. [3] El software alfa puede no contener todas las características que están planeadas para la versión final. [4] En general, la disponibilidad externa del software alfa es poco común para el software propietario , mientras que el software de código abierto a menudo tiene versiones alfa disponibles públicamente. La fase alfa generalmente termina con una congelación de características , lo que indica que no se agregarán más características al software. En este momento, se dice que el software está completo en cuanto a características. Se lleva a cabo una prueba beta después de la prueba de aceptación en el sitio del proveedor (la prueba alfa) e inmediatamente antes del lanzamiento general del software como producto. [5]
Una versión con todas las características (FC) de un software tiene todas sus características planificadas o principales implementadas, pero aún no es definitiva debido a errores , problemas de rendimiento o estabilidad . [6] Esto ocurre al final de las pruebas alfa en el desarrollo .
Por lo general, el software con todas sus características aún debe pasar por pruebas beta y corrección de errores , así como por mejoras de rendimiento o estabilidad antes de poder pasar a la versión candidata y, finalmente, al estado dorado.
Beta, llamada así por la segunda letra del alfabeto griego , es la fase de desarrollo de software posterior a alfa. Una fase beta generalmente comienza cuando el software está completo en cuanto a características pero es probable que contenga varios errores conocidos o desconocidos. [7] El software en la fase beta generalmente tendrá muchos más errores que el software completo y problemas de velocidad o rendimiento, y aún puede causar fallas o pérdida de datos. El objetivo de las pruebas beta es reducir los impactos en los usuarios, a menudo incorporando pruebas de usabilidad . El proceso de entregar una versión beta a los usuarios se llama lanzamiento beta y generalmente es la primera vez que el software está disponible fuera de la organización que lo desarrolló. Los lanzamientos beta de software pueden ser abiertos o cerrados, dependiendo de si están disponibles abiertamente o solo están disponibles para una audiencia limitada. El software de versión beta a menudo es útil para demostraciones y vistas previas dentro de una organización y para posibles clientes. Algunos desarrolladores se refieren a esta etapa como vista previa , lanzamiento de vista previa , prototipo , vista previa técnica o vista previa de tecnología ( TP ), [8] o acceso temprano .
Los probadores beta son personas que informan activamente sobre problemas con el software beta. Suelen ser clientes o representantes de posibles clientes de la organización que desarrolla el software. Los probadores beta suelen ofrecer sus servicios de forma gratuita, pero a menudo reciben versiones del producto que prueban, descuentos en la versión de lanzamiento u otros incentivos. [9] [10]
Algunos programas se mantienen en la denominada fase beta perpetua , en la que se añaden nuevas funciones continuamente sin establecer una versión final "estable". A medida que Internet ha facilitado la distribución rápida y económica de programas, las empresas han comenzado a adoptar un enfoque más flexible en el uso de la palabra beta . [11]
Los desarrolladores pueden lanzar una versión beta cerrada o una versión beta abierta ; las versiones beta cerradas se lanzan a un grupo restringido de personas para una prueba de usuario por invitación, mientras que los evaluadores de la versión beta abierta pertenecen a un grupo más grande o a cualquier persona interesada. La versión beta privada podría ser adecuada para el software que es capaz de ofrecer valor pero que no está listo para ser utilizado por todos debido a problemas de escalabilidad, falta de documentación o aún faltan características vitales. Los evaluadores informan sobre cualquier error que encuentren y, a veces, sugieren características adicionales que creen que deberían estar disponibles en la versión final.
Las versiones beta abiertas tienen el doble propósito de demostrar un producto a consumidores potenciales, y las pruebas entre una amplia base de usuarios probablemente saquen a la luz errores oscuros que un equipo de pruebas mucho más pequeño podría no encontrar.
Un candidato a lanzamiento ( RC ), también conocido como prueba gamma o "paso a plata", es una versión beta con el potencial de ser un producto estable, que está listo para lanzarse a menos que surjan errores significativos . En esta etapa de estabilización del producto, todas las características del producto se han diseñado, codificado y probado a través de uno o más ciclos beta sin errores conocidos de clase de obstáculo. Se dice que un lanzamiento está completo cuando el equipo de desarrollo acepta que no se agregará código fuente completamente nuevo a este lanzamiento. Aún podría haber cambios en el código fuente para corregir defectos, cambios en la documentación y los archivos de datos, y código periférico para casos de prueba o utilidades. Los evaluadores beta, si se seleccionan de forma privada, a menudo recibirán el crédito por usar el candidato a lanzamiento como si fuera un producto terminado. Las pruebas beta se realizan en la ubicación de un cliente o consumidor y para probar el software desde la perspectiva de un usuario. [ cita requerida ]
También llamada versión de producción , la versión estable es la última versión candidata ( RC ) que ha pasado todas las etapas de verificación y pruebas. Los errores restantes conocidos se consideran aceptables. Esta versión pasa a producción .
Algunos productos de software (por ejemplo, distribuciones Linux como Debian ) también tienen versiones de soporte a largo plazo ( LTS ), que se basan en versiones completas que ya se han probado y solo reciben actualizaciones de seguridad. Esto permite a los desarrolladores dedicar más tiempo al desarrollo del producto en lugar de actualizar el código o buscar y corregir errores recién introducidos debido a suposiciones obsoletas sobre el sistema utilizado, el lenguaje o las bibliotecas subyacentes. [ cita requerida ]
Una vez publicado, el software se conoce generalmente como "versión estable". El término formal a menudo depende del método de publicación: medio físico, publicación en línea o una aplicación web. [12]
El término "liberación para fabricación" (RTM), también conocido como "going gold", es un término que se utiliza cuando un producto de software está listo para ser entregado. Esta compilación puede estar firmada digitalmente, lo que permite al usuario final verificar la integridad y autenticidad de la compra del software. Se envía una copia de la compilación RTM conocida como " gold master " o GM [13] para duplicación masiva o replicación de disco si corresponde. La terminología se toma de la industria de fabricación de discos de audio, específicamente el proceso de masterización . RTM precede a la disponibilidad general (GA) cuando el producto se lanza al público. Una compilación maestra dorada (GM) es típicamente la compilación final de una pieza de software en las etapas beta para desarrolladores. Por lo general, para iOS , es la compilación final antes de un lanzamiento principal, sin embargo, ha habido algunas excepciones.
RTM se utiliza normalmente en determinados contextos de software de producción en masa minorista (a diferencia de una producción o proyecto de software especializado en una producción y distribución comercial o gubernamental), donde el software se vende como parte de un paquete en una venta de hardware informático relacionado y, por lo general, donde el software y el hardware relacionado están finalmente disponibles y se venden de forma masiva/pública en tiendas minoristas para indicar que el software ha cumplido con un nivel de calidad definido y está listo para su distribución minorista masiva. RTM también podría significar en otros contextos que el software se ha entregado o liberado a un cliente o consumidor para su instalación o distribución a los ordenadores o máquinas de los usuarios finales del hardware relacionado. El término no define el mecanismo de entrega ni el volumen; solo indica que la calidad es suficiente para la distribución masiva. El producto final de la organización de ingeniería suele ser un medio maestro dorado que se utiliza para la duplicación o para producir la imagen para la web.
La disponibilidad general ( GA ) es la etapa de comercialización en la que se han completado todas las actividades de comercialización necesarias y un producto de software está disponible para su compra, dependiendo, sin embargo, del idioma, la región y la disponibilidad electrónica o en medios. [14] Las actividades de comercialización podrían incluir pruebas de seguridad y cumplimiento, así como la localización y la disponibilidad mundial. El tiempo entre la RTM y la GA puede llevar desde días hasta meses antes de que se pueda declarar una versión disponible para el público en general, debido al tiempo necesario para completar todas las actividades de comercialización requeridas por la GA. En esta etapa, el software ha "empezado a funcionar".
La versión web ( RTW ) o versión web es un medio de distribución de software que utiliza Internet para su distribución. En este tipo de mecanismo de publicación, el fabricante no produce ningún medio físico. Las versiones web se han vuelto más comunes a medida que el uso de Internet ha aumentado. [ cita requerida ]
Durante su vida útil, el software a veces está sujeto a versiones de servicio, parches o paquetes de servicio , a veces también llamados "versiones provisionales" o "versiones de mantenimiento" (MR). Por ejemplo, Microsoft lanzó tres paquetes de servicio principales para las ediciones de 32 bits de Windows XP y dos paquetes de servicio para las ediciones de 64 bits . [15] Dichas versiones de servicio contienen una colección de actualizaciones, correcciones y mejoras, entregadas en forma de un solo paquete instalable. También pueden implementar nuevas características. Algunos programas se lanzan con la expectativa de un soporte regular. Las clases de software que generalmente implican un soporte prolongado como norma incluyen suites antivirus y juegos en línea multijugador masivos . Continuando con este ejemplo de Windows XP, Microsoft ofreció actualizaciones pagas durante cinco años más después del final del soporte extendido. Esto significa que el soporte finalizó el 8 de abril de 2019. [16]
Cuando un software ya no se vende ni se le da soporte, se dice que el producto ha llegado al final de su vida útil, que se ha discontinuado, retirado, descontinuado, abandonado o está obsoleto, pero la lealtad del usuario puede continuar existiendo durante algún tiempo, incluso mucho después de que su plataforma quede obsoleta, por ejemplo, Common Desktop Environment [17] y Sinclair ZX Spectrum . [18]
Después de la fecha de finalización de la vida útil, el desarrollador normalmente no implementará ninguna característica nueva, no reparará defectos, errores o vulnerabilidades existentes (ya sea que se conocieran antes de esa fecha o no) ni brindará soporte para el producto. Si el desarrollador lo desea, puede publicar el código fuente, de modo que la plataforma vuelva a funcionar y sea mantenida por voluntarios; si no, puede ser sometida a ingeniería inversa más adelante cuando se convierta en abandonware .
El uso de la terminología de prueba "alfa/beta" se originó en IBM . [ cita requerida ] Terminologías similares para el desarrollo de software de IBM fueron utilizadas por personas involucradas con IBM desde al menos la década de 1950 (y probablemente antes). La prueba "A" era la verificación de un nuevo producto antes del anuncio público. La prueba "B" era la verificación antes de lanzar el producto para ser fabricado. La prueba "C" era la prueba final antes de la disponibilidad general del producto. A medida que el software se convirtió en una parte importante de las ofertas de IBM, la terminología de prueba alfa se utilizó para denotar la prueba previa al anuncio y la prueba beta se utilizó para mostrar la preparación del producto para la disponibilidad general. Martin Belsky, un gerente de algunos de los primeros proyectos de software de IBM, afirmó haber inventado la terminología. IBM abandonó la terminología alfa/beta durante la década de 1960, pero para entonces ya había recibido una atención bastante amplia. El uso de "prueba beta" para referirse a las pruebas realizadas por los clientes no se hacía en IBM. En cambio, IBM utilizó el término "prueba de campo".
Posteriormente se desarrollaron importantes versiones beta públicas, y los primeros clientes habían comprado una "edición pionera" del procesador de textos WordVision para IBM PC por 49,95 dólares. En 1984, Stephen Manes escribió que "en un brillante golpe de marketing, Bruce and James Program Publishers logró que la gente pagara por el privilegio de probar el producto". [19] En septiembre de 2000, se lanzó una versión en caja del sistema operativo Mac OS X Public Beta de Apple . [20] Entre septiembre de 2005 y mayo de 2006, Microsoft lanzó versiones preliminares de tecnología comunitaria ( CTP ) para Windows Vista . [21] De 2009 a 2011, Minecraft estuvo en versión beta pública.
En febrero de 2005, ZDNet publicó un artículo sobre el fenómeno de una versión beta que a menudo permanece durante años y se usa como si estuviera en el nivel de producción. [22] Señaló que Gmail y Google News , por ejemplo, habían estado en versión beta durante mucho tiempo aunque se usaban ampliamente; Google News dejó la versión beta en enero de 2006, seguido por Google Apps (ahora llamado Google Workspace ), incluido Gmail, en julio de 2009. [12] Desde la introducción de Windows 8 , Microsoft ha llamado al software de prelanzamiento una vista previa en lugar de beta . Todas las compilaciones de prelanzamiento lanzadas a través del Programa Windows Insider lanzado en 2014 se denominan "compilaciones de vista previa de Insider". "Beta" también puede indicar algo más como un candidato de lanzamiento, o como una forma de demostración de tiempo limitado, o una técnica de marketing. [23]
El software alfa generalmente no funciona bien y le faltan funciones importantes como jugabilidad y niveles completos.