Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — CESPE / CEBRASPE 2025

Engenharia de SoftwareGeral
Código
ce417834
Banca
CESPE / CEBRASPE
Órgão
EMBRAPA
Ano
2025
Cargo
Ana ( )

Acerca de engenharia de software, julgue o item a seguir.

 

Testes unitários em DevOps eliminam revisões de software e testes de aceitação, garantindo-se um código sempre livre de erros e com integração e deployment contínuos.

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

Testes unitários e DevOps: complementaridade, não substituição

Gabarito: Errado (E). Testes unitários em DevOps não eliminam revisões de software nem testes de aceitação, e não garantem código livre de erros — eles são uma camada complementar de verificação automatizada, que reduz riscos, mas não substitui as demais atividades de garantia de qualidade. A afirmação contraria os princípios de engenharia de software e as práticas de DevOps, que integram testes contínuos em todo o ciclo de vida, sem eliminar etapas.

Os testes unitários verificam a menor unidade de código (funções, métodos, classes) de forma isolada, automatizada e rápida. Em DevOps, eles são executados continuamente na integração contínua (CI), permitindo detectar regressões cedo. Contudo, eles não cobrem a integração entre módulos, o comportamento do sistema como um todo, nem a conformidade com os requisitos do cliente — papéis dos testes de integração, de sistema e de aceitação. Além disso, revisões de software (code review) são práticas de qualidade que identificam problemas de design, legibilidade e conformidade com padrões, que testes automatizados não capturam. A ideia de "código sempre livre de erros" é utópica: testes provam a presença de defeitos, não sua ausência (princípio de Dijkstra). Portanto, a assertiva é falsa por três motivos: (1) eliminação indevida de atividades, (2) garantia absoluta inexistente, (3) visão reducionista do papel dos testes.

Na prática, um pipeline DevOps típico inclui: commit → testes unitários → análise estática → testes de integração → testes de aceitação → deploy. Cada etapa agrega valor e nenhuma é dispensável. A banca explora a confusão entre "automação" e "eliminação": automatizar não significa suprimir, mas sim executar de forma mais eficiente e frequente.

NÃO CAIA NESSA!

A banca troca "automação" por "eliminação". Testes unitários automatizados reduzem o trabalho manual, mas não substituem revisões nem testes de aceitação. Além disso, a expressão "sempre livre de erros" é um exagero que invalida a assertiva — nenhuma técnica de teste garante ausência total de defeitos.

PEGA ESSA DICA!

Em questões sobre DevOps e testes, desconfie de palavras absolutas como "eliminam", "sempre", "nunca". Testes são complementares e iterativos; a garantia de qualidade é um processo contínuo, não um evento único. Memorize os níveis de teste (unitário, integração, sistema, aceitação) e suas finalidades — a banca adora cobrar essa hierarquia.

  1. 1Commit
  2. 2Testes unitários
  3. 3Análise estática
  4. 4Testes de integração
  5. 5Testes de aceitação
  6. 6Deploy
LEVEL · soulevel.com.br

Item — ❌ Errado

A afirmação está errada porque:

  • "eliminam revisões de software e testes de aceitação": falso. Revisões de código (code review) são práticas de garantia de qualidade que detectam problemas que testes automatizados não veem (design, legibilidade, conformidade). Testes de aceitação validam se o software atende aos requisitos do cliente — algo que testes unitários, por definição, não fazem.

  • "garantindo-se um código sempre livre de erros": falso. Testes unitários aumentam a confiança, mas não provam ausência de defeitos. O princípio de que "testes podem mostrar a presença de bugs, nunca sua ausência" é fundamental.

  • "com integração e deployment contínuos": a integração contínua (CI) e o deployment contínuo (CD) são práticas de DevOps que dependem de testes automatizados, mas não os substituem. Pelo contrário, a CI executa testes unitários e de integração a cada commit; o CD automatiza a entrega, mas ainda requer validações.

Portanto, a assertiva é incorreta por atribuir aos testes unitários um poder que eles não têm e por negar a necessidade de outras atividades essenciais.

Gabarito: Errado (E).

Link permanente: /questoes/ce417834