Os testes de software são essenciais para garantir a qualidade dos códigos gerados. Inicialmente o programador desenvolveu o seguinte código de produção a ser testado: CODIGO-01.py def celsius_to_fahrenheit(celsius): return (celsius * 9 Posteriormente, o programador desenvolveu o código de teste empregando a linguagem Python import unittest class TestTemperatureConversion(unittest.TestCase): def test_celsius_to_fahrenheit(self): self.assertEqual(celsius_to_fahrenheit(0), 32) self.assertEqual(celsius_to_fahrenheit(25), 77) if __name__ == '__main__': unittest.main() A abordagem do teste utilizado pelo programador se refere a um
- A)BDD (Behavior-Driven Development).
BDD não é o caso, porque não há descrição de comportamento em linguagem de negócio nem cenário dado em termos de valor/resultado do sistema.
- B)TDD (Testdriven development).
TDD não se aplica aqui, pois o enunciado mostra um teste depois do código de produção, e não o ciclo em que o teste orienta a implementação.
- C)Teste de usabilidade.
Teste de usabilidade avalia a experiência do usuário com a interface, e não a correção de uma função matemática de conversão.
- D)Teste de integração.
Teste de integração verifica a interação entre módulos ou componentes, enquanto aqui a função é testada isoladamente.
- E)Teste Unitário.
Correta, porque o código usa unittest para validar uma função específica em isolamento, com asserções sobre entradas e saídas esperadas.
Gabarito: E
Aqui a banca quer identificar o tipo de teste representado pelo código de teste em Python. Repare que o programador está verificando uma função específica, `celsius_to_fahrenheit`, com entradas bem pontuais e conferindo se o resultado bate com o esperado. Isso é o retrato clássico de teste unitário: isola uma pequena unidade do sistema e valida seu comportamento de forma direta. Em teste unitário, a ideia é pegar uma função, método ou classe e testar em isolamento, sem depender de banco de dados, rede, interface gráfica ou outros módulos. O foco está na menor parte testável do software. Por isso o uso de `unittest` e de asserções como `assertEqual` combina perfeitamente com essa abordagem. Já TDD é uma metodologia de desenvolvimento em que o teste vem antes do código de produção, no ciclo vermelho-verde-refatora. BDD foca no comportamento esperado do sistema em linguagem mais próxima do negócio. Aqui, porém, não há história de usuário, comportamento de negócio ou sequência de desenvolvimento guiada por teste anterior ao código. O que existe é apenas a validação de uma função isolada. Por isso o gabarito E está correto. O trecho apresentado é um exemplo de teste unitário em Python, porque examina uma unidade pequena do código e compara saídas esperadas com saídas obtidas.