**Ohjelmiston julkaisuelinkaari** tarkoittaa ohjelmistokehityksessä ohjelmiston eri valmiusasteessa olevien versioiden julkaisua tuotteen elinkaaren aikana. Elinkaaren tuloksena on vakaan version julkaisu, sekä mahdollisia päivityksiä tähän. Kun ohjelmistokehittäjä lopettaa ohjelmiston päivittämisen, jakelun ja muun tuen, koittaa ohjelmiston elinkaaren loppu (EOL eli *end-of-life*). Ohjelmiston käyttö saattaa kuitenkin edelleen jatkua. Tyypillisesti kullekin vakaalle ns. pääversiojulkaisulle on oma julkaisuelinkaari.

Usein alfa- ja beetaversiot ovat julkaisua edeltäviä testiversioita, joita jaetaan suljetulle käyttäjäryhmälle koekäyttöön. Alfavaiheessa oleva ohjelma on usein pelkkä runko valmiista sovelluksesta, kun taas beetavaiheessa ohjelma on jokseenkin lopullisen tuotteen näköinen. Joidenkin määritelmien mukaan (esimerkiksi Royce) alfaversiossa on noin 70 % lopullisen ohjelmistotuotteen toiminnallisuudesta, kun taas beetaversiossa on noin 95 %.

Julkaisuvaiheet
---------------

* Esi-alfa (*pre-alpha*)
	+ Ohjelmiston toiminnallisuutta vasta rakennetaan.
* Alfa (*alpha*)
	+ Ohjelmistoa aletaan testaamaan. Ohjelmistoa voidaan käyttää, mutta se on hyvin keskeneräinen.
* Beeta (*beta*)
	+ Ohjelmisto alkaa olla toiminnoiltaan valmis, mutta sisältää todennäköisesti merkittävästi bugeja.
* Julkaisuehdokas tai julkaisukandidaatti (RC eli *release candidate*)
	+ Ohjelmisto alkaa olla toiminnoiltaan valmis ja ilmeisiä bugeja ei pitäisi olla.
* Julkaisu
	+ Vakaa, varsinainen versio

Alfa- ja beetatestaus
---------------------

Alfa- ja beetaversiot liittyvät läheisesti alfa- ja beetatestaukseen. 

Avoimessa ohjelmistonkehityksessä jo alfa- ja beetaversiot, usein koko lähdekoodi, ovat periaatteessa kenen tahansa saatavilla.

Suljetussa ohjelmistonkehityksessä alfatestaus suoritetaan usein rajoitetussa joukossa, lähinnä ohjelmiston kehittäjän organisaatiossa. Beetatestaus suoritetaan sitten vaikkapa asiakkaan tiloissa. Beetatestauksessa kehittäjätiimiä suurempi ryhmä tavallisia käyttäjiä pyrkii paikallistamaan sovelluksesta siihen jääneet virheet sekä lapsukset, jotta siitä voidaan julkaista release candidate -versio laajempaa testausta varten. 

### Alfatestaus

Ohjelmistojen julkaisuselinkaaren alfatestaus on käytännössä seuraava vaihe integraatio- ja järjestelmätestauksen jälkeen, ja sen tavoitteena on arvioida, miten järjestelmä toimii kokonaisuutena. Alfatestausta voidaan kuvata sisäiseksi hyväksymistestaukseksi, jossa tavoitteena on yleensä lasilaatikkotestausta käyttäen varmistaa, että kehitetty järjestelmä on tarpeeksi vakaa ja toimiva ennen sen laajempaa testausta beetavaiheessa, jolloin suurempi testiryhmä ottaa sen käyttöön. Organisaation sisällä tapahtuva siirtyminen mustalaatikkotestaukseen tunnetaan nimellä alfajulkaisu.

