Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — FUNDATEC 2023

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
qa541356
Banca
FUNDATEC
Órgão
IFC
Ano
2023
Cargo
PEBTT ( )

Em relação a testes unitários, são suas principais características:

 

I. Rapidez na execução dos testes.

 

II. Curto tempo no seu desenvolvimento.

 

III. Alta complexidade.

 

IV. Testa a menor unidade do sistema.

 

V. Baixo acoplamento entre classes.

 

Quais estão corretas?

  1. AApenas I e II.
  2. BApenas I e III.
  3. CApenas I, II e IV.
  4. DApenas III, IV e V.
  5. EApenas I, II, III e V.
Revelar gabarito e comentário

GabaritoC — Apenas I, II e IV.

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

Testes unitários: características essenciais

Gabarito: letra C — estão corretos os itens I, II e IV. O teste unitário é rápido de executar, relativamente simples de desenvolver e testa a menor unidade do sistema (função, método ou classe); ele não é caracterizado por alta complexidade nem por baixo acoplamento entre classes — essas são características de outros níveis ou de boas práticas de projeto, não do teste unitário em si.

O teste unitário é um dos níveis de teste de software, ao lado do teste de integração, de sistema e de aceitação. Ele foca na menor unidade testável do código — normalmente uma função, um método ou uma classe — de forma isolada, sem depender de outros componentes. Por isso, é rápido de executar: como o escopo é pequeno e as dependências são substituídas por mocks ou stubs, o teste roda em milissegundos. O desenvolvimento também é curto, pois o caso de teste é simples e direto, validando apenas o comportamento daquela unidade.

A alta complexidade (item III) não é característica do teste unitário — na verdade, é o oposto: testes unitários são simples por natureza. Já o baixo acoplamento entre classes (item V) é uma característica de um bom projeto de software, não do teste unitário em si. Embora testes unitários sejam mais fáceis de escrever quando as classes são pouco acopladas, o baixo acoplamento é uma propriedade do código, não do teste. A banca mistura conceitos de projeto com conceitos de teste para confundir o candidato.

A distinção que importa aqui é entre níveis de teste (unitário, integração, sistema, aceitação) e técnicas de teste (caixa preta, caixa branca, caixa cinza). O teste unitário é um nível, que pode ser executado com técnica de caixa branca (quando se olha o código) ou caixa preta (quando se testa apenas entradas e saídas). O que define o teste unitário é o tamanho do que se testa (a menor unidade), não a técnica usada.

A pegadinha da banca está em apresentar itens que parecem plausíveis, mas não são características do teste unitário. O candidato que não domina o conceito pode marcar o item III (alta complexidade) por associar teste a algo difícil, ou o item V (baixo acoplamento) por confundir com boas práticas de projeto. A chave é lembrar: teste unitário = rápido, simples e focado na menor unidade.

Teste unitário
  • 1Características
    • Rápido de executar
    • Curto desenvolvimento
    • Testa a menor unidade
  • 2Não características
    • Alta complexidade
    • Baixo acoplamento entre classes
LEVEL · soulevel.com.br

Item I — ✅ Correto

A rapidez na execução é uma característica marcante do teste unitário. Como cada teste valida apenas uma unidade isolada, sem interação com banco de dados, rede ou outros componentes, a execução é quase instantânea. Isso permite rodar milhares de testes em segundos, o que é essencial para práticas como integração contínua e TDD.

Item II — ✅ Correto

O desenvolvimento de um teste unitário é rápido porque o escopo é pequeno: basta criar uma instância da unidade, definir as entradas e verificar as saídas esperadas. Não há necessidade de preparar ambientes complexos ou cenários extensos, como ocorre em testes de sistema ou de aceitação.

Item III — ❌ Incorreto

A alta complexidade é justamente o oposto da característica do teste unitário. Testes unitários são simples por definição — testam uma única unidade de forma isolada. A complexidade alta é típica de testes de integração ou de sistema, que envolvem múltiplos componentes e interações. A banca tenta fazer o candidato associar "teste" a "complexidade", mas o teste unitário é o nível mais simples.

Item IV — ✅ Correto

Testar a menor unidade do sistema é a definição central do teste unitário. A unidade pode ser uma função, um método, uma classe ou um módulo, dependendo da granularidade adotada. É o primeiro nível de teste a ser executado, antes da integração, e serve para validar o comportamento correto de cada parte isoladamente.

Item V — ❌ Incorreto

O baixo acoplamento entre classes é uma característica de um bom projeto de software, não do teste unitário. Embora um código pouco acoplado facilite a escrita de testes unitários (pois as dependências são mais fáceis de substituir), o baixo acoplamento é uma propriedade do código-fonte, não do teste. A banca mistura conceitos de projeto com conceitos de teste para induzir ao erro.

NÃO CAIA NESSA!

A banca mistura características de projeto de software com características de teste. O item V (baixo acoplamento) é uma boa prática de código, não uma característica do teste unitário. E o item III (alta complexidade) inverte o sentido: teste unitário é simples, não complexo. Fique atento: o teste unitário é rápido, simples e focado na menor unidade — nada além disso.

PEGA ESSA DICA!

Para diferenciar níveis de teste, lembre-se da escala: unitário (menor unidade) → integração (interação entre módulos) → sistema (sistema completo) → aceitação (validação com o cliente). Cada nível testa um escopo maior e, por isso, é mais lento e mais complexo. O teste unitário é o mais rápido e o mais simples de todos.

Gabarito: letra C — corretos os itens I, II e IV.

Link permanente: /questoes/qa541356