-
O desenvolvimento guiado por teste dá uma visão mais ampla do que deve ser feito ao desenvolvedor, pois antes de criar a funcionalidade, deve-se criar um teste da funcionalidade. (...) Posteriormente será desenvolvido o código para fazer com que o teste seja bem sucedido, já que o desenvolvedor sabe quais funcionalidades deve implementar, fica mais prático o seu desenvolvimento. Por último refatore, ou seja, melhore a codificação.
O JUnit é um framework de teste que utiliza anotações para a identificação de métodos de ensaio. Lembrando que os testes são unitários, não devendo depender de outros testes para o seu funcionamento. Além de utilizar anotações, o framework disponibiliza métodos de asserções, que são utilizados para validar informações. Com base nas asserções teremos o resultado de nosso teste como falho ou OK.
Fonte: http://www.devmedia.com.br/introducao-ao-desenvolvimento-guiado-por-teste-tdd-com-junit/26559
-
Não ficou muito certa a parte que diz "o código é desenvolvido de forma incremental, em conjunto com o teste" né... até me fez pensar, a princípio, que não se tratava de TDD, porque no TDD, como explicou o nosso colega Silas, o teste é criado antes da funcionalidade, não em conjunto com ela... Mas isso foi só um comentário mesmo, temos que ficar atentos pq quem cria as questões nem sempre entende do assunto =/
-
JUnit é um framwork para desenvolvimento de teste em Java.
O código é desenvolvido de forma incremental. No TDD, o primeiro passo é decidir qual será o incremento de funcionalidade no código. Depois escrevemos um teste para esse funcionalidade. Como a funcionlidade não foi escrita o teste deve falhar. Em seguida o incremento de funcionlidade é efetivamente escrito. O código é refatora até que o teste seja bem sucedido. Enquanto teste falhar não é incrementada uma nova funcionlidade. Ou seja, o próximo incremento de funcionlidade só será adiciona se o anterior passou pelo teste.
BDD é um superconjunto do TDD, onde se leva em consideração as expectativas do cliente de forma a produzir uma lingaugem ubíqua, comum a todos.
JTest é para análise estática
Selenium é um framework de teste para aplicações web.
Jenkins ferramenta para integração contínua
XP é um método ágil de desenvolvimento de software
Quanto falmos em DDD geralmente estamos nos refereindo a Domain Drive Design. Não encontrei referencias claras sobre "Data-Driven Development" => desenvolvimento dirigido a dados.
Prof. Almeida Junior
www.meubizu.com.br
-
Letra E, pois :
A Questão da dicas quando diz:
Dica 1 ) ".. utilizando a plataforma Java " .
Dica 2 ) " .. o código é desenvolvido de forma incremental, em conjunto com o teste para esse incremento " .
O correto em 100 % seria dizer que " .. o código é desenvolvido de forma incremental, ANTES do teste" , ou sejam " Primeiro se desenvolve o TESTE para depois o CODIGO. O ciclo correto é:
1) Escrevemos um Teste que inicialmente não passa (Red)
2) Adicionamos uma nova funcionalidade do sistema
3) Fazemos o Teste passar (Green) ( ou até passar no teste )
4) Refatoramos o código da nova funcionalidade (Refactoring)
5) Escrevemos o próximo Teste
Em geral, diz que " Quando voce desenvolve o teste ao mesmo tempo voce ja esta pensando tambem no codigo e vice-versa"
Então fica:
A ) " .. primeiro devemos escrever os testes para posteriormente escrever o código " . ( TDD - Test-Driven Development )
B ) JUnit é a ferramenta " .. com suporte à criação de testes automatizados na linguagem de programação Java. "
C ) JTest. é uma ferramenta de Java
( X ) Não é Behavior Driven Development (BDD )
- Desenvolvimento Guiado por Comportamento,ou seja, outra linha de raciocinio.
( X ) Não é DDD pois :
- DDD é uma coleção de padrões e princípios que ajudam em seus esforços para construir aplicações que refletem uma compreensão e a satisfação das exigências do seu negócio .
- DDD como uma automatização do processo de negócio.
http://www.princiweb.com.br/blog/programacao/tdd/tdd-ddd-e-bdd-praticas-de-desenvolvimento.html
-
Questão polêmica porque Jenkins também pode ser considerado um FrameWork para testes. Vejamos a própria definição na página do desenvolvedor:
About Jenkins: "Jenkins is an open source automation server which enables developers around the world to reliably build, test, and deploy their software."
FONTE: https://jenkins.io/press/