Pular para o conteúdo principal

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

Engenharia de SoftwareDesenvolvimento de Software
Código
fc063843
Banca
FCC
Órgão
TJ-CE
Ano
2022
Cargo
Analista Judiciário - Ciência da Computação - Sistemas da Informação
Considere duas ferramentas 1 e 2 que permitem a criação de workflows e criam, testam, publicam, fazem o release e implantam código automaticamente.— Similaridades entre as ferramentas 1 e 2 para a configuração de workflow: os arquivos são escritos em YAML e armazenados no repositório; workflows incluem um ou mais jobs; jobs incluem um ou mais passos ou comandos individuais; passos ou atividades podem ser reutilizados ou compartilhados com a comunidade.— Diferenças principais ao se fazer a migração da ferramenta 1 para a ferramenta 2: o paralelismo de teste automático da ferramenta 1 agrupa automaticamente os testes de acordo com as regras especificadas pelo usuário ou informações históricas de tempo e essa funcionalidade não está incorporada na ferramenta 2.— Ao fazer a migração de workflows: a ferramenta 1 define workflows no arquivo config. yml, que permite configurar mais de um workflow. A ferramenta 2 requer um arquivo de workflow para cada workflow e será necessário criar um novo arquivo de workflow para cada workflow configurado em config. yml.Pelas características apresentadas, as ferramentas 1 e 2 correspondem, correta e respectivamente, a
  1. ADocker e Jenkins.
  2. BCircleCl e GitHub Actions.
  3. CMaven e Kubemeis.
  4. DDocker e Selenium.
  5. ECircleCl e Jenkins.
Revelar gabarito e comentário

GabaritoB — CircleCl e GitHub Actions.

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

Ferramentas de CI/CD: CircleCI e GitHub Actions

Gabarito: letra B. A ferramenta 1 é o CircleCI e a ferramenta 2 é o GitHub Actions. A descrição do enunciado aponta exatamente as características dessas duas plataformas: no CircleCI, os workflows são definidos em um único arquivo config.yml e há suporte nativo a paralelismo de testes com divisão automática baseada em regras ou histórico; já no GitHub Actions, cada workflow exige um arquivo YAML separado no diretório .github/workflows e a divisão de testes paralelos não é embutida (requer configuração manual ou ação de terceiros).

A questão cobra o conhecimento das particularidades de duas ferramentas populares de CI/CD. Vamos analisar as alternativas:

Característica

Ferramenta 1 (CircleCI)

Ferramenta 2 (GitHub Actions)

Arquivo de configuração

Único arquivo config.yml no diretório .circleci/

Arquivos YAML separados no diretório .github/workflows/

Paralelismo automático de testes

Sim, com divisão automática baseada em regras ou histórico

Não incorporado nativamente (requer configuração manual ou ação de terceiros)

Formato dos arquivos

YAML

YAML

Armazenamento dos arquivos

No repositório

No repositório

Estrutura de workflows

Workflows definidos no config.yml

Cada workflow em arquivo YAML separado

Componentes

Workflows → Jobs → Steps/Comandos

Workflows → Jobs → Steps/Comandos

Reutilização de passos

Sim, compartilháveis com a comunidade

Sim, compartilháveis com a comunidade

Alternativa A — ❌ Incorreta

Docker é uma plataforma de contêineres, não de criação de workflows CI/CD; Jenkins usa arquivos Jenkinsfile (groovy) e não é configurado unicamente em YAML no repositório da forma descrita.

Alternativa B — ✅ Correta ⟵ GABARITO

CircleCI (ferramenta 1) usa .circleci/config.yml para definir múltiplos workflows e possui paralelismo automático de testes por histórico. GitHub Actions (ferramenta 2) requer um arquivo .yml por workflow em .github/workflows e não oferece divisão automática de testes embutida.

Alternativa C — ❌ Incorreta

Maven é uma ferramenta de build e gerenciamento de dependências Java; Kubernetes é um orquestrador de contêineres — nenhum dos dois se encaixa na descrição de criação de workflows CI/CD com configuração YAML e paralelismo de testes.

Alternativa D — ❌ Incorreta

Docker (contêineres) e Selenium (automação de testes) não são ferramentas de workflow CI/CD como descrito.

Alternativa E — ❌ Incorreta

CircleCI (correto para ferramenta 1) com Jenkins: Jenkins não usa arquivos YAML por workflow separados — seu pipeline é definido em Jenkinsfile (Groovy) ou via interface web. Além disso, Jenkins não possui o recurso nativo de paralelismo automático de testes por histórico do CircleCI.

PEGA ESSA DICA!

Ao estudar ferramentas de CI/CD, foque nas diferenças de configuração: CircleCI centraliza workflows em um único config.yml, enquanto GitHub Actions exige arquivos separados. O paralelismo de testes automático é um diferencial do CircleCI (test splitting baseado em timing) que não vem nativo no GitHub Actions.

Gabarito: letra B.

Link permanente: /questoes/fc063843