Questão de Engenharia de Software — Teste de Software — Avança SP 2023
Engenharia de Software›Teste de Software
Código
qq839099
Banca
Avança SP
Órgão
SAAE de Amparo - SP
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas da Informação
Quanto a Testes de Software, analise as afirmativas abaixo:I. O ideal é realizar testes de integração após a realização dos testes unitários, garantindo que as unidades estão corretas individualmente e também que funcionam em conjunto.II. Os testes de ponta a ponta simulam a atividade que o usuário final teria, mas feita em um ambiente preparado para ser muito semelhante ao do ambiente de produção.III. Os testes de integração têm como objetivo verificar as menores unidades isoladamente, garantindo que a lógica de cada uma delas está correta e que funcionem conforme o esperado.IV. Os testes unitários são feitos em um nível muito baixo (próximo ao código fonte) do projeto, por isso, geralmente quem os realiza são os programadores envolvidos no projeto.Selecione a alternativa correta:
AAs afirmativas I e III estão corretas.
BAs afirmativas III e IV estão corretas.
CAs afirmativas I, II e III estão corretas.
DAs afirmativas I, II e IV estão corretas.
EAs afirmativas I, III e IV estão corretas.
Revelar gabarito e comentário▾
GabaritoD — As afirmativas I, II e IV estão corretas.
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”.
Níveis de Teste de Software: Unitário, Integração e Ponta a Ponta
Gabarito: letra D. Estão corretas as afirmativas I, II e IV: os testes de integração vêm após os unitários (I), os testes de ponta a ponta simulam o ambiente de produção (II) e os testes unitários operam no nível mais baixo, próximo ao código-fonte, sendo realizados pelos programadores (IV). A afirmativa III está incorreta porque inverte o conceito: quem verifica as menores unidades isoladamente é o teste unitário, não o de integração.
Os testes de software são organizados em níveis, cada um com um escopo e um objetivo específico. A sequência clássica começa no nível mais granular — o teste unitário, que valida uma unidade isolada do código (uma função, um método, uma classe) — e progride para o teste de integração, que combina essas unidades já testadas para verificar se elas funcionam em conjunto, especialmente nas interfaces entre elas. Depois vêm o teste de sistema, que avalia o sistema completo como um todo, e o teste de aceitação, que verifica se o sistema atende aos requisitos do usuário final.
A lógica dessa ordem é incremental: primeiro garante-se que cada peça funciona sozinha, depois que as peças se encaixam, depois que o conjunto completo opera corretamente e, por fim, que o produto entrega o valor esperado ao cliente. É por isso que a afirmativa I está correta — o ideal é realizar os testes de integração após os unitários, pois integrar unidades defeituosas dificulta a identificação da origem dos problemas.
Os testes de ponta a ponta (end-to-end) simulam o fluxo completo de uma atividade do usuário final, percorrendo todas as camadas do sistema (interface, serviços, banco de dados), em um ambiente preparado para ser o mais semelhante possível ao de produção. Eles validam o comportamento do sistema como o usuário o experimentaria, mas em um ambiente controlado, sem os riscos de um ambiente real. A afirmativa II captura exatamente essa essência.
A afirmativa III é a pegadinha da questão: ela atribui ao teste de integração a função de verificar as menores unidades isoladamente, quando isso é justamente o papel do teste unitário. A banca inverteu os conceitos. Já a afirmativa IV está correta ao afirmar que os testes unitários são feitos em um nível muito baixo, próximo ao código-fonte, e que geralmente são realizados pelos próprios programadores, pois exigem conhecimento profundo da implementação.
Guarde a fronteira entre o que cada nível testa: unitário = unidade isolada; integração = interação entre unidades; sistema = sistema completo; aceitação = requisitos do usuário. É exatamente nessa fronteira que as alternativas se dividem.
Nível de Teste
Escopo
Objetivo
Quem realiza
Unitário
Menor unidade isolada (função, método, classe)
Verificar a lógica de cada unidade individualmente
Programadores (próximo ao código-fonte)
Integração
Interação entre unidades já testadas
Verificar se as unidades funcionam em conjunto (interfaces)
Equipe de teste/desenvolvimento
Ponta a ponta (end-to-end)
Fluxo completo do sistema (todas as camadas)
Simular a atividade do usuário final em ambiente semelhante ao de produção
Equipe de teste
1Unitário (unidade isolada)
2Integração (interação entre unidades)
3Sistema (sistema completo)
4Aceitação (requisitos do usuário)
LEVEL · soulevel.com.br
Item I — ✅ Correto
A afirmativa está correta. A ordem natural dos testes é do nível mais baixo para o mais alto: primeiro os testes unitários, para garantir que cada unidade está correta individualmente, e depois os testes de integração, para verificar que as unidades funcionam em conjunto. Essa sequência é amplamente aceita na engenharia de software, pois isola falhas de implementação (unidade) de falhas de interface (integração).
Item II — ✅ Correto
A afirmativa está correta. Os testes de ponta a ponta (end-to-end) simulam a atividade que o usuário final teria, mas em um ambiente preparado para ser muito semelhante ao de produção. Eles percorrem todo o fluxo do sistema, validando a experiência completa do usuário, desde a interface até as camadas de serviço e dados.
Item III — ❌ Incorreto
A afirmativa está incorreta. Ela inverte o conceito: verificar as menores unidades isoladamente, garantindo que a lógica de cada uma está correta, é a definição de teste unitário, não de teste de integração. O teste de integração tem como objetivo verificar a interação entre unidades já testadas, descobrindo erros associados às interfaces. A banca trocou os papéis dos dois níveis.
Item IV — ✅ Correto
A afirmativa está correta. Os testes unitários são feitos em um nível muito baixo, próximo ao código-fonte, testando funções, métodos ou classes individualmente. Por essa proximidade com a implementação, geralmente são os próprios programadores que os realizam, pois precisam entender profundamente o código para criar os casos de teste.
Conclusão: Corretos: I, II e IV → portanto a alternativa é a letra D.
NÃO CAIA NESSA!
A banca inverteu os conceitos de teste unitário e teste de integração na afirmativa III. O candidato que não domina a diferença entre "unidade isolada" e "interação entre unidades" cai na armadilha. Lembre-se: unitário testa a peça sozinha; integração testa o encaixe das peças. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para questões de níveis de teste, monte mentalmente a escada: unitário (menor unidade) → integração (interação) → sistema (todo) → aceitação (requisitos do usuário). Quando a afirmativa falar de "unidades isoladas", "código-fonte" ou "programadores", é unitário; quando falar de "interfaces" ou "funcionamento em conjunto", é integração.