Questão nº 51
Questão de Engenharia de Software · FCC TST 2017 (nº 51)
Durante a fase de teste de um software desenvolvido para um sistema em tempo real que usa memória compartilhada, um Analista de Sistemas verificou que, apesar de seus componentes já terem sido testados de modo individual e terem tido todos os erros corrigidos, ele não funcionava como deveria, de acordo com sua especificação. O Analista realizou, então, um teste de interface que conseguiu detectar o erro. O motivo era que o produtor e o consumidor de dados estavam operando em velocidades diferentes e o consumidor estava acessando informação desatualizada, pois o produtor da informação não atualizava as informações da interface compartilhada.
Na Engenharia de Software, o tipo de teste de interface e o erro detectado são denominados, correta e respectivamente, interface de
- Apassagem de mensagem e erro de timing. (alternativa correta)
- Bpassagem de mensagem e erro de mau uso de interface.
- Ccomponente e erro de procedimento.
- Dmemória compartilhada e erro de procedimento.
- Ede timing e erro de parâmetro.
Resposta comentada
Gabarito Alternativa A
Um teste de interface verifica se diferentes partes de um software (componentes) conseguem se comunicar e trocar informações corretamente, mesmo que cada parte individualmente funcione bem. Um erro de timing (ou temporização) acontece quando a ordem ou a velocidade com que essas partes interagem causa problemas, como uma parte lendo dados antes que a outra tenha terminado de escrevê-los, resultando em informações desatualizadas.
- (A) Correta: O tipo de interface pode ser classificado como passagem de mensagem porque, embora use memória compartilhada, a interação é de um produtor que "envia" dados e um consumidor que os "recebe", caracterizando uma troca de informações. O erro é claramente de timing (temporização), pois o problema surgiu da diferença de velocidade entre produtor e consumidor, levando ao acesso de dados desatualizados.
- (B) Incorreta: Embora possa haver um "mau uso" no sentido de falta de sincronização, "erro de timing" é uma descrição muito mais específica e precisa para o problema de velocidades diferentes e dados desatualizados.
- (C) Incorreta: "Componente" refere-se ao teste de unidades individuais, e o problema aqui é na interação entre eles. "Erro de procedimento" é genérico e não descreve a natureza temporal do problema.
- (D) Incorreta: Esta é a alternativa mais tentadora. Embora o sistema use "memória compartilhada", essa é a tecnologia ou mecanismo de IPC (Comunicação Inter-Processos), não a classificação padrão para o tipo de interface em testes, que foca mais no paradigma de interação (como passagem de mensagem ou chamada remota). "Erro de procedimento" é menos específico que "erro de timing". A armadilha é confundir o mecanismo de implementação com o tipo de interface testada e a generalidade do erro.
- (E) Incorreta: "De timing" descreve o erro, não o tipo de interface. "Erro de parâmetro" seria passar valores incorretos em uma chamada, o que não é o caso descrito.
Fonte: FCC TST 2017 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.