Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FAURGS 2018

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq337142
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Nível
Médio
Cargo
Técnico de Tecnologia da Informação - Sistema da Informação
Considere um método busca que recebe como parâmetros um elemento x do tipo inteiro e um vetor V de inteiros. O objetivo do método é verificar se o elemento x está contido no vetor V. Em caso positivo, a posição de x em V é retornada. Caso contrário, o valor -1 é retornado. Assim, por exemplo, se o método busca é executado com V = [1,7,5] e x = 2, o valor -1 é retornado. Se o método busca é chamado com V = [1,7,5] e x = 7, o valor 1 é retornado.Usando a técnica de teste funcional, a seguinte partição do domínio de entrada foi definida:Característica: localização do elemento na listaBloco 1: elemento é o primeiro da listaBloco 2: elemento é o último da listaBloco 3: elemento está em alguma posição na lista, exceto na primeira e na últimaTendo em vista que cada teste é composto por uma tupla (V, x), assinale a alternativa que apresenta, de forma correta, o conjunto de testes definidos com base na partição acima.
  1. AV = [ ] e x = 4V = [4, 33, 2] e x = 4V = [4,33,2] e x = 33V = [4, 33, 2] e x = 2
  2. BV = [3,3,1] e x = 3V = [3,3,1] e x = 1
  3. CV = [3,1] e x = 3V = [1,3] e x = 1V = [1,2,3] e x = 2
  4. DV = [ ] e x = 0V = [-2, 0, 137] e x = -2V = [-2, 0, 137] e x = 0
  5. EV = [1] e x = 2V = [1] e x = 1
Revelar gabarito e comentário

GabaritoB — V = [3,3,1] e x = 3 V = [3,3,1] e x = 1

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

Teste Funcional – Particionamento de Equivalência (busca em vetor)

Gabarito: B. A partição exige ao menos um teste para cada bloco: elemento no primeiro, no último e no meio (exceto primeiro e último). A alternativa B cobre todos os três blocos com apenas dois testes: o vetor [3,3,1] com x=3 (que aparece na primeira e na segunda posição, portanto cobre primeiro e meio simultaneamente) e com x=1 (último). Nenhuma outra alternativa atende a todos os blocos sem incluir testes extra ou faltar algum.

Alternativa A – ❌ Incorreta

Inclui um teste com vetor vazio (V = [], x = 4) que não pertence a nenhum bloco da partição, tornando o conjunto não minimal. Embora os três outros testes (x=4 (primeiro), x=33 (meio), x=2 (último) no vetor [4,33,2]) cubram os três blocos, o teste extra é desnecessário e foge da partição definida.

Alternativa B – ✅ Correta ⟵ GABARITO

Os dois testes cobrem todas as partições: V=[3,3,1] com x=3 – o elemento 3 está na primeira e na segunda posição, portanto cobre o bloco "primeiro" e "meio" (já que aparece no meio). O teste com x=1 cobre o bloco "último". Nenhum teste extra é adicionado. A duplicidade permite que um único elemento esteja em mais de um bloco, sendo válido na técnica de partição.

Alternativa C – ❌ Incorreta

Testes: V=[3,1] x=3 (primeiro), V=[1,3] x=1 (primeiro), V=[1,2,3] x=2 (meio). Faltou o bloco "último" – nenhum teste cobre o último elemento (por exemplo, x=3 em V=[1,3] ou x=1 em V=[3,1] seriam o último, mas não foram incluídos).

Alternativa D – ❌ Incorreta

Inclui um teste com vetor vazio (não pertence à partição). Testes: V=[-2,0,137] com x=-2 (primeiro) e x=0 (meio). Faltou o bloco "último" (x=137).

Alternativa E – ❌ Incorreta

Testes: V=[1] com x=2 (elemento não presente – não pertence a nenhum bloco) e V=[1] com x=1 (único elemento, que é simultaneamente primeiro e último, mas não há um teste para o bloco "meio"). A partição exige um bloco para posição intermediária, que não existe em um vetor de tamanho 1, portanto esse bloco não é coberto.

PEGA ESSA DICA!

Em particionamento de equivalência funcional, cada bloco deve ser exercitado por pelo menos um teste. Quando um elemento aparece em mais de uma posição, um único teste pode cobrir múltiplos blocos. Sempre verifique se a ausência de um bloco invalida o conjunto.

Link permanente: /questoes/qq337142