Sobre desenvolvimento baseado em testes, considere: I. ...
I. Este processo requer que desenvolvedores criem unidades de testes para definir os requisitos que um determinado código deve conter. Estes testes devem ser criados assim que uma pequena parte funcional do código esteja disponível.
II. Frequentemente são utilizados frameworks de teste pelos desenvolvedores como o xUnit ou jUnit para a criação de casos de teste automatizados.
III. É importante que o código escrito seja apenas projetado para passar o teste específico. Nenhuma outra funcionalidade deve ser prevista ou permitida fora do escopo do teste em nenhum estágio do processo.
Está correto o que consta em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - II e III, apenas.
Para resolver essa questão, é necessário compreender o conceito de Desenvolvimento Baseado em Testes (Test-Driven Development - TDD), que é uma metodologia de desenvolvimento de software onde a escrita do teste automatizado acontece antes do desenvolvimento do código da funcionalidade a ser testada. A premissa do TDD é que o desenvolvedor escreva testes que falhem inicialmente, e a seguir implemente o código necessário para fazer o teste passar, seguindo o ciclo de vermelho-verde-refatorar, ou seja, falha no teste, sucesso no teste, e melhoria do código.
Item II está correto pois os frameworks de teste, como xUnit e jUnit, são ferramentas comumente utilizadas em TDD para escrever e rodar os casos de teste de forma automatizada. Eles são essenciais na implementação de testes unitários, que validam as menores partes do código, como funções ou métodos isoladamente.
Item III também está correto e é um princípio central do TDD. Ele estabelece que o código deve ser escrito estritamente para fazer o teste passar, sem antecipar funcionalidades futuras ou requisitos que não foram especificados ainda. Esta prática evita suposições e sobre-engenharia, focando no requisito atual e mantendo o código simples e limpo.
Item I, por outro lado, contém uma imprecisão. Ele sugere que os testes são escritos após uma pequena parte funcional do código ficar disponível, o que contraria o fluxo do TDD em que os testes são escritos antes do código funcional. Portanto, esse item está incorreto.
Concluímos, portanto, que apenas os itens II e III estão corretos e representam adequadamente a prática e os princípios do Desenvolvimento Baseado em Testes (TDD). Logo, a alternativa D é a resposta correta para essa questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
1 - Começa desenvolvendo o caso de teste.
2 - Aplica-se o teste ao software (Como o software não existe, ele obviamente falha no teste)
3 - em caso de falha Corrige-se a falha e volta-se ao passo 2
4- Incremento pronto
Os casos de teste definem o escopo do incremento. Por isso não devemos implementar nada fora do escopo, ou seja que não possua teste definido
"Estes testes devem ser criados assim que uma pequena parte funcional do código esteja disponível",
Acredito que o teste deve ser criado antes do código ter sido escrito, pois em desenvlvimento baseado em testes como podemos ver até mesmo no Extreme Programming - XP os testes são escritos antes de gerar código, ou seja faço os casos de teste e depois que começo a programação.
Apesar de ter errado a questão acho que esse é o erro.
"É importante que o código escrito seja apenas projetado para passar o teste específico. Nenhuma outra funcionalidade deve ser prevista ou permitida fora do escopo do teste em nenhum estágio do processo."
III. É importante que o código escrito seja apenas projetado para passar o teste específico. Nenhuma outra funcionalidade deve ser prevista ou permitida fora do escopo do teste em nenhum estágio do processo.
O item 3 faz menção ao I do F.I.R.S.T de Isolated:
Testes unitários são isolados, testando individualmente as unidades e não sua integração.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo