Nainformática, aliberação do programa computacional oulançamento desoftware (eminglês:release) é o lançamento de nova versão oficial de produto desoftware. Cada vez que um produto de software é criado ou modificado, o fabricante e seusdesenvolvedores decidem sobre como distribuir o novo produto (oumodificação/versão) às pessoas que o utilizam. Dá-se, pois, uma etapa de elaboração rumo ao produto final. Esse conjunto é denominado ciclo de vida de liberação desoftware.
Osoftware é sempre produzido e, pois, identificado e liberado sob umaversão de programa, e é essa identificação própria garante que cadasoftware seja absolutamente inconfundível com qualquer outra anterior ou posterior.
Patch é um método de distribuição de mudanças. Pode ser um programa que modifica o sistema original para criar um novo atualizado, como apenas uma lista de instruções que o usuário siga para atualizar o sistema.
O uso da terminologia teste "alfa / beta", como se dá correntemente em Informática, originou-se na empresa norte-americanaIBM. Já nos anos1950 (e provavelmente antes), a IBM usou terminologia similar para o desenvolvimento dehardware. Onde, o Teste "A" indicava a verificação de um novo produto antes do anúncio público; o Teste "B" era a verificação antes de liberar o produto para ser efetivamente fabricado; o Teste "C" significava o teste final antes da disponibilidade geral (e comercial) do produto. Como osoftware tornou-se parte significativa das ofertas de produto por parte de IBM, a terminologia do "teste alfa" passou a ser usada para denotar o teste pré-anúncio e o "teste beta", para mostrar a situação do produto para disponibilidade geral. Martin Belsky[1], gerente de alguns dos projetos desoftware anteriores da IBM, afirmou ter inventado essa terminologia. A IBM abandonou a terminologia alfa / beta durante a década de1960, mas a essa altura já havia sido amplamente difundida. O uso do "teste beta" para se referir a testes feitos por clientes não foi feito na IBM; em vez disso, a IBM usa o termo "teste de campo".
Em um desenvolvimento típico decódigo aberto, há várias versões pré-alfa. Versões chamadasmilestone incluem conjuntos específicos de funções, e são lançadas tão logo a funcionalidade esteja implementada.
A versão alfa é a primeira versão testada — chama-se "α" a letra inicial doalfabeto grego ou o número 1 — nesta fase os desenvolvedores geralmente realizamtestes caixa-branca. Validações requeremtestes caixa-preta por uma equipe específica de testes.[2]
Versões alfa podem ser instáveis, com travamento ou perda de dados, exceto se publicamente disponibilizadas. Nesse caso, os desenvolvedores focam mais na estabilidade, com testes mais extensivos. Porém é incomum a publicação desoftwares em versão alfa.
A versão beta (chama-se "β" correspondente à segunda letra doalfabeto grego e também ao número 2), é a que sucede a versão alfa. Inicia-se, geralmente, quando não há mais funcionalidades a implementar nosoftware. Seu foco é reduzir impactos aos usuários, valendo-se detestes de usabilidade. O processo de liberação da versão beta é dito liberação beta e, tipicamente, é sua primeira divulgação pública, fora dos limites da organização que o desenvolve.[3]
Usuários de versões beta costumam ser ditosbeta testers ("testadores [de] beta"). Costumam ser consumidores prospectivos que aceitam participar dos testes sem pagamento, embora possam ganhar descontos, compensações, ou até receber osoftware sem custo.[4]
Versões beta usam-se em demonstraçõesintra-organização e para clientes externos. Às vezes, refere-se o beta, alternativamente, comoearly access ("acesso adiantado").preview outechnical preview. Algunssoftwares permanecem comobetas "perpétuos".
A versão release candidate ("[produto] candidato a lançamento"), ou simplesmente RC, refere-se a uma versão com potencial para ser o produto final, pronta para ser lançada aousuário, a menos que algum defeito (bug) sério apareça e se o perceba em tempo. Nesse estágio de estabilização do produto, todas as funcionalidades encontram-se especificadas, implementadas e testadas através de uma ou mais fases beta sem a ocorrência de defeitos sérios.
Apple Inc. usa o termo "golden master" para designar essa fase (release candidate), e o últimogolden master é utilizado como versão final. Outras letras do alfabeto grego, comogama edelta, são usadas para indicar versões substancialmente completas, mas ainda em fase de testes, comômega ouzênite para versões finais de teste e tidas como livres de defeitos, prontas para produção. São especificidades de cada empresa.
Finalmente — ou quase finalmente — um produto em lançamento é denominadocode complete ("código completo") quando a equipe de desenvolvimento concorda que a versão não terá,a priori, inclusão de qualquercódigo fonte adicional, embora, na prática, por motivos vários, ainda possa haver mudanças no código para corrigir defeitos. Pode ainda haver mudança na documentação ou nos arquivos de dados, ou no código utilizado para testes.
Release to manufaturing ("lançamento para a fabricação") ourelease to marketing ("lançamento para o mercado"), ambos abreviados RTM, utilizam-se quando osoftware está pronto para o consumidor final. As iniciais RTM são tipicamente usadas se a produção destina-se a um grande público, em contraste a produtos para público mais restrito — comosoftwares para finalidades específicas ou governamentais —, notadamente nos já distribuídos com componentes dehardware (O&M, ou vendidos em grandes redes de lojas.[5]
General availability ([produto para "disponibilidade geral") é o produto no ponto em que todas as atividades de comercialização necessárias foram completadas e osoftware foi oficialmente disponibilizado para o mercado, seja pelainternet ou em mídias físicas.
Atividades comerciais podem incluir disponibilidade geográfica do produto, tradução em várias línguas conforme mercados-alvo e finalização de testes de segurança. O tempo entre RTM e GA dura semanas a meses, dependendo da demanda comercial da GA.
Essa é a fase em que o produto é considerado "vivo" — é a versão final. Tal versão é tida como muito estável e virtualmente livre de defeitos, com qualidade aceitável para todos os usuários finais. Em jogos, ela também é conhecida comogold edition ("versão ouro").
Long Term Support' ([produto com] "suporte de longa duração"), ou LTS, é a versão que confere a garantia adicional no tempo de serem atualizáveis para a próxima LTS e desfrutarem de suporte pelo fabricante por um tempo mais longo que versões não-LTS.[6]