Pular para o conteúdo principal

Questão de Engenharia de Software — SonarQube — CESPE / CEBRASPE 2026

Engenharia de SoftwareSonarQube
Código
ce391136
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2026
Cargo
AUFC ( )

Considerando a linguagem de programação Java e a cobertura SonarQube, julgue o item a seguir.

 

No trecho de código a seguir, a implementação individualizada do QualityGate permite que o resultado do estágio Quality Gate 1 não interrompa o pipeline, caso o resultado da análise do SonarQube seja FAILED, e que ele prossiga normalmente para a execução do estágio SonarQube analysis 2.

 
01

pipeline {

02

    agent any

03

    stages {

04

        stage('SonarQube analysis 1') {

05

            steps {

06

                sh 'mvn clean verify
org.sonarsource.scanner.maven:sonar-

maven-plugin:sonar'

07            }
08        }
09

        stage("Quality Gate 1") {

10

            steps {

11

                waitForQualityGate
abortPipeline: true

12             }
13        }
14

        stage('SonarQube analysis 2') {

15

            steps {

16

                sh 'gradle sonar'

17             }
18        }
19

        stage("Quality Gate 2") {

20

            steps {

21

                waitForQualityGate
abortPipeline: true

22             }
23        }
24    }
25}
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

SonarQube e Jenkins: waitForQualityGate e abortPipeline

Gabarito: Errado (E). A afirmativa está incorreta porque o trecho de código apresentado utiliza waitForQualityGate abortPipeline: true no estágio "Quality Gate 1", o que faz com que o pipeline seja interrompido caso o resultado da análise do SonarQube seja FAILED — exatamente o oposto do que o enunciado afirma. Para que o pipeline não seja interrompido, seria necessário configurar abortPipeline: false (ou omitir o parâmetro, já que o padrão é false).

O waitForQualityGate é um passo do Jenkins que aguarda a conclusão da análise do SonarQube e verifica se o Quality Gate foi aprovado. O parâmetro abortPipeline controla o comportamento do pipeline quando o Quality Gate falha: se true, o pipeline é abortado; se false, o pipeline continua, mesmo com o Quality Gate FAILED. No código fornecido, ambos os estágios "Quality Gate 1" e "Quality Gate 2" usam abortPipeline: true, o que significa que qualquer falha no Quality Gate interromperá o pipeline imediatamente.

A questão explora exatamente essa confusão: o candidato pode ler o enunciado e pensar que a configuração permite a continuação do pipeline, mas a presença de abortPipeline: true indica o contrário. A implementação individualizada do Quality Gate (com dois estágios separados) não altera o comportamento do parâmetro — cada estágio com abortPipeline: true interrompe o pipeline se o Quality Gate falhar.

Na prática, se o objetivo fosse permitir que o pipeline continuasse mesmo com o Quality Gate 1 FAILED, o código deveria usar waitForQualityGate abortPipeline: false ou simplesmente waitForQualityGate (já que o valor padrão de abortPipeline é false). Com abortPipeline: true, o pipeline é abortado imediatamente após a falha, e o estágio "SonarQube analysis 2" não seria executado.

NÃO CAIA NESSA!

A banca inverte o efeito do parâmetro abortPipeline. O candidato pode ler o enunciado e assumir que a configuração permite a continuação, mas abortPipeline: true significa exatamente o oposto: interromper o pipeline em caso de FAILED. Preste atenção ao valor do parâmetro — é ele que decide o comportamento.

waitForQualityGate
  • 1abortPipeline: true
    • Pipeline interrompido em FAILED
    • Estágio seguinte não executa
  • 2abortPipeline: false (padrão)
    • Pipeline continua em FAILED
    • Estágio seguinte executa
LEVEL · soulevel.com.br

Item — ❌ Errado

O item afirma que "a implementação individualizada do QualityGate permite que o resultado do estágio Quality Gate 1 não interrompa o pipeline, caso o resultado da análise do SonarQube seja FAILED, e que ele prossiga normalmente para a execução do estágio SonarQube analysis 2". Isso está errado porque o código usa waitForQualityGate abortPipeline: true, que interrompe o pipeline quando o Quality Gate falha. O parâmetro abortPipeline: true é explícito e determina o aborto. Para que o pipeline continuasse, seria necessário abortPipeline: false (ou omitir o parâmetro, já que o padrão é false). A implementação individualizada (com dois estágios de Quality Gate) não muda esse comportamento — cada estágio com abortPipeline: true interrompe o pipeline em caso de falha.

Gabarito: Errado (E).

Link permanente: /questoes/ce391136