segunda-feira, 30 de junho de 2014

TDD - Test-driven development

TDD - Test-driven development

O processo de realizar desenvolvimento de sistemas a partir a testes apareceu inicialmente em meados dos anos 2000 junto a pratica do extreme programming, com a ideia de começar o desenvolvimento pela rotina de testes.
Com manifesto ágil, que trouxe a cultura LEAN para desenvolvimento de software e pratica do extreme programming, vínhamos a tomar uma nova mentalidade para realização do nosso trabalho como desenvolvedores. Viemos a absorver os 5 princípios da mentalidade LEAN:
1.    VALOR;
2.    FLUXO DE VALOR;
3.    FLUXO CONTÍNUO;
4.    PRODUÇÃO PUXADA;
5.    PERFEIÇÃO.
Mary Poppendieck, que aperfeiçoou a metodologia LEAN para o desenvolvimento de software nos trouxe 8 princípios:
1.    Eliminar desperdício;
2.    Amplificar conhecimento;
3.    Desenvolver com qualidade;
4.    Postergar decisões;
5.    Entregas rápidas
6.    Respeitar as pessoas
7.    Melhoria continua;
8.    Otimizar como um todo.
Se formos analisar, tanto o pensamento LEAN, quando as praticas do XP, veremos que eles buscam a perfeição do software e entregar um produto de qualidade para o cliente.Sempre se focando na prevenção de falhas, por isso a utilização do TDD.


Ainda temos a metodologia SQA – Software quality assurance, que consiste em monitorar os processos de engenharia de software e desenvolvimento. Este princípio se baseia buscar uma forte definição de requerimentos, codificação, refatoração de código, testes, gerenciamento de versões, dentre outros.
Está clara a ideia de que SQA está diretamente ligada com as ideias de comprometimento de Desempenho e Qualidade. Sendo estes mesmo ideais que o TDD busca atingir, estando diretamente ligados segundo minha opinião.
A utilização do TDD visa justamente desenvolver um software com uma codificação limpa, se baseando na pratica do YAGNI (você não vai precisar disto) e um sistema sem erros, baseado na metodologia LEAN, para entregar um produto de qualidade para o cliente.
Uma boa maneira de se preparar para realizar o TDD, através do assert, é adicionar um critério de aceite nas User Story que dará origem ao código. Ex.
COMO UM ... EU QUERO ... PARA QUE SEJA POSSIVEL ...

Os ... finais da US irão te ajudar a entender o que deve ser escrito no assert do teu teste, para que a partir dele tu comece a codificar e por fim chegar no resultado esperado.

Nenhum comentário:

Postar um comentário