Ciclo di vita del rilascio del software - Software release life cycle

Un esempio di un ciclo di vita di rilascio del software di base

Un ciclo di vita del rilascio del software è la somma delle fasi di sviluppo e maturità di un software per computer . I cicli vanno dal suo sviluppo iniziale alla sua eventuale versione e includono versioni aggiornate della versione rilasciata per aiutare a migliorare il software o correggere i bug del software ancora presenti nel software.

È molto probabile che gli utenti di computer abbiano familiarità con la fase beta , poiché i prodotti software a volte vengono pubblicizzati pubblicamente come beta per ridurre le aspettative degli utenti sulla loro affidabilità.

Storia

L'utilizzo della terminologia di test "alpha/beta" ha avuto origine presso IBM . Terminologie simili per lo sviluppo del software IBM sono state utilizzate da persone coinvolte con IBM almeno dagli anni '50 (e probabilmente anche prima). Il test "A" era la verifica di un nuovo prodotto prima dell'annuncio pubblico. Il test "B" era la verifica prima di rilasciare il prodotto per essere fabbricato. Il test "C" era il test finale prima della disponibilità generale del prodotto. Poiché il software è diventato una parte significativa delle offerte di IBM, la terminologia dell'alpha test è stata utilizzata per indicare il test di pre-annuncio e il beta test è stato utilizzato per mostrare la disponibilità del prodotto per la disponibilità generale. Martin Belsky, un manager di alcuni dei precedenti progetti software di IBM, ha affermato di aver inventato la terminologia. IBM abbandonò la terminologia alfa/beta negli anni '60, ma a quel punto aveva ricevuto un avviso abbastanza ampio. L'utilizzo di "beta test" per fare riferimento ai test eseguiti dai clienti non è stato eseguito in IBM. Piuttosto, IBM ha usato il termine "test sul campo".

Fasi di sviluppo

pre-alfa

Pre-alpha si riferisce a tutte le attività eseguite durante il progetto software prima del test formale. Queste attività possono includere l'analisi dei requisiti , progettazione software , sviluppo di software , e test di unità . Nel tipico sviluppo open source , ci sono diversi tipi di versioni pre-alpha. Le versioni Milestone includono serie specifiche di funzioni e vengono rilasciate non appena la funzionalità è completa.

Alfa

