Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — INSTITUTO AOCP 2024

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
qa631578
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )
Carlos Alberto é o analista de Desenvolvimento de Sistemas responsável pela área de qualidade de software e pretende aplicar um teste de software para verificar se os módulos funcionam corretamente em conjunto, analisando também se as interfaces que fazem parte do sistema conseguem se comunicar e se ocorrem conflitos de dependência. Esse tipo de teste constitui a categoria dos
  1. ATestes Unitários.
  2. BTestes de Regressão.
  3. CTestes de Usabilidade.
  4. DTestes de Integração.
  5. ETestes de Desempenho.
Revelar gabarito e comentário

GabaritoD — Testes de Integração.

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 de Integração: verificação da comunicação entre módulos

Gabarito: letra D. O teste de integração é o nível de teste que verifica se os módulos do software funcionam corretamente em conjunto, analisando a comunicação entre as interfaces e a ocorrência de conflitos de dependência — exatamente o cenário descrito no enunciado. Essa é a definição clássica do nível de integração, que se distingue do teste unitário (que testa cada módulo isoladamente) e do teste de sistema (que testa o sistema como um todo).

O teste de software é organizado em níveis, que representam a amplitude do que está sendo testado: do menor componente até o sistema completo. O teste unitário verifica a menor unidade testável do software, como uma função ou método, de forma isolada. O teste de integração, por sua vez, verifica a interação entre esses módulos, buscando defeitos que surgem justamente na comunicação entre eles — como erros de interface, de passagem de parâmetros ou de dependência entre componentes. O teste de sistema valida o software como um todo integrado, e o teste de aceitação verifica se o sistema atende aos requisitos do cliente.

A distinção entre níveis e técnicas de teste é fundamental. Os níveis (unitário, integração, sistema e aceitação) dizem respeito ao escopo do que se testa. As técnicas (caixa preta, caixa branca e caixa cinza) dizem respeito ao que o testador enxerga: na caixa preta, o foco está nas entradas e saídas, sem acesso ao código interno; na caixa branca, o foco está na estrutura interna e na lógica do código; na caixa cinza, há uma combinação das duas. O teste de integração pode ser realizado tanto com técnicas de caixa preta quanto de caixa branca, dependendo do objetivo.

No cenário apresentado, Carlos Alberto deseja verificar se os módulos funcionam corretamente em conjunto, analisando a comunicação entre as interfaces e os conflitos de dependência. Isso é a essência do teste de integração. As estratégias de integração mais conhecidas são: Big Bang (integra todos os módulos de uma vez), Top-Down (integra de cima para baixo, usando stubs para simular módulos inferiores), Bottom-Up (integra de baixo para cima, usando drivers para simular módulos superiores) e Sandwich (combinação de Top-Down e Bottom-Up).

A pegadinha desta questão está em confundir o teste de integração com outros tipos de teste. O teste unitário testa módulos isoladamente, não em conjunto. O teste de regressão reexecuta testes já executados para garantir que alterações não introduziram novos defeitos. O teste de usabilidade avalia a facilidade de uso do sistema pelo usuário final. O teste de desempenho avalia a resposta do sistema sob condições de carga. Nenhum desses se encaixa na descrição do enunciado, que foca na comunicação entre módulos e nas interfaces.

Guarde a fronteira entre os níveis de teste: unitário testa o módulo isolado, integração testa a comunicação entre módulos, sistema testa o todo integrado e aceitação testa a conformidade com os requisitos do cliente. É exatamente nessa fronteira que as alternativas se dividem.

1Unitário
Módulo isolado
Função/método
2Integração
Comunicação entre módulos
Interfaces e dependências
3Sistema
Todo integrado
4Aceitação
Requisitos do cliente
Níveis de teste
LEVELsoulevel.com.br
Níveis de teste: Unitário (Módulo isolado, Função/método); Integração (Comunicação entre módulos, Interfaces e dependências); Sistema (Todo integrado); Aceitação (Requisitos do cliente)

Alternativa A — ❌ Incorreta

O teste unitário verifica a menor unidade testável do software (função, método, classe) de forma isolada, geralmente com o uso de mocks para simular dependências. O enunciado, porém, fala em verificar se os módulos funcionam em conjunto e se as interfaces se comunicam — isso transcende o escopo do teste unitário, que não analisa a interação entre módulos.

Alternativa B — ❌ Incorreta

O teste de regressão consiste em reexecutar um subconjunto de testes já executados para assegurar que alterações no código não tenham propagado efeitos colaterais indesejados. O enunciado não menciona alterações recentes nem reexecução de testes anteriores, mas sim a verificação da comunicação entre módulos — característica do teste de integração.

Alternativa C — ❌ Incorreta

O teste de usabilidade avalia a facilidade de uso do software pelo usuário final, focando na experiência do usuário, na interface gráfica e na eficiência de uso. O enunciado trata da comunicação entre módulos e interfaces internas do sistema, não da interação do usuário com o software.

Alternativa D — ✅ Correta ⟵ GABARITO

O teste de integração é o nível de teste que verifica se os módulos do software funcionam corretamente em conjunto, analisando a comunicação entre as interfaces e a ocorrência de conflitos de dependência. O enunciado descreve exatamente esse cenário: verificar se os módulos funcionam em conjunto, se as interfaces se comunicam e se há conflitos de dependência. As estratégias de integração incluem Big Bang, Top-Down (com stubs), Bottom-Up (com drivers) e Sandwich.

Alternativa E — ❌ Incorreta

O teste de desempenho avalia o comportamento do sistema sob condições de carga, verificando tempos de resposta, throughput e utilização de recursos. O enunciado não menciona requisitos de desempenho, mas sim a comunicação entre módulos e interfaces — característica do teste de integração.

PEGA ESSA DICA!

Para diferenciar os níveis de teste na prova, pergunte-se: o que está sendo testado? Se é um módulo isolado, é unitário. Se é a comunicação entre módulos, é integração. Se é o sistema completo, é sistema. Se é a aceitação pelo cliente, é aceitação. Essa pergunta resolve a maioria das questões sobre níveis de teste.

Gabarito: letra D

Link permanente: /questoes/qa631578