Questão de Engenharia de Software — Git — CESPE / CEBRASPE 2025
Engenharia de Software›Git
Código
ce417735
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
Julgue o item a seguir, a respeito de GIT e testes de software.
A integração do TDD ao fluxo de trabalho do GIT, por meio da implementação de hooks de pré-commit e pré-push, em associação com práticas de integração contínua, propicia uma abordagem proativa para a manutenção da integridade do código em ambientes de desenvolvimento distribuído com múltiplos branches.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
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”.
TDD, Git Hooks e Integração Contínua
Gabarito: Certo (C). A integração do TDD ao fluxo de trabalho do Git, por meio de hooks de pré-commit e pré-push, em associação com práticas de integração contínua, de fato propicia uma abordagem proativa para a manutenção da integridade do código em ambientes de desenvolvimento distribuído com múltiplos branches. A afirmativa está correta porque descreve com precisão como essas práticas se complementam para detectar e prevenir problemas de forma antecipada.
O TDD (Test-Driven Development) é uma metodologia de desenvolvimento em que os testes são escritos antes do código de produção. O ciclo é simples: escreve-se um teste que falha, implementa-se o código mínimo para fazê-lo passar e, em seguida, refatora-se o código. Essa prática garante que cada funcionalidade seja coberta por testes desde o início, criando uma rede de segurança que permite alterações com confiança.
Os hooks do Git são scripts que o Git executa automaticamente em determinados pontos do fluxo de trabalho. O hook de pré-commit é executado antes de um commit ser criado, permitindo que o desenvolvedor rode testes, verifique formatação ou faça qualquer outra validação antes de registrar a alteração. O hook de pré-push, por sua vez, é executado antes que os commits sejam enviados para um repositório remoto, servindo como uma última barreira antes de compartilhar o código com a equipe.
A integração contínua (CI) é uma prática de desenvolvimento em que os desenvolvedores integram seu código em um repositório compartilhado com frequência, e cada integração é verificada por uma compilação automatizada e testes. O objetivo é detectar problemas de integração o mais cedo possível. Quando o TDD é combinado com hooks de pré-commit e pré-push, os testes são executados localmente antes de cada commit e push, o que significa que muitos problemas são detectados antes mesmo de chegarem ao servidor de CI.
Em um ambiente com múltiplos branches, essa abordagem é particularmente valiosa. Cada branch pode ter seu próprio conjunto de alterações, e a integração entre eles pode gerar conflitos ou quebras de funcionalidade. Ao executar os testes localmente antes de cada commit e push, os desenvolvedores garantem que suas alterações não quebram o código existente, reduzindo a probabilidade de conflitos e problemas de integração. A CI, por sua vez, valida a integração de todos os branches em um ambiente centralizado, fornecendo uma camada adicional de segurança.
A abordagem é proativa porque antecipa a detecção de problemas, em vez de reagir a eles após a integração. Em vez de descobrir que uma alteração quebrou o código após o merge, o desenvolvedor descobre isso antes mesmo de fazer o commit. Isso economiza tempo, reduz o retrabalho e mantém a integridade do código em um nível mais alto.
A banca explora a compreensão de como essas práticas se relacionam. A afirmativa não é uma mera definição de cada conceito, mas uma análise de como eles se integram para alcançar um objetivo comum. O candidato que entende o papel de cada prática e como elas se complementam reconhece a correção da afirmativa.
1TDD: escreve teste antes do código
2Hook pré-commit: roda testes locais
3Hook pré-push: última barreira local
4CI: valida integração centralizada
LEVEL · soulevel.com.br
Alternativa C — ✅ Certo ⟵ GABARITO
A afirmativa está correta. O TDD, ao escrever testes antes do código, garante que cada funcionalidade seja testada desde o início. Os hooks de pré-commit e pré-push do Git executam esses testes automaticamente antes de cada commit e push, respectivamente, impedindo que código quebrado seja registrado ou compartilhado. A integração contínua, por sua vez, valida a integração de todos os branches em um ambiente centralizado, executando os testes novamente e detectando problemas de integração. Essa combinação cria uma abordagem proativa, pois os problemas são detectados e corrigidos o mais cedo possível, antes que se propaguem para outros desenvolvedores ou para o ambiente de produção. Em um ambiente distribuído com múltiplos branches, essa abordagem é essencial para manter a integridade do código, pois cada branch pode ser validado individualmente antes da integração, e a CI garante que a integração em si não introduza problemas.