Questão de Engenharia de Software — SonarQube — CESPE / CEBRASPE 2026
Engenharia de Software›SonarQube
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
}
CCerto
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.