Pular para o conteúdo principal

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

Engenharia de SoftwareDesenvolvimento de Software
Código
fc071933
Banca
FCC
Órgão
TRT - 20ª REGIÃO (SE)
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação
Uma equipe deseja adotar abordagem DevOps para automatizar o processo de integração e entrega contínua (CI/CD). Para isso, é necessário integrar diversas ferramentas para otimizar a automação dos testes e a entrega do produto. Dentre essas ferramentas, encontra-se o
  1. ASelenium, que é utilizado para automação de builds, testes de integração e execução de pipelines de CI/CD, que integra-se ao CircleCl, que faz a gestão de repositórios Git. O CircleCl é compatível apenas com as linguagens Go, Java e Ruby, apresentando incompatibilidade com Python, Ruby Scala, Node js, PHP e Haskell.
  2. BGit Esta ferramenta precisa ser integrada ao GitHub, uma vez que são interdependentes. Usadas em conjunto, conseguem realizar o controle de versão e proporcionar a integração continua.
  3. CGitHub Actions, que permite a criação de workflows de CI/CD diretamente no GitHub. Os workflows são definidos no diretório .github/workflows de um repositório, que pode ter vários workflows, cada um dos quais podendo executar um conjunto diferente de tarefas, como criar e testar pull requests.
  4. DJenkins, que é uma ferramenta escrita em PHP, exclusiva para automação de testes, que integra-se ao Git para armazenar o histórico dos testes automatizados executados.
  5. EMaven, que é uma ferramenta proprietária para automação de builds, que também possui capacidades nativas de controle de versões e pipelines de CI/CD, similar ao Gittab CI/CD. Um projeto Maven fica atrelado a um arquivo principal: o pom.java.
Revelar gabarito e comentário

GabaritoC — GitHub Actions, que permite a criação de workflows de CI/CD diretamente no GitHub. Os workflows são definidos no diretório .github/workflows de um repositório, que pode ter vários workflows, cada um dos quais podendo executar um conjunto diferente de tarefas, como criar e testar pull requests.

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

DevOps e CI/CD

Gabarito: letra C. A descrição do GitHub Actions na alternativa C é precisa: ele permite criar workflows de CI/CD no GitHub, definidos no diretório .github/workflows, com suporte a múltiplos workflows e tarefas como testar pull requests. As demais alternativas contêm erros factuais sobre as ferramentas.

Alternativa A — ❌ Incorreta

Selenium é uma ferramenta de automação de testes web, não de builds ou pipelines CI/CD. O CircleCI é uma ferramenta de CI/CD, mas não é integrado ao Selenium de forma obrigatória, e é compatível com muitas linguagens, não apenas Go, Java e Ruby. A afirmação é incorreta.

Alternativa B — ❌ Incorreta

Git e GitHub não são interdependentes; Git é um sistema de controle de versão que pode ser usado sem GitHub, e GitHub é uma plataforma que hospeda repositórios Git. Embora sejam comumente usados juntos, a descrição de interdependência é falsa. Além disso, a integração contínua não é uma funcionalidade nativa do Git, mas pode ser implementada com ferramentas como GitHub Actions.

Alternativa C — ✅ Correta ⟵ GABARITO

GitHub Actions é um serviço de CI/CD integrado ao GitHub. Os workflows são definidos em arquivos YAML no diretório .github/workflows. Um repositório pode conter vários workflows, cada um com diferentes jobs e etapas. A alternativa descreve corretamente essa funcionalidade.

Alternativa D — ❌ Incorreta

Jenkins é escrito em Java, não PHP. É uma ferramenta de automação de CI/CD, mas não é exclusiva para testes; ela integra-se a diversas ferramentas de controle de versão, incluindo Git, mas não armazena o histórico de testes automatizados de forma nativa. A integração com Git é para acesso ao código, não para armazenamento de histórico de testes.

Alternativa E — ❌ Incorreta

Maven é uma ferramenta de build open source (não proprietária) para projetos Java. Não possui capacidades nativas de controle de versão ou pipelines de CI/CD; essas funcionalidades são fornecidas por plugins ou ferramentas externas. O arquivo principal é pom.xml, não pom.java.

Link permanente: /questoes/fc071933