Pesquisar

quarta-feira, 20 de abril de 2011

Novo blog - www.leandromoreira.com.br

Não estou abandonando este blog (eu espero) mas agora também estou postando em um outro blog o Leandro Moreira lá pretendo escrever e abordar assuntos de desenvolvimento de sistemas do mesmo modo que aqui só que em inglês. :) 

quinta-feira, 7 de abril de 2011

A experiência do TDD na vida de um desenvolvedor

Pré-TDD

Um pouco cético quanto ao processo mas estudando e lendo opiniões que fazem sentido, logo você "compra" a ideia. No inicio escreve-se os testes depois que (quase) tudo foi feito e o pior é o vício de escreve-los para que os mesmos funcionem. Nessa fase não se vê nem o beneficio real que os testes unitários trazem (nem mesmo a "metodologia" TDD traz). As perguntas mais freqüentes nessa era são:
Devo testar os CRUD's? Devo testar Getters and Setters simples?
Sintomas: perdendo tempo escrevendo testes (pós-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 método anotado com @Test.

Pós-TDD

Você (realmente) sente inseguro quanto olha pra massa de testes e vê que novas (ou antigas) funcionalidades não estão sendo testadas, de alguma forma não ter os testes te causa uma sensação terrível de que está faltando algo. Suas idéias nascem pensando em testes (indo para BDD) você muda mesmo a forma de pensar. Você (realmente) sabe do valor inestimável de se ter testes para rodar antes de um build. Começa a achar estranho o desaparecimento de bugs esporádicos. Tem toda certeza que quase todo pedaço de código pode gerar bug inesperado. Ferramentas que já conhece e não vive sem : Mockito, Maven, Hudson...  Ferramentas que começam a despertar seu interesse: JBehave, Selenium. Claro que algumas dessas ferramentas não estão ligadas diretamente ao TDD mas sim ao modo de pensar em testes e automação dos mesmos. Testes de software é algo complexo, extenso e sempre em evolução mas é uma maneira eficiente de diminuir os erros na criação ou manutenção de software.

Materiais para ajudá-lo na busca pelo TDD
Link: http://improveit.com.br/xp/praticas/tdd/
Livro: TDD by example (traduzido para pt_BR)

só pra lembrar: test fails, test passes, refactor