Questão de Programação — Programação Orientada a Objetos — FCC 2021
Programação›Programaçã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
AII e III, apenas.
BII, apenas.
CI, II e III.
DI e II, apenas.
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.