- alpha – é a versão que está em construção e que foi disponibilizada para a área de homologação, que é geralmente interna à comunidade ou organização que desenvolve o software.
- beta – é a primeira versão lançada fora da organização ou da comunidade que desenvolve o produto, para efeitos de avaliação ou de testes de caixa preta.
- release candidate – refere-se a liberação de uma versão com potencial para se tornar o produto final. Nesta fase, o produto apresenta todas as funcionalidades concebidas sem a presença de bugs impeditivos;
- gold – é a versão final de um determinado produto e normalmente é quase idêntica à release candidate, só que acrescida apenas da correção de pequenos bugs identificados nos testes finais. É considerada muito estável e relativamente livre de bugs, possuindo assim uma qualidade adequada para ampla distribuição e utilização por parte dos usuários finais.
- Esquema da Apache Foundation
Esquema Nome Características X.x.x Major Release Novas funcionalidades significativas x.X.x Minor Release Melhorias, refatoramentos e evoluções x.x.X Revision Release Correções de bugs
Vamos agora a um exemplo prático da adoção do controle de fases e do esquema utilizado pela Apache:
Faremos o lançamento hipotético de um produto nos próximos 6 meses e definimos que este produto se chamará Sirius e que possuirá 5 funcionalidades.
A release inicial deste produto será identificada, por exemplo, como 0.0.0, o que quer dizer que é a minha primeira versão.
Durante o primeiro mês de trabalho foram implementadas duas funcionalidades e resolveu-se liberar uma versão alpha do produto para a área de homologação chamada: Sirius-0.0.0-alpha.
Durante os testes (que duraram duas semanas) foram encontrados bugs, que foram corrigidos durante as duas semanas seguintes e liberados em uma nova versão alfa chamada: Sirius-0.0.1-alpha. Notem que a revisão da versão foi incrementada, pois somente o que foi liberado nesta release foram as correções.
Após os novos testes (duas semana depois) não foram encontrados bugs significativos e decidiu-se realizar a liberação da versão beta: Sirius-0.0.1-beta.
E, nesta mesma data, como os desenvolvedores finalizaram mais duas funcionalidades, também foi feita a liberação da versão alpha: Sirius-1.0.0-alpha.
Portanto, com 2 meses de projeto o cenário é o seguinte:
- 4 funcionalidades desenvolvidas;
- 2 funcionalidades testadas e corrigidas internamente (Sirius-0.0.1-alpha);
- 2 funcionalidades liberadas para comunidade (Sirius-0.0.1-beta gerada a partir da Sirius-0.0.1-alpha);
- 2 novas funcionalidades liberadas para testes internos (Sirius-1.0.0-alpha);
Durante o mês seguinte (3º mês), a comunidade pegou vários bugs, assim como os testes internos identificaram outros tantos. Todos estes bugs foram corrigidos e também a última funcionalidade foi desenvolvida. E, com isto, foram liberadas as seguintes versões:
- Sirius-2.0.0-alpha – correções dos bugs encontrados na release Sirius-1.0.0-alpha e liberação da última funcionalidade;
- Sirius-1.0.0-beta – 2 novas funcionalidades e correções dos bugs da release Sirius-1.0.0-alpha e correções dos bugs encontrados na release Sirius-0.0.1-beta;
E depois de mais um mês (4º mês) todos os bugs encontrados nas releases alpha e beta foram corrigidos e foi feita a liberação da versão Sirius-2.0.0-beta contendo todas as 5 funcionalidades e as correções dos bugs das releases Sirius-2.0.0-alpha e Sirius-1.0.0-beta.
Durante o 5º mês a comunidade identificou outros bugs que foram corrigidos e originaram a release Sirius-2.0.1-alpha que foi liberada internamente e passou nos testes internos sem que houvesse a necessidade de realizar correções e por isto logo em seguida foi liberada a release Sirius-2.0.1-rc (release candidate).
Depois de vários outros testes e da utilização por parte dos usuários e da comunidade, não foram identificados bugs impeditivos e foi liberada a versão final do projeto, chamada de Sirius-2.0.1 (gold).
Bom, é isto aí!
Em breve falarei sobre como tudo isto se integra com um ambiente que utiliza ferramentas SCM e de Integração Contínua.
Aguardem!
Ótima documentação!!!
Adorei… esta explicação, estou cursando o 3º semestre de Desenvolvimento e Análise de Sistemas, concerteza esta documentação clareou mais minhas dúvidas.
Obrigado
muti bom, valeu