Pre-TDDUm pouco cetico quanto ao processo mas estudando e lendo opinioes que fazem sentido, logo voce "compra" a ideia. No inicio escreve-se os testes depois que (quase) tudo foi feito e o pior e o vicio de escreve-los para que os mesmos funcionem. Nessa fase nao se ve nem o beneficio real que os testes unitarios trazem (nem mesmo a "metodologia" TDD traz). As perguntas mais frequentes nessa era sao:Devo testar os CRUD's? Devo testar Getters and Setters simples?Sintomas: perdendo tempo escrevendo testes (pos-testes)Ferramentas que conhece: JUnit :(Prefere criar um public static void main(String[] args) e usar Alt+Shift+X + J ao criar uma ClasseTest com um metodo anotado com @Test.Pos-TDDVoce (realmente) sente inseguro quanto olha pra massa de testes e ve que novas (ou antigas) funcionalidades nao estao sendo testadas, de alguma forma nao ter os testes te causa uma sensacao terrivel de que esta faltando algo. Suas ideias nascem pensando em testes (indo para BDD) voce muda mesmo a forma de pensar. Voce (realmente) sabe do valor inestimavel de se ter testes para rodar antes de um build. Comeca a achar estranho o desaparecimento de bugs esporadicos. Tem toda certeza que quase todo pedaco de codigo pode gerar bug inesperado. Ferramentas que ja conhece e nao vive sem : Mockito, Maven, Hudson... Ferramentas que comecam a despertar seu interesse: JBehave, Selenium. Claro que algumas dessas ferramentas nao estao ligadas diretamente ao TDD mas sim ao modo de pensar em testes e automacao dos mesmos. Testes de software e algo complexo, extenso e sempre em evolucao mas e uma maneira eficiente de diminuir os erros na criacao ou manutencao de software.Materiais para ajuda-lo na busca pelo TDDLink: http://improveit.com.br/xp/praticas/tdd/Livro: TDD by example (traduzido para pt_BR)so pra lembrar: test fails, test passes, refactor Nao estou abandonando este blog (eu espero) mas agora tambem estou postando em um outro blog o Leandro Moreira la pretendo escrever e abordar assuntos de desenvolvimento de sistemas do mesmo modo que aqui so que em ingles. :) Uma das caracteristicas prometidas para o JPA 2.0 e ja implementada no hibernate e Second Level cache! Pra habilita-lo e bem simples:Basta informar ao Hibernate (seja pelo persistence.xml ou pelo applicationContext.xml) as seguintes propriedades.hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider {classe padrao pra prover servicos de cache}hibernate.cache.use_query_cache=true {se deve ou nao fazer caches de queries}Lembrando que por padrao voce deve configurar entidade a entidade as quais devem ou nao serem cacheadas (com a anotacao @Cache junto a @Entity, voce tambem pode cachear colecoes!) e qual a politica (de concorrencia) que deve ser usada no esquema de cache (NONSTRICT_READ_WRITE, NONE, READ_ONLY, WRITE_ONLY, TRANSACTIONAL). Depois e so observar pelo log de sql :D! Have fun! Apesar de ter um trabalho fixo; hora ou outra tambem executo trabalhos freelancer java. E ultimamente as propostas de trabalho tem aumentado consideravelmente. E esse aumento se deve (na maioria absoluta) ao uso de um conjunto de tecnicas (e ou estrategias) SEO.E impressionante o quanto o google pode lhe dar retorno com um bom posicionamento, e digo isso baseado apenas no lucro que obtive em pequenos trabalhos ou ajuda (consultoria) em Java, Richfaces, JSF, JPA