Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2024

Engenharia de SoftwareGeral
Código
qa631618
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
No contexto de DevOps, assinale a alternativa que descreve corretamente a prática de Integração Contínua (CI).
  1. AÉ uma prática que envolve a implantação automática de todas as mudanças de código para a produção.
  2. BÉ uma prática que envolve a execução de testes manuais em todo o código antes de ser mesclado com a base de código principal.
  3. CÉ uma prática que envolve a codificação em pares para garantir a qualidade do código.
  4. DÉ uma prática que envolve a revisão manual de todo o código antes de ser mesclado com a base de código principal.
  5. EÉ uma prática que envolve a mesclagem frequente de mudanças de código na base de código principal e a execução de testes automáticos.
Revelar gabarito e comentário

GabaritoE — É uma prática que envolve a mesclagem frequente de mudanças de código na base de código principal e a execução de testes automáticos.

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”.

Integração Contínua (CI) no contexto DevOps

Gabarito: letra E. A Integração Contínua (CI) é a prática de desenvolvimento em que os membros da equipe integram seu trabalho com frequência — idealmente várias vezes ao dia — em um repositório central compartilhado, e cada integração é verificada por uma compilação automatizada e pela execução de testes automáticos, com o objetivo de detectar erros de integração o mais cedo possível. Essa é a definição consagrada na literatura de Engenharia de Software e amplamente adotada em provas de concursos.

A Integração Contínua (CI) é um dos pilares do movimento DevOps, que busca aproximar as equipes de desenvolvimento (Dev) e operações (Ops) para entregar software com mais qualidade e velocidade. O termo "contínua" aqui não significa que o código vai automaticamente para produção, mas sim que a integração do código é feita de forma constante e automatizada. O objetivo central é evitar o "inferno da integração", situação em que desenvolvedores trabalham isoladamente por longos períodos e, ao tentar unir seus códigos, encontram conflitos e erros difíceis de resolver. Ao integrar com frequência e rodar testes a cada integração, os problemas são identificados e corrigidos rapidamente, reduzindo drasticamente o custo e o esforço de correção.

Na prática, a CI funciona da seguinte forma: cada desenvolvedor, ao concluir uma alteração, envia (faz commit e push) seu código para o repositório central. Um servidor de CI (como Jenkins, GitLab CI, GitHub Actions) detecta essa mudança e dispara automaticamente um pipeline que compila o projeto e executa a suíte de testes automatizados. Se tudo passar, a integração é considerada bem-sucedida. Se algum teste falhar, a equipe é notificada imediatamente e o problema deve ser corrigido o quanto antes. Essa prática incentiva mudanças pequenas e frequentes, em vez de grandes e esporádicas, o que facilita o debugging e mantém a base de código sempre em um estado saudável.

É fundamental distinguir a CI de outras práticas do DevOps, especialmente da Entrega Contínua (CD) e da Implantação Contínua (CD). Enquanto a CI se concentra na integração e nos testes automatizados, a Entrega Contínua garante que o software esteja sempre em um estado pronto para ser implantado em produção, mas a implantação em si é uma decisão manual. Já a Implantação Contínua automatiza completamente o processo, levando o código validado diretamente para produção sem intervenção humana. A banca explora exatamente essa confusão: alternativas que descrevem a CI como se fosse a implantação automática em produção, ou que mencionam testes manuais, são distratores clássicos.

A pegadinha central desta questão é a troca de conceitos entre CI e CD (implantação contínua), além da insistência em processos manuais, que são justamente o oposto do que o DevOps prega. O candidato que não domina a diferença entre "integrar e testar automaticamente" e "implantar automaticamente em produção" tende a cair nas alternativas A, B, C ou D. A alternativa E é a única que captura com precisão os dois elementos essenciais da CI: a mesclagem frequente na base principal e a execução de testes automáticos.

  1. 1Commit e push frequentes
  2. 2Servidor de CI detecta mudança
  3. 3Compilação automática
  4. 4Testes automatizados
  5. 5Feedback imediato à equipe
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Esta alternativa descreve a Implantação Contínua (CD), não a Integração Contínua. A implantação automática de todas as mudanças para produção é o estágio final do pipeline de CD, que vai além da CI. A CI para na validação automatizada do código integrado; a decisão de levar para produção pode ser manual (Entrega Contínua) ou automática (Implantação Contínua), mas isso não faz parte da definição de CI.

Alternativa B — ❌ Incorreta

A CI é baseada em testes automatizados, não manuais. A execução de testes manuais em todo o código antes da mesclagem é uma prática lenta, propensa a erros e que não se alinha com o princípio de feedback rápido do DevOps. A automação é um pilar fundamental da CI, permitindo que cada integração seja validada de forma rápida e consistente.

Alternativa C — ❌ Incorreta

A codificação em pares (pair programming) é uma prática da metodologia ágil Extreme Programming (XP), não da Integração Contínua. Embora ambas possam coexistir em um ambiente DevOps, são conceitos distintos. A CI se refere à integração frequente e automatizada do código, enquanto a programação em pares é uma técnica de desenvolvimento colaborativo.

Alternativa D — ❌ Incorreta

Assim como a alternativa B, esta descreve um processo manual de revisão de código, o que contraria o princípio de automação da CI. A revisão manual de código pode ser uma prática complementar de qualidade, mas não é o que define a Integração Contínua. A CI se caracteriza pela automação da compilação e dos testes a cada integração.

Alternativa E — ✅ Correta ⟵ GABARITO

Esta alternativa descreve com precisão a Integração Contínua: a mesclagem frequente de mudanças de código na base principal e a execução de testes automáticos. Esses são os dois pilares da CI — integrar com frequência para evitar conflitos e validar cada integração com testes automatizados para detectar erros rapidamente. É exatamente essa a definição consagrada na literatura e cobrada em concursos.

NÃO CAIA NESSA!

A banca explora a confusão entre CI e CD (implantação contínua). A alternativa A descreve a implantação automática em produção, que é o objetivo da CD, não da CI. Além disso, as alternativas B e D mencionam processos manuais, que são o oposto do que o DevOps prega. Lembre-se: CI = integrar e testar automaticamente; CD = implantar automaticamente (ou deixar pronto para implantar).

PEGA ESSA DICA!

Para diferenciar CI de CD na prova, foque no verbo principal: se a alternativa fala em "integrar código" e "rodar testes", é CI; se fala em "implantar em produção", é CD. E desconfie de qualquer alternativa que mencione "testes manuais" ou "revisão manual" como prática central do DevOps — a automação é a palavra-chave.

Gabarito: letra E

Link permanente: /questoes/qa631618