La fase alfa del ciclo di vita del rilascio è la prima fase del test del software (alpha è la prima lettera dell'alfabeto greco , usata come numero 1). In questa fase, gli sviluppatori generalmente testano il software utilizzando tecniche white-box . Un'ulteriore convalida viene quindi eseguita utilizzando tecniche black-box o gray-box , da un altro team di test. Il passaggio al test della scatola nera all'interno dell'organizzazione è noto come rilascio alpha .

Il software Alpha non viene testato a fondo dallo sviluppatore prima di essere rilasciato ai clienti. Il software Alpha può contenere errori gravi e qualsiasi instabilità risultante potrebbe causare arresti anomali o perdita di dati. Il software Alpha potrebbe non contenere tutte le funzionalità previste per la versione finale. In generale, la disponibilità esterna di software alpha è rara nel software proprietario , mentre il software open source ha spesso versioni alpha pubblicamente disponibili. La fase alfa di solito termina con un blocco delle funzionalità , indicando che non verranno aggiunte altre funzionalità al software. Al momento, si dice che la funzionalità del software è completa . Un beta test viene eseguito dopo il test di accettazione presso la sede del fornitore (alpha test) e immediatamente prima del rilascio generale del software come prodotto.

Beta

Beta, che prende il nome dalla seconda lettera dell'alfabeto greco , è la fase di sviluppo del software che segue l'alfa. Il software in fase beta è anche conosciuto come betaware . Una fase beta generalmente inizia quando il software è completo di funzionalità, ma è probabile che contenga un numero di bug noti o sconosciuti. Il software in fase beta in genere conterrà molti più bug rispetto al software completato e ai problemi di velocità o prestazioni e potrebbe comunque causare arresti anomali o perdita di dati. L'obiettivo del beta testing è ridurre l'impatto sugli utenti, spesso incorporando test di usabilità . Il processo di consegna di una versione beta agli utenti è chiamato versione beta ed è in genere la prima volta che il software è disponibile al di fuori dell'organizzazione che lo ha sviluppato. Le versioni beta del software possono essere pubbliche o private , a seconda che siano disponibili apertamente o disponibili solo per un pubblico limitato. Il software in versione beta è spesso utile per dimostrazioni e anteprime all'interno di un'organizzazione e per potenziali clienti. Alcuni sviluppatori si riferiscono a questa fase come anteprima , versione di anteprima , prototipo , anteprima tecnica o anteprima tecnologica ( TP ) o accesso anticipato . Dopo l'introduzione di Windows 8 , Microsoft ha chiamato il software pre-release di anteprima piuttosto che beta . Tutte le build pre-release rilasciate tramite il programma Windows Insider lanciato nel 2014 sono denominate "build Insider Preview". "Beta" può anche indicare qualcosa di più simile a una release candidate o una forma di demo a tempo limitato o una tecnica di marketing.

I beta tester sono persone che segnalano attivamente problemi del software beta. Di solito sono clienti o rappresentanti di potenziali clienti dell'organizzazione che sviluppa il software. I beta tester tendono a offrire volontariamente i loro servizi gratuitamente, ma spesso ricevono versioni del prodotto che testano, sconti sulla versione di rilascio o altri incentivi.

Beta perpetua

Alcuni software sono mantenuti nella cosiddetta beta perpetua , in cui nuove funzionalità vengono continuamente aggiunte al software senza stabilire una versione "stabile" finale. Poiché Internet ha facilitato la distribuzione rapida ed economica del software, le aziende hanno iniziato ad adottare un approccio più flessibile all'uso della parola beta . Nel febbraio 2005, ZDNet ha pubblicato un articolo sul fenomeno di una versione beta che spesso rimane per anni e viene utilizzata come se fosse a livello di produzione. Ha notato che Gmail e Google News , ad esempio, erano in versione beta da molto tempo sebbene ampiamente utilizzati; Google News ha lasciato la versione beta nel gennaio 2006, seguita da Google Apps (ora denominata Google Workspace ), incluso Gmail, nel luglio 2009.

Beta aperta e chiusa

Gli sviluppatori possono rilasciare una beta chiusa , chiamata anche beta privata , o una beta aperta , chiamata anche beta pubblica ; le versioni beta chiuse vengono rilasciate a un gruppo ristretto di persone per un test utente su invito, mentre i beta tester aperti provengono da un gruppo più ampio o da chiunque sia interessato. La versione beta privata potrebbe essere adatta per il software in grado di fornire valore, ma non è pronto per essere utilizzato da tutti a causa di problemi di ridimensionamento, mancanza di documentazione o funzionalità vitali ancora mancanti. I tester segnalano eventuali bug che trovano e talvolta suggeriscono funzionalità aggiuntive che ritengono dovrebbero essere disponibili nella versione finale.

Esempi di una beta pubblica importante:

  • I primi clienti hanno acquistato una "edizione pionieristica" del word processor WordVision per PC IBM per $ 49,95. Nel 1984, Stephen Manes scrisse che "in un brillante colpo di marketing, Bruce e James Program Publishers riuscirono a convincere la gente a pagare per il privilegio di testare il prodotto".
  • Nel settembre 2000 una versione in scatola di di Apple 's Mac OS X Public Beta è stato rilasciato il sistema operativo.
  • Rilascio da parte di Microsoft delle anteprime tecnologiche della comunità ( CTP ) per Windows Vista , tra settembre 2005 e maggio 2006.
  • Dal 2009 al 2011, Minecraft era in beta pubblica.

Le beta aperte hanno il duplice scopo di dimostrare un prodotto ai potenziali consumatori e di testare tra un'ampia base di utenti che potrebbero portare alla luce errori oscuri che un team di test molto più piccolo potrebbe non trovare.

Candidato al rilascio

Una release candidate ( RC ), nota anche come "going silver", è una versione beta con il potenziale per essere un prodotto stabile, che è pronto per il rilascio a meno che non emergano bug significativi . In questa fase di stabilizzazione del prodotto, tutte le funzionalità del prodotto sono state progettate, codificate e testate attraverso uno o più cicli beta senza bug noti di classe showstopper. Una versione è chiamata codice completo quando il team di sviluppo concorda che non verrà aggiunto alcun codice sorgente completamente nuovo a questa versione. Potrebbero esserci ancora modifiche al codice sorgente per correggere i difetti, modifiche alla documentazione e ai file di dati e codice periferico per casi di test o utilità. I beta tester, se selezionati privatamente, saranno spesso accreditati per aver utilizzato la release candidate come se fosse un prodotto finito. Il beta testing viene condotto presso la sede di un cliente o del cliente e per testare il software dal punto di vista dell'utente.

Rilascio stabile

Chiamata anche release di produzione , la release stabile è l'ultima release candidate ( RC ) che ha superato tutte le verifiche/test. I bug rimanenti sono considerati accettabili. Questa versione va in produzione. Alcuni domini (ad esempio, le distribuzioni Linux ), hanno due tipi di rilasci stabili: rilasci normali o stabili e rilasci con supporto a lungo termine (LTS) che vengono mantenuti per un periodo di tempo più lungo.

Pubblicazione

Una volta rilasciato, il software è generalmente noto come "versione stabile". Il termine formale spesso dipende dal metodo di rilascio: supporto fisico, rilascio online o applicazione web.

Rilascio in produzione (RTM)

Il termine release to manufacturing (RTM), noto anche come "going gold", è un termine utilizzato quando un prodotto software è pronto per essere consegnato. Questa build può essere firmata digitalmente , consentendo all'utente finale di verificare l'integrità e l'autenticità dell'acquisto del software. Una copia della build RTM nota come " gold master " o GM viene inviata per la duplicazione di massa o la replica del disco, se applicabile. Questa terminologia è presa dall'industria della produzione di dischi audio, in particolare dal processo di mastering . RTM precede la disponibilità generale (GA) quando il prodotto viene rilasciato al pubblico. Una build golden master (GM) è in genere la build finale di un pezzo di software nelle fasi beta per gli sviluppatori. In genere, per iOS , è la build finale prima di una versione principale, tuttavia, ci sono state alcune eccezioni.

Viene in genere utilizzato in determinati contesti di software di produzione di massa al dettaglio, al contrario di una produzione o di un progetto di software specializzato in una produzione e distribuzione commerciale o governativa, in cui il software viene venduto come parte di un pacchetto in una vendita di hardware per computer correlata e in genere dove il software e il relativo hardware devono essere infine disponibili e venduti su base di massa/pubblico presso i negozi al dettaglio per indicare che il software ha raggiunto un livello di qualità definito ed è pronto per la distribuzione al dettaglio di massa. RTM potrebbe anche significare in altri contesti che il software è stato consegnato o rilasciato a un cliente o cliente per l'installazione o la distribuzione ai computer o alle macchine degli utenti finali dell'hardware. Il termine non definisce il meccanismo di consegna o il volume; si afferma solo che la qualità è sufficiente per la distribuzione di massa. Il risultato dell'organizzazione di ingegneria è spesso sotto forma di un supporto master d'oro utilizzato per la duplicazione o per produrre l'immagine per il web.

Disponibilità generale (AG)

Pietre miliari nel ciclo di vita di un prodotto: disponibilità generale (GA), annuncio di fine vita (EOLA), data dell'ultimo ordine (LOD) e fine vita (EOL)

La disponibilità generale ( GA ) è la fase di marketing in cui sono state completate tutte le attività di commercializzazione necessarie e un prodotto software è disponibile per l'acquisto, a seconda, tuttavia, della lingua, della regione, della disponibilità elettronica o dei media. Le attività di commercializzazione potrebbero includere test di sicurezza e conformità, nonché localizzazione e disponibilità a livello mondiale. Il tempo tra RTM e GA può variare da una settimana a mesi in alcuni casi prima che possa essere dichiarato un rilascio generalmente disponibile a causa del tempo necessario per completare tutte le attività di commercializzazione richieste da GA. In questa fase, il software è "attivo".

Rilascio sul Web (RTW)

Release to the Web ( RTW ) o rilascio Web è un mezzo di distribuzione del software che utilizza Internet per la distribuzione. Nessun supporto fisico viene prodotto in questo tipo di meccanismo di rilascio dal produttore. Le versioni Web stanno diventando più comuni con l'aumento dell'utilizzo di Internet.

Supporto

Durante la sua vita supportata, il software è a volte soggetto a service release, patch o service pack , a volte chiamati anche "interim release" o "maintenance release" (MR). Ad esempio, Microsoft ha rilasciato tre principali service pack per le edizioni a 32 bit di Windows XP e due service pack per le edizioni a 64 bit . Tali service release contengono una raccolta di aggiornamenti, correzioni e miglioramenti, forniti sotto forma di un unico pacchetto installabile. Possono anche implementare nuove funzionalità. Alcuni software vengono rilasciati con l'aspettativa di un supporto regolare. Le classi di software che generalmente comportano un supporto prolungato come la norma includono suite antivirus e giochi online multiplayer di massa . Continuando con questo esempio di Windows XP, Microsoft ha offerto aggiornamenti a pagamento per altri cinque anni dopo la fine del supporto esteso. Ciò significa che il supporto è terminato l'8 aprile 2019.

Fine della vita

Quando il software non viene più venduto o supportato, si dice che il prodotto ha raggiunto la fine del ciclo di vita, che è stato interrotto, ritirato, deprecato, abbandonato o obsoleto, ma la fedeltà dell'utente può continuare a esistere per qualche tempo, anche molto tempo dopo la sua la piattaforma è obsoleta, ad esempio l' Atari ST e il Sinclair ZX Spectrum .

Dopo la data di fine vita, lo sviluppatore di solito non implementerà nuove funzionalità, risolverà difetti, bug o vulnerabilità esistenti (conosciuti prima di tale data o meno) o fornirà alcun supporto per il prodotto. Se lo sviluppatore lo desidera, può rilasciare il codice sorgente, così la piattaforma tornerà a vivere e sarà gestita da volontari.

Guarda anche

Riferimenti

Bibliografia

  • Distribuzione continua: rilasci software affidabili tramite l'automazione di compilazione , test e distribuzione di Jez Humble, David Farley; ISBN  0-321-60191-2