Pular para o conteúdo principal

Questão de Engenharia de Software — Git — FCC 2024

Engenharia de SoftwareGit
Código
fc147280
Banca
FCC
Órgão
BAHIAGÁS
Ano
2024
Cargo
APO ( )

Em um projeto de desenvolvimento de software grande e complexo, uma Analista optou pelo uso do modelo de fluxo de trabalho para Git conhecido como Gitflow, que define tipos específicos de branches com propósitos diferentes. Em certo momento, ela fez commit na branch onde foram realizados testes e ajustes finais antes do lançamento, na branch

  1. ADevelop.
  2. BMaster.
  3. CUpdate.
  4. DRelease.
  5. EFeature.
Revelar gabarito e comentário

GabaritoD — Release.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Gitflow: Branches e Fluxo de Trabalho

Gabarito: letra D. No modelo Gitflow, a branch Release é criada a partir da Develop para preparar o lançamento, sendo o local onde são realizados os testes finais, ajustes de bugs e correções de documentação antes de ser mesclada na Master/Main e na Develop. A alternativa correta é a letra D.

O Gitflow é um modelo de fluxo de trabalho para Git que organiza o desenvolvimento em branches com propósitos bem definidos, criado por Vincent Driessen. Ele é especialmente útil em projetos grandes e complexos, pois estabelece uma estrutura clara para o desenvolvimento de novas funcionalidades, preparação de releases e correções de emergência. As branches principais são a Master/Main (código estável, pronto para produção) e a Develop (integração do desenvolvimento). A partir delas, criam-se branches auxiliares: Feature (novas funcionalidades), Release (preparação do lançamento) e Hotfix (correções urgentes em produção).

A branch Release é criada a partir da Develop quando o conjunto de funcionalidades para a próxima versão está completo. Nela, são feitos apenas ajustes finais: correção de bugs, atualização de documentação e testes de aceitação. Nenhuma funcionalidade nova é adicionada nessa branch. Quando o release está pronto, ela é mesclada tanto na Master (com uma tag de versão) quanto na Develop, para que as correções feitas durante a preparação sejam incorporadas ao desenvolvimento contínuo.

A pegadinha desta questão está em confundir a branch Release com a Develop. A Develop é onde o desenvolvimento acontece de forma contínua, integrando as features concluídas. Já a Release é um estágio posterior, específico para a preparação do lançamento. O enunciado descreve exatamente o propósito da Release: "testes e ajustes finais antes do lançamento".

NÃO CAIA NESSA!

A banca explora a confusão entre as branches Develop e Release. A Develop é o ambiente de integração contínua do desenvolvimento, onde as features são mescladas. A Release é criada a partir da Develop quando o lançamento está próximo, servindo apenas para estabilização (testes finais, correção de bugs e documentação). O termo "antes do lançamento" é o gatilho: aponta diretamente para a Release, não para a Develop.

Branch

Função principal

Criada a partir de

Mesclada em

Master/Main

Código estável, pronto para produção

Develop

Integração contínua do desenvolvimento

Master

Master (via Release)

Feature

Desenvolvimento de novas funcionalidades

Develop

Develop

Release

Testes e ajustes finais antes do lançamento

Develop

Master e Develop

Hotfix

Correções urgentes em produção

Master

Master e Develop

  1. 1Feature (nova funcionalidade)
  2. 2Merge na Develop
  3. 3Release (testes e ajustes)
  4. 4Merge na Master e Develop
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A branch Develop é o ambiente de integração do desenvolvimento, onde as branches Feature são mescladas após a conclusão. Ela não é o local de testes e ajustes finais antes do lançamento; esse papel é da Release. A Develop recebe o código em desenvolvimento contínuo, não a versão em preparação para produção.

Alternativa B — ❌ Incorreta

A branch Master (ou Main) contém o código estável e pronto para produção. Ela recebe o merge da Release (com a tag de versão) e da Hotfix, mas não é onde se realizam testes e ajustes finais. É o ponto de partida para o código em produção, não o ambiente de preparação.

Alternativa C — ❌ Incorreta

Update não é uma branch definida no modelo Gitflow. As branches padrão são Master, Develop, Feature, Release e Hotfix. A alternativa apresenta um nome genérico que não corresponde a nenhum tipo específico do fluxo de trabalho Gitflow.

Alternativa D — ✅ Correta ⟵ GABARITO

A branch Release é criada a partir da Develop quando o conjunto de funcionalidades para a próxima versão está completo. Nela, são realizados apenas ajustes finais: correção de bugs, atualização de documentação e testes de aceitação. Nenhuma funcionalidade nova é adicionada nessa branch. Quando o release está pronto, ela é mesclada tanto na Master (com uma tag de versão) quanto na Develop, para que as correções feitas durante a preparação sejam incorporadas ao desenvolvimento contínuo.

Alternativa E — ❌ Incorreta

A branch Feature é criada a partir da Develop para o desenvolvimento de uma nova funcionalidade. Ela é temporária e, ao ser concluída, é mesclada de volta na Develop. Não é o local de testes e ajustes finais antes do lançamento; é o ambiente de desenvolvimento de funcionalidades específicas.

Gabarito: letra D

Link permanente: /questoes/fc147280