Alfatestauksessa kaikki järjestelmän ominaisuudet ovat toteutettu, mutta esimerkiksi käyttöliittymän hienosäätö, järjestelmän sisäisen logiikan, kuten pelin sääntöjen tasapainotuksen, tai toimintojen virheetön suoritus kehitysympäristön ulkopuolella voi olla vielä kesken tai tarkastamatta. Tämä tarkoittaa, että Alfa-ohjelmisto voi sisältää vakavia virheitä, jotka voivat johtaa ohjelmiston kaatumiseen tai tietojen menetykseen. Yleisesti ottaen alfaohjelmiston ulkoinen saatavuus suljetun lähdekoodin ohjelmistolle on harvinaista verrattuna avoimen lähdekoodin ohjelmistoihin, joista on usein julkisesti saatavilla olevia alfaversioita. Alfavaihe päättyy yleensä jonkin ominaisuuden jäädyttämiseen, mikä tarkoittaa, ettei ohjelmistoon lisätä enää uusia ominaisuuksia ja tällöin ohjelmiston voidaan sanoa olevan ominaisuuksiltaan täydellinen (Feature-Complete).

Videopeli ovat hyvä esimerkki ohjelmistotyypistä, joka vaatii pitkäkestoista alfatestausta. Ohjelmiston testaaja pelaa jokaisen pelin tason useita kertoja ja suorittaa erilaisia odotettuja ja odottamattomia toimia testatakseen, miten sovellus reagoi. Ongelmia voi löytyä esimerkiksi pelihahmojen liikkumisessa, visuaalisissa efekteissä, tai pelin sattumanvaraisessa kaatumisessa. Näiden testaus ja korjaus on kriittisen tärkeää, ennen kuin peli voidaan siirtää laajempaan beetatestaukseen.

### Julkinen beetatestaus

Julkisessa beetatestauksessa tietokonesovellus julkaistaan kaikkien saataville. Julkisen beetatestauksen hyviin puoliin lukeutuu huomattavasti isompi ryhmä testaajia, ja tämän myötä suurempi todennäköisyys ohjelmointivirheiden paljastumiselle. Haittapuoliin lukeutuu mahdollisuus teollisuusvakoiluun sekä testaajien määrään suhteutettuna pieni palauteprosentti.

### Rajattu beetatestaus

Aivan kuten julkisessa beetatestauksessakin, myös rajatun beetatestauksen ryhmä otetaan testaajaryhmän tai yrityksen ulkopuolelta. Rajatussa testausryhmässä beetatestaajat pystytään profiloimaan tarkemmin, ja profiloinnin perusteella heidän antamaansa palautetta voidaan kohdistaa tietokonesovelluksen tiettyyn osa-alueeseen paremmin.

Rajatun beetatestauksen hyviin puoliin lukeutuu tarkemmat virhekuvaukset sekä pienempi riski teollisuusvakoilulle. Haittapuoliin taas rajatun testausryhmän pienuus sekä sen myötä määrällisesti vähäisempi palaute sovelluksen toimivuudesta.

Lähteet
-------

1. ↑  Kasurinen, Jussi.: Ohjelmistotestauksen käsikirja *payhip.com*.  2013. Viitattu 9.10.2023. ISBN 978-952-5912-99-9
2. ↑  Constantin Singureanu: Alpha-testauksen tyypit, prosessi, työkalut ja paljon muuta!. Viitattu 9.10.2023.

* Roger S. Pressman, Darrel Ince: Software Engineering, A Practitioners Approach (2000) ISBN 0-07-709677-0, s. 483
* Walker Royce: Software Process Management, A Unified Network (2004) ISBN 0-201-30958-0, s. 152

Kirjallisuutta
--------------

* Fine, Michael R.: *Beta Testing for Better Software*. Wiley, 2002. ISBN 91-4571-3394-6. (englanniksi)
* Haikala, Ilkka: *Ohjelmistotuotanto*. Helsinki: Suomen atk-kustannus, 1998. ISBN 951-762-696-7. (suomeksi)
* Pressman, Roger S. & Ince, Darrel: *Software Engineering, A Practitioners Approach*, s. 663. 3rd Ed. European Edition. McGraw-Hill, 1994. ISBN 0-07-707936-1. (englanniksi)