O TDD nos ajuda a desenvolver codigo coeso e influencia no design do nosso codigo, o tornando melhor, alem de obviamente garantir testes de nossas funcionalidades.Podemos tambem utilizar ferramentas de metricas e cobertura de codigo para garantir a qualidade de nosso projeto. Como por exemplo o Cobertura, uma ferramenta que mede o percentual de linhas cobertas por testes em nosso codigo.Durante a fase de testes e desenvolvimento podemos querer saber de forma pratica oque nossos testes estao cobrindo e onde esquecemos de testar, especialmente quando estamos trabalhando com codigo legado. Seria excelente se ao rodarmos um teste, a IDE ja nos fornecesse essa informacao.Felizmente existem plugins que conseguem fazer este trabalho. Dentre eles o eCobertura e o EclEmma.Vou demonstrar o uso do EclEmma atraves de um exemplo trivial.O primeiro passo e instalar o plugin no Eclipse, para isso va ao Marketplace do Eclipse (Help > Marketplace...), busque por eclemma e clique em install. A partir dai e so realizar os passos de uma instalacao de plugin normalmente.Agora vamos escrever um simples codigo para entender o funcionamento.Vamos escrever testes para a classe legada Calculadora, esta possui um metodo chamado calcula, que dado um valor e um boolean decide se soma mais 10 ao valor.Se o valor for maior que 100 ou o boolean passado seja true, entao soma-se 10 ao valor, caso contrario nao faz nada.public class Calculadora { public double calcula(double valor, boolean aplicaTaxas) { double valorCalculado = valor; if(valor > 100 || aplicaTaxas) { valorCalculado += 10; } return valorCalculado; } }Vamos escrever nosso primeiro teste: @Test public void naoDeveCalcularPoisValorEMenorQue100ENaoAplicaTaxas() { Calculadora calc = new Calculadora(); double valorCalculado = calc.calcula(80, false); assertTrue(valorCalculado == 80); }Para rodar o teste com o plugin clique com o direito sobre o arquivo de testes ou em seu codigo e va a opcao Coverage as... JUnit Test, pelo atalho Alt + Shift + E e T.Navegue ate a classe calculadora e veja como nosso codigo ficou colorido:Repare que as linhas cobertas pelo teste ficaram verdes, com excecao da linha 7, que esta amarela e da linha 8, que esta vermelha.Isso significa que a linha 7 nao foi totalmente testada, ou seja, depois de rodar o teste, todas suas condicoes nao foram realizadas (passe o mouse sobre o losango para ver a dica).Vamos criar mais um teste para entrarmos na condicional. Agora passando o valor como 110 e aplicaTaxas como false: @Test public void deveCalcularPoisValorEMaiorQue100() { Calculadora calc = new Calculadora(); double valorCalculado = calc.calcula(110, false); assertTrue(valorCalculado == 120); }Vamos ao resultado:Note que a linha 8, que antes era vermelha, agora esta verde, conseguimos criar um teste que cobre este caso. Porem a linha 7 ainda esta amarela (passando o mouse sobre o losango vemos que falta apenas uma condicional nao coberta).Vamos a um ultimo teste que simula o cenario ainda nao coberto: Passar o parametro aplicaTaxas como true. @Test public void deveCalcularPoisAplicaTaxas() { Calculadora calc = new Calculadora(); double valorCalculado = calc.calcula(20, true); assertTrue(valorCalculado == 30); }Pronto, nossa logica foi completamente testada.Um excelente exercicio que fiz foi desenvolver essa mesma classe usando TDD. Conforme voce desenvolve