Teste de Software – Níveis de Teste
Gabarito: letra E. O código apresentado testa isoladamente a função celsius_to_fahrenheit, verificando sua saída para entradas conhecidas (0 e 25). Esse tipo de teste, que verifica o comportamento de uma unidade individual do código (uma função/método), é denominado teste unitário. O uso do módulo unittest do Python reforça essa classificação, pois ele é a ferramenta padrão para criação de testes unitários na linguagem.
A banca testa o conhecimento sobre os níveis de teste de software. O programador escreveu primeiro o código de produção e depois o teste — isso descarta TDD, que exige que o teste seja escrito antes do código. As demais opções (BDD, usabilidade, integração) não se aplicam ao cenário descrito.
Alternativa A — ❌ Incorreta
O BDD (Behavior-Driven Development) é uma técnica que deriva do TDD e utiliza linguagem natural para descrever comportamentos esperados (cenários com Given/When/Then). O código de teste apresentado não segue essa estrutura; é um teste unitário convencional.
Alternativa B — ❌ Incorreta
O TDD (Test-Driven Development) impõe que os testes sejam escritos antes da implementação do código de produção. No enunciado, o programador desenvolveu o código-fonte primeiro e depois o teste — portanto, não se trata de TDD. Além disso, o teste em si é unitário, não a abordagem de desenvolvimento.
Alternativa C — ❌ Incorreta
Teste de usabilidade é um tipo de teste não funcional que avalia a interface e a experiência do usuário. Não há qualquer elemento de interface ou interação com usuário no código fornecido.
Alternativa D — ❌ Incorreta
Teste de integração verifica a interação entre duas ou mais unidades/componentes do sistema. O código testa apenas uma única função isolada, sem dependências externas — portanto, não é teste de integração.
Alternativa E — ✅ Correta ⟵ GABARITO
O teste criado utiliza unittest.TestCase para verificar o resultado da função celsius_to_fahrenheit para entradas específicas. Esse é o padrão clássico de teste unitário: testar uma unidade mínima do software (função, método) de forma isolada, garantindo que seu comportamento está correto. A técnica de caixa‑branca ou caixa‑preta pode ser aplicada, mas o nível é unitário.
Gabarito: letra E.