Considere as seguintes afirmativas sobre testes em programas...

Próximas questões
Com base no mesmo assunto
Q1860923 Programaçã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 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - I e III, apenas.

A questão aborda o tema de testes em programas orientados a objetos, enfocando especialmente os desafios e particularidades que surgem devido aos conceitos de herança, fluxo de controle e estado dos objetos. Para resolver essa questão, é necessário ter conhecimento das características da programação orientada a objetos, como o conceito de herança, o fluxo de controle através da passagem de mensagens e a importância do estado do objeto nos métodos da classe.

A afirmativa I está correta porque a herança pode introduzir complexidade nos testes. Quando uma superclasse é modificada, todas as subclasses que herdam comportamentos ou atributos dessa superclasse podem ser afetadas. Isso torna o teste de subclasses individualmente mais desafiador, pois é necessário verificar como as alterações na superclasse impactaram cada subclasse, aumentando a complexidade para isolar e identificar erros.

A afirmativa II está incorreta porque o fluxo de controle em programas orientados a objetos é caracterizado pela passagem de mensagens entre objetos, e esse fluxo de controle pode, de fato, mudar de um objeto para outro. Isso difere do fluxo de controle sequencial comum em funções, pois a interação entre objetos pode levar a fluxos de controle não lineares e dinâmicos, o que significa que técnicas de teste tradicionais podem não ser suficientes ou ideais para testar programas orientados a objetos.

A afirmativa III está correta porque, em programação orientada a objetos, o estado do objeto desempenha um papel crucial nos caminhos de execução dos métodos. Diferente das funções, onde os parâmetros definem o comportamento, os métodos podem alterar ou depender do estado interno do objeto, que é mantido entre chamadas de métodos. Isso implica que para testar objetos eficientemente, é necessário considerar o estado do objeto, o que pode exigir uma abordagem de teste mais complexa e detalhada.

Portanto, as afirmativas I e III explicam corretamente algumas das dificuldades e considerações ao testar programas orientados a objetos, enquanto a afirmativa II apresenta uma compreensão equivocada do fluxo de controle em tais programas. Logo, a alternativa E é a correta, pois apenas as afirmativas I e III estão corretas.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GAB E

II - Um dos erros: "fluxo de controle não muda de um objeto para outro". O fluxo pode alterar de um objeto para o outro dependendo do estado desse objeto. Por exemplo, posso ter um IF que definirá se parte de uma estrutura de controle será executada

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo