Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — FCC 2021

ProgramaçãoProgramação Orientada a Objetos
Código
fc060177
Banca
FCC
Órgão
MANAUSPREV
Ano
2021
Cargo
Analista Previdenciário - Tecnologia da Informação
Considere as seguintes afirmativas sobre testes em programas orientados a objetos:I. O conceito de herança leva a algumas dificuldades; por exemplo, se alterações forem feitas em uma classe pai ou superclasse, será difícil testar as subclasses individualmente e isolar o erro para uma classe.II. O fluxo de controle é caracterizado pela passagem de mensagens entre objetos, e o fluxo de controle não muda de um objeto para outro. Consequentemente, o fluxo de controle sequencial dentro de uma classe é similar ao das funções, sendo mais indicado o uso de técnicas de teste tradicionais.III. Em uma função, os parâmetros passados com dados globais determinam o caminho de execução em seu código. Mas, em um objeto, o estado a ele associado também influencia o caminho de execução, e os métodos de uma classe podem se comunicar entre si por meio desse estado. Consequentemente, para testar objetos, o estado de um objeto desempenha um papel importante.Está correto o que se afirma em
  1. AII e III, apenas.
  2. BII, apenas.
  3. CI, II e III.
  4. DI e II, apenas.
  5. EI e III, apenas.
Revelar gabarito e comentário

GabaritoE — I e III, apenas.

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 em Programação Orientada a Objetos

Gabarito: letra E. As afirmativas I e III estão corretas, enquanto a II está incorreta. A herança realmente traz dificuldades para isolar erros em subclasses (I). Em objetos, o estado influencia o caminho de execução, sendo crucial para os testes (III). Porém, o fluxo de controle em OO muda de um objeto para outro devido ao polimorfismo e à passagem de mensagens, contrariando o que afirma a afirmativa II.

Testes em POO
  • 1Herança (I)
    • Dependência superclasse ↔ subclasse
    • Dificulta isolar erro
  • 2Fluxo de controle (II)
    • "Não muda de objeto" → FALSO
    • Muda por polimorfismo
    • Muda por passagem de mensagens
  • 3Estado do objeto (III)
    • Influencia caminho de execução
    • Métodos comunicam-se pelo estado
    • Exige testes orientados a estado
LEVEL · soulevel.com.br

Item I — ✅ Correto

A herança gera dependência entre classes: alterações na superclasse afetam todas as subclasses, dificultando o teste individual e o isolamento de erros. Esse é um desafio conhecido em testes de software orientado a objetos.

Item II — ❌ Incorreto

A afirmativa erra ao dizer que "o fluxo de controle não muda de um objeto para outro". Na verdade, o fluxo de controle varia conforme o tipo do objeto em tempo de execução (polimorfismo), e a passagem de mensagens entre objetos altera a sequência de execução. Portanto, técnicas de teste tradicionais não são as mais indicadas.

Item III — ✅ Correto

Em objetos, o estado interno influencia o comportamento dos métodos, e métodos podem se comunicar por meio desse estado compartilhado. Assim, o estado do objeto desempenha papel fundamental na determinação do caminho de execução, exigindo testes orientados a estado.

NÃO CAIA NESSA!

A banca tenta confundir ao afirmar que o fluxo de controle "não muda de um objeto para outro", quando na verdade ele muda devido ao polimorfismo e à ligação dinâmica. Essa inversão é o erro central da alternativa II.

Conclusão: Estão corretas apenas as afirmativas I e III, correspondendo à alternativa E.

Link permanente: /questoes/fc